Compare Nuxt integrations
Compare Better Convex Nuxt with nuxt-convex, convex-nuxt, and a manual Convex integration.
Choose by how much integration code you want to write yourself.
- Choose Better Convex Nuxt for Nuxt 4 with server-rendered live queries, Better Auth, server calls, mutation state, uploads, and MCP.
- Evaluate nuxt-convex when its smaller query and storage API matches your app and you accept its current work-in-progress status.
- Evaluate convex-nuxt for its Nuxt 3 and
convex-vuemodel, especially if you already use that stack. - Build it yourself when you need full control of the Convex client.
Verified versions
This comparison was verified on July 14, 2026 against released npm artifacts and official project documentation.
| Project | Compared version | Declared foundation |
|---|---|---|
| Better Convex Nuxt | 1.0 | Nuxt 4.5.2, Convex 1.42.2, Better Auth 1.7.6 |
nuxt-convex | 0.0.6 | @convex-vue/core and Convex |
convex-nuxt | 0.1.5 | Nuxt 3 and convex-vue |
| Manual integration | Convex 1.42.2 | Official Convex clients plus application code |
Capability matrix
“Not documented” means the released artifact or official documentation reviewed for this comparison does not define the behavior. It does not prove the behavior is impossible.
| Capability | Better Convex Nuxt 1.0 | nuxt-convex 0.0.6 | convex-nuxt 0.1.5 | Manual integration |
|---|---|---|---|---|
| Nuxt generation | Nuxt 4 (>=4.5.2) | Nuxt module; released types use Nuxt APIs | Documents Nuxt 3 | You decide |
| SSR-to-live query | Built-in, SSR and subscription enabled by default | useConvexQuery; SSR enabled initially | Documents SSR/SSG via suspense and live queries | Application-owned |
| Query auth modes | required, optional, none | Not documented | Token callback on raw client | Application-owned |
| Identity-change isolation | Documented and tested client replacement | Not documented | Not documented | Application-owned |
| Pagination composable | Built-in | Not in the 0.0.6 package API | Not documented | Application-owned |
| Stateful mutation/action wrappers | Built-in | Not in the 0.0.6 package API | Uses convex-vue APIs | Application-owned |
| Optimistic updates | Direct Convex local-store updates | Not in the 0.0.6 package API | Not documented | Application-owned |
| Better Auth integration | Built-in packaged/local component and OAuth path | Not documented | Authentication-provider callback example uses Clerk | Application-owned |
| Nitro server caller | serverConvex query/mutation/action | Not in the 0.0.6 package API | Not documented | Application-owned |
| File support | Typed single-file upload primitive | Upload and storage composables | Not documented | Application-owned |
| Shared error contract | ConvexCallError client/server entry | Not documented | Not documented | Application-owned |
| Connection state and DevTools | Built-in | Not documented | Not documented | Application-owned |
Architectural difference
One integrated module
Better Convex Nuxt handles SSR, hydration, subscriptions, sign-in changes, and cleanup together. Its API is larger and makes more choices for you.
The cost is that you follow its lifecycle and its supported dependency versions.
Smaller wrapper
nuxt-convex exposes a focused SSR query plus file-storage helpers in its 0.0.6 artifact. Its README labels the project work in progress and not ready for production use.
A smaller API is a good choice when you need only those helpers. Your application must handle everything else.
Nuxt 3 integration
convex-nuxt documents real-time queries, SSR/SSG through suspense, and authentication by calling setAuth on its Convex client. It is based on convex-vue and declares Nuxt 3-era dependencies.
This can fit an existing Nuxt 3 application. It is not a drop-in replacement for the Nuxt 4 and Better Auth setup described here.
Manual integration
A manual integration gives full control over the client, auth, server calls, and lifecycle. Your application must then handle hydration, user switches, cleanup, error handling, and upgrades.
Choose it when your product needs behavior that a shared module cannot provide.
Sources
- Better Convex Nuxt repository
nuxt-convexon npmnuxt-convexrepositoryconvex-nuxton npmconvex-nuxtrepository- Convex JavaScript clients
Check the versions and sources again before you change this table. Do not copy the table into another page.