Templates
Donno generates a complete, production-ready Next.js project based on your configuration. This is template-based code generation, not AI-generated code.
What gets generated
The generated project is a full Next.js application using the App Router, TypeScript, Tailwind CSS, and shadcn/ui. The exact files depend on your stack configuration, but a typical project includes:
Project structure
your-project/
src/
app/
layout.tsx # Root layout with providers
page.tsx # Landing page scaffold
globals.css # Tailwind + theme CSS
(auth)/
login/page.tsx # Login page
signup/page.tsx # Signup page
forgot-password/page.tsx
reset-password/page.tsx
dashboard/
layout.tsx # Dashboard layout with sidebar
page.tsx # Main dashboard
api/
stripe/
checkout/route.ts # Create checkout session
webhook/route.ts # Stripe webhook handler
portal/route.ts # Customer portal redirect
components/
ui/ # shadcn/ui components
lib/
supabase/
client.ts # Browser Supabase client
server.ts # Server Supabase client
middleware.ts # Auth middleware helper
stripe.ts # Stripe client setup
resend.ts # Resend client setup
emails/ # Email templates (if Resend enabled)
welcome.tsx
receipt.tsx
password-reset.tsx
supabase/
migrations/ # Database migrations
middleware.ts # Next.js middleware (auth redirects)
.env.local # All API keys populated
CLAUDE.md # AI project context file
package.json
tsconfig.json
tailwind.config.tsAuth pages
Pre-built authentication pages wired to Supabase Auth. The pages support whichever auth methods you selected: email/password, magic link, and/or OAuth (Google, GitHub). All pages are styled with Tailwind and shadcn/ui to match the rest of the project.
Stripe billing
If payments are enabled, the project includes:
- Checkout session API - creates a Stripe Checkout session for your defined products
- Webhook handler - processes Stripe events (checkout completed, subscription updated, etc.) and syncs billing state to your database
- Customer portal - redirects authenticated users to the Stripe-hosted portal for subscription management
- Pricing page component - displays your defined plans with checkout buttons
Email templates
If Resend is enabled, the project includes email templates for:
- Welcome - sent when a user signs up
- Receipt - sent after a successful payment
- Password reset - sent when a user requests a password reset
Database migrations
SQL migrations that create the tables your project needs. These are run automatically during provisioning via the Supabase Management API. The exact schema depends on your configuration but typically includes user profiles, subscriptions, and any related tables. Row-level security policies are applied to all tables.
CLAUDE.md
Every provisioned project includes a CLAUDE.md file in the repo root. This file is designed for AI coding tools like Claude Code and Cursor. It contains:
- Project description and purpose
- Tech stack details
- Database schema documentation
- API route documentation
- Environment variable reference
- Code conventions (TypeScript, naming, file structure)
- Available commands (
npm run dev,npm run build, etc.)
When you open the project in Claude Code or Cursor, the AI assistant reads this file and understands your project from the first prompt. No need to explain your stack or architecture.
Customization after provisioning
The generated project is a starting point, not a locked template. After cloning:
- Modify any file. It is a standard Next.js project.
- Add or remove shadcn/ui components with
npx shadcn@latest add - Update the database schema by creating new migrations in
supabase/migrations/ - Add new API routes, pages, and components as needed
- Push to GitHub and Vercel deploys automatically
Template roadmap
| Framework | Status |
|---|---|
| Next.js (App Router) | Available |
| SvelteKit | Planned |
| Nuxt | Planned |
| Remix | Planned |
| Custom (bring your own) | Planned |
Custom templates will let you bring your own boilerplate project, and Donno will provision the infrastructure around it.
Learn about pricing and billing, or check the FAQ.