The top requirements are (from important to less important): SEO, performant pages (for SEO), easy to maintain, self hostable and some interactivity with search results and smooth transition to opening job posts.
I would like to use SSG/SSR and on fast changing locations maybe ISR
Because it's a local job platform we only need to cover one region. And Job postings are not so dynamic so I would like to rely on heavy caching and invalidating the cache for a specific location when jobs change. And we only have a small team so it should be easy to develop and maintain but I guess each of them are.
My first thought was about using Nextjs (thats what I use in most small to mid sized projects) But I only host on vercel and Nextjs seems to work differently when selfhosting even with sst/opennext. Also Nextjs somehow seems to like breaking changes.
My second thought was Remix as a reliable middle option
And my last and intriguing thought was using Astro and heavily use SSG and ISR and use react on top. But I somehow think that Astro might not be suitable for larger projects - but I really love astro for its simplicity and ease of use.
Help me decide, have any of you had such content heavy projects and what did you use or what would you use if you were able to rewrite it
* SEO -> 1. Astro, 2. Remix, 3. NextJS
* Performant Pages (for SEO) -> 1. Astro, 2. Remix, 3. NextJS
* Easy to Maintain (for a small team) -> 1. Astro, 2. Remix, 3. NextJS
* Self Hostable -> 1. Astro, 2. Remix, 3. NextJS
* Some interactivity and smooth transitions -> 1. Remix and NextJS, 3. Astro
From your description, it seems you are most familiar with NextJS. My question: How about the other maintainers? If everyone is familiar with NextJS, that is a big bonus point.
In conclusion, it comes down to how high you prioritize "Some interactivity and smooth transitions" and "Familiarity with the chosen framework." Astro, being a multi-page framework first and foremost, will not deliver the smooth transitions that the other two will. However, it shines on pretty much all your other requirements.
If you can live with Astro being a Multi-Page Framework that, by default, does a full-page reload for every route, and your team is comfortable using Astro, I would go with Astro. Otherwise, pick NextJS or Remix, whichever your team is more familiar with.