Next.js Provider
The Next.js provider (v16) targets Next.js 16.2.3 App Router.
Init command
npx create-next-app@16.2.3 . --typescript --eslint --tailwind --app --src-dir --import-alias "@/*" --yes
Generated file mapping
| Config | Generated file |
|---|---|
models/User.json | src/types/User.ts (TypeScript interface) |
models/User.json | ORM schema file (see ORM section below) |
routes/Users.json → GET /api/users | src/app/api/users/route.ts |
routes/Users.json → GET /api/users/:id | src/app/api/users/[id]/route.ts |
views/LoginPage.json → path: /login | src/app/login/page.tsx |
functions/CreateUser.json | src/lib/functions/CreateUser.ts |
voters/ArticleVoter.json | src/lib/voters/ArticleVoter.ts |
Versioning
| Version | Next.js | Router |
|---|---|---|
| v16 | 16.2.3 | App Router |
Future versions (v17, v18…) will be added without breaking existing projects.
ORM & database integration
Codabra supports multiple ORMs and databases. Both are chosen independently during project creation:
npx create-codabra@latest my-app
# → Choose an ORM: Drizzle ORM (recommended) / Prisma
# → Choose a database: SQLite (default) / PostgreSQL / MySQL
- Drizzle + SQLite
- Drizzle + PostgreSQL
- Drizzle + MySQL
- Prisma + SQLite
- Prisma + PostgreSQL
- Prisma + MySQL
Generated files: src/drizzle/schema.ts and src/lib/db.ts.
cd apps/web
npx drizzle-kit push # push schema to SQLite (creates sqlite.db automatically)
pnpm dev
Generated files: src/drizzle/schema.ts and src/lib/db.ts.
Set DATABASE_URL in apps/web/.env:
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
cd apps/web
npx drizzle-kit push
pnpm dev
Generated files: src/drizzle/schema.ts and src/lib/db.ts.
Set DATABASE_URL in apps/web/.env:
DATABASE_URL=mysql://user:password@localhost:3306/mydb
cd apps/web
npx drizzle-kit push
pnpm dev
Generated files: prisma/schema.prisma and src/lib/prisma.ts.
Set DATABASE_URL in apps/web/.env:
DATABASE_URL=file:./dev.db
cd apps/web
npx prisma migrate dev --name init
pnpm dev
Generated files: prisma/schema.prisma and src/lib/prisma.ts.
Set DATABASE_URL in apps/web/.env:
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
cd apps/web
npx prisma migrate dev --name init
pnpm dev
Generated files: prisma/schema.prisma and src/lib/prisma.ts.
Set DATABASE_URL in apps/web/.env:
DATABASE_URL=mysql://user:password@localhost:3306/mydb
cd apps/web
npx prisma migrate dev --name init
pnpm dev