Full-stack Nuxt that feels like cheating

Full-featured Convex integration for Nuxt with SSR, real-time subscriptions, authentication, and backend-driven permissions.
<script setup lang="ts">
import { api } from "~/convex/_generated/api";

// Real-time subscription with SSR support
const { data: tasks, status } = useConvexQuery(api.tasks.list, {
status: "active",
});

// Data updates automatically when any client makes changes
</script>

<template>
<div v-if="status === 'pending'">Loading...</div>
<ul v-else-if="status === 'success'">
  <li v-for="task in tasks" :key="task._id">
    {{ task.text }}
  </li>
</ul>
</template>

Powered by the Modern Stack

Three technologies, seamlessly integrated

Better Auth

Better Auth

Authentication

Convex

Convex

Reactive Backend

Nuxt

Nuxt

Vue Framework

Everything You Need

Built-in features for building production-ready apps

Real-time Queries

Fetch data with SSR, then upgrade to WebSocket subscriptions. Changes sync instantly across all clients.

Optimistic Updates

Instant UI feedback with automatic rollback on failure. Make your app feel fast.

Authentication

Better Auth integration with email/password, OAuth, and magic links. SSR-compatible.

Permissions

Role-based access control with ownership rules. Backend enforces, frontend displays.

SSR Support

Server-side rendering with hydration. Fast initial loads, then real-time updates.

Type Safety

Full TypeScript inference from your Convex schema. Catch errors at compile time.