Guides

New app monorepo

From an empty folder to a Nuxt + Supabase monorepo with the agent layer, auth starter and first change.

Scaffold

Terminal
npx @razcue/agent-kit init shop --kind monorepo --apps web,app,docs
cd shop && npm install

You get apps/web (public site, prerendered), apps/app (SPA + server routes + Supabase), apps/docs (Docus), packages/ui (shadcn-vue components, Tailwind v4 theme), packages/shared (Zod schemas and utils), supabase/migrations/, supabase/test-data/ and a CI workflow.

Connect Supabase

Create a Supabase project, copy apps/app/.env.example to .env with your URL and keys, and apply supabase/migrations/ in order in the SQL Editor. The first migration locks the Data API to service_role and creates _env; set it on this database:

SQL Editor
INSERT INTO public._env (name) VALUES ('dev') ON CONFLICT (id) DO UPDATE SET name = excluded.name;

With --supabase-mcp <project-ref> agents also get a read-only Supabase MCP server to check the live schema.

Run the checks

Terminal
npm run check         # typecheck + tests
npm run dev:app       # http://localhost:3001

Start Claude Code

Terminal
claude

Accept the plugin, then describe the first feature. A new module goes through the spec lane.

Conventions the agent follows

The stack-nuxt-supabase skill (in .claude/skills/) loads when the agent touches pages, server routes, migrations, RPCs or test data:

  • the browser never reaches the database — all data goes through apps/app/server/api/* with the service-role client;
  • writes go through RPCs (SECURITY DEFINER), after Zod validation;
  • schemas are shared from packages/shared;
  • migrations are append-only and idempotent;
  • npm workspaces only.