I have also just discovered a dedicated section for the migration from Nuxt to Astro:
>Key Similarities between Nuxt and Astro
Nuxt and Astro share some similarities that will help you migrate your project:
- Astro projects can also be SSG or SSR with page level prerendering.
- Astro uses file-based routing, and allows specially named pages to create dynamic routes.
- Astro is component-based, and your markup structure will be similar before and after your migration.
- Astro has an official integration for using Vue components.
- Astro has support for installing NPM packages, including Vue libraries. You may be able to keep some or all of your existing Vue components and dependencies.
https://docs.astro.build/en/guides/migrate-to-astro/from-nux...
But Astro's model is "generate markup once, serve statically".
Nuxt's model is "Server-Side JavaScript"
So their philosophy is to start with zero client-side javascript, even when one is using components from javascript-heavy frameworks like React or Vue. Interactivity is apparently something one has to explicitly opt-in to by adding a client:* directive, rather than it being the default.
The migration guide states, "Astro projects can also be SSG or SSR with page level prerendering," which puts it on par with Nuxt in that regard.
A difference I've noticed regarding server-side features is that Astro allows one to "define and call backend functions with type-safety."[0] which even Nuxt doesnt offer in such a convenient and type-safe manner. I'm pretty happy with what i'm seeing in Astro's docs so far.