A Wasp starter with sensible defaults.
- Authentication - Email/password with verification and password reset
- Payments - Stripe subscriptions with checkout and customer portal
- UI Components - shadcn/ui components (Button, Card, Dropdown, Sheet, etc.)
- Animations - Motion spring animations with presets (snappy, bouncy, heavy)
- Dark Mode - Theme toggle with system preference support
- TypeScript - Full type safety throughout
- Click "Use this template" button at the top of the repository
- Clone your new repository
- Install dependencies and start:
npm install
wasp db start
wasp db migrate-dev
wasp startsrc/
├── auth/ # Login, signup, password reset
├── payment/ # Stripe subscriptions
├── motion/ # Animation presets and provider
├── landing/ # Home page (customize this!)
├── client/components/ # shadcn/ui components
└── root-components/ # Nav, footer, theme
Each directory has a CLAUDE.md file explaining its purpose and how to
customize it.
- Landing page - Edit
src/landing/LandingPage.tsx - App name - Set
REACT_APP_NAMEin.env.client - Meta tags - Update
headsection inmain.wasp - Auth emails - Edit templates in
src/auth/email.ts - Stripe - Add keys to
.env.server(seesrc/payment/CLAUDE.md) - Email provider - Change from
Dummyto SendGrid/Mailgun inmain.wasp
| File | Purpose |
|---|---|
main.wasp |
Routes, pages, auth config, operations |
schema.prisma |
Database models |
src/landing/LandingPage.tsx |
Home page content |
src/auth/email.ts |
Email templates |
src/motion/transitionPresets.tsx |
Animation variants |
- Add route and page in
main.wasp - Create component in
src/ - Add to nav if needed in
src/root-components/nav.tsx
- Add model to
schema.prisma - Run
wasp db migrate-dev - Create operations in
main.waspand implement insrc/
npx shadcn@latest add [component-name]REACT_APP_NAME=Your App Name
DATABASE_URL=postgresql://...
STRIPE_SECRET_KEY=sk_...
STRIPE_PUBLISHABLE_KEY=pk_...
STRIPE_PRICE_ID=price_...
STRIPE_WEBHOOK_SECRET=whsec_...
MIT License - use this in your own projects!