Open Source

Instant CRUD APIs for Nuxt

No more need to write or generate CRUD code. nuxt-auto-crud dynamically exposes CRUD APIs directly from your Drizzle schemas. You can control resource and column visibility through app.config.ts or the admin panel.
Quick Installnpx nuxi init -t gh:clifordpereira/nuxt-auto-crud_template <project-name>

Add env var NUXT_SESSION_PASSWORD="a-random-string-of-at-least-32-characters-long"

Promotional Video

Core Features

A complete full-stack foundation with admin panel, authentication, and automatic CRUD APIs.
Zero Code Generation
Unlike other CRUD tools, no code bloat. One set of code handles unlimited tables through smart routing.
Dynamic REST APIs
GET, POST, PATCH, DELETE endpoints for every table. Define schemas once, APIs are instantly available.
Dynamic Forms & Tables
Single robust components automatically handle all tables. Create, edit, delete operations work for any schema without writing code.
Built-in Authentication
Social login (GitHub, Google) and traditional email/password with registration and password reset flows.
Real-time Updates
Zero-config SSE broadcasting. UI and data stay instantly synchronized across all connected clients.
Agentic Ready
Native MCP support allows AI agents to inspect schemas and interact with your API directly.
Robust RBAC System
Manage roles and permissions directly in the admin panel. Control resource access with ease.
Smart Relation Handling
Foreign keys automatically display related data (names, titles) in the admin panel. Define relations in Drizzle and APIs handle them seamlessly.
Admin Dashboard
Ready-to-use admin panel with dynamic tables for all your schemas. Includes search, pagination, and export to PDF/Excel.

Your App is Ready with Just Schemas

Define your database schema using Drizzle ORM and let Nuxt Auto CRUD handle the rest. No manual API routes, no repetitive controller code.
  • Your database schema is the single source of truth. APIs are automatically exposed based on your table definitions.
  • Full TypeScript support with automatically inferred types for your API responses and request bodies.
  • Automatically handles relationships between tables, allowing for deep fetching and complex queries out of the box.
// server/db/schema/users.ts
import { sqliteTable, text, integer } from 'drizzle-orm/sqlite-core'

export const users = sqliteTable('users', {
  id: integer('id').primaryKey(),
  name: text('name').notNull(),
  email: text('email').notNull().unique(),
  role: text('role').default('user')
})

Manage Permissions with Ease

Manage permissions effortlessly with an intuitive interface. Grant or revoke access to resources for different roles with just a few clicks.
  • View and edit permissions in a clear, grid-based layout.
  • Fine-tune access levels (Create, Read, Update, Delete) for each resource and role.
  • Changes are applied immediately, ensuring your application's security is always up to date.
Manage Permissions with Ease

Test the Demo

Experience the power of role-based access control. Log in with these demo accounts to see how permissions change what you can see and do.
  • admin: Full access to all resources. Can create, read, update, and delete users, roles, and permissions.
  • manager: Can manage users but has limited access to system configuration.
  • moderator: Read-only access to most resources. Perfect for auditing and monitoring.
// Password for all accounts: $1Password

// 1. Admin (Full Access)
email: 'admin@example.com'

// 2. Manager (Manage Users)
email: 'manager@example.com'

// 3. Moderator (Read-Only Access)
email: 'moderator@example.com'

Your Voice Matters

Help Us Showcase Real Developer Stories

Tell us about your experience. Your testimonial helps other developers make confident decisions.

Ready to speed up your development?

Install Nuxt Auto CRUD today and stop writing boilerplate code.