OpenSaaS Stack is a config-first Next.js stack built for AI-assisted development. Tell Claude Code what you want and it ships real features — with security and access‑control baked in.
Start in seconds
npm create opensaas-app@latest my-appDefine your data and access rules in opensaas.config.ts. The engine secures every database operation automatically.
import { config, list } from '@opensaas/stack-core'
import { text, select, relationship } from '@opensaas/stack-core/fields'
export default config({
db: { provider: 'sqlite', url: 'file:./dev.db' },
lists: {
Post: list({
fields: {
title: text({ validation: { isRequired: true } }),
status: select({
options: [
{ label: 'Draft', value: 'draft' },
{ label: 'Published', value: 'published' },
],
defaultValue: 'draft',
}),
author: relationship({ ref: 'User.posts' }),
},
access: {
operation: {
// Anonymous visitors only see published posts; an access rule can
// return a boolean or a Prisma filter that scopes the rows.
query: ({ session }) => (session ? true : { status: { equals: 'published' } }),
// Only the author can edit their own post.
update: ({ session }) => (session ? { authorId: { equals: session.userId } } : false),
},
},
}),
},
})
No boilerplate, no manual wiring. Scaffold, run, and let Claude Code do the building.
Step 1
npm create opensaas-appOne command sets up a fully configured OpenSaaS Stack project.
Step 2
pnpm devYour admin UI, database, and access control are wired up out of the box.
Step 3
Ask Claude CodeTell Claude Code what you want. It builds it on OpenSaaS Stack for you.
Access control wraps every database operation. Denied requests fail silently — no data leaks, no boilerplate.
Define schema, fields, and rules in one place. Prisma schema and TypeScript types are generated for you.
Clear, predictable patterns mean AI assistants can map your requirements to real, working features.