Skip setup.Start building.
Every flow your product needs—authentication, billing, settings, and organization management. Clean and ready to use. Pick a template and modules in the setup wizard. Make it yours.


Authentication and organizations.
better-auth. Login, signup, password reset, orgs, and invitations. Ready to customize.
Don't have an account? Sign Up
Stripe billing and subscriptions.
Checkout, customer portal, webhooks. Subscription state in sync with your app.
Choose a plan
Select the perfect plan for your needs
Starter
For individuals shipping a first product.
per month, billed monthly
- Unlimited projects
- Auth, database, and payments modules
- Transactional email flows
- Community support
- SSO and audit logs
Pro
For teams that need collaboration and scale.
per month, billed monthly
- Everything in Starter
- Up to 10 team seats
- SSO and advanced security
- Priority email support
- Usage and billing analytics
Connect your database.
Prisma ORM scaffolding, schema, migrations, and typed queries. Production-grade from first commit.
1const user = await db.user.findUnique({2 where: {3 email: email.toLowerCase(),4 },5 select: {6 id: true,7 email: true,8 },9});Send transactional email.
Resend, Postmark, or SendGrid. Typed payloads and templates. No vendor lock-in.
How to send email
1import { sendEmail } from '@/lib/emails/actions'2 3await sendEmail({4 to: 'user@example.com',5 subject: 'Welcome!',6 html: '<h1>Welcome</h1>',7 text: 'Welcome to our app',8})File storage and uploads.
Upload rules, metadata, and access control. Coming soon.
Coming soon
Upload rules, metadata, and access control. Coming soon.
- Upload rules
- Metadata
- Access control
AI integration.
Model integration and prompts. Coming soon.
Coming soon
Model integration and prompts. Coming soon.
- Model integration
- Prompts
- Structured output
Login
Enter your email and password to access your account
1import * as React from 'react'2import { cn } from '@/lib/utils'3 4const Input = React.forwardRef<HTMLInputElement, React.ComponentProps<'input'>>((5 { className, type, ...props }, ref6) => (7 <input8 type={type}9 className={cn(10 'flex h-10 w-full rounded-full bg-muted dark:bg-input/30 dark:hover:bg-input/50',11 className12 )}13 ref={ref}14 {...props}15 />16 )17)18 1export async function handleCheckoutSessionCompleted(2 session: Stripe.Checkout.Session,3): Promise<void> {4 // ...5 await db.purchase.upsert({ ... });6 7 // ✦ your custom confirmation email8 await sendEmail({9 to: session.customer_email ?? "",10 subject: "Your purchase is confirmed",11 html: renderPaymentSuccessEmail({ planId }),12 });13}Active providers
- DatabasePostgreSQLMySQL · SQLite
- EmailResendSendGrid · Nodemailer
- AuthBetter AuthClerk · NextAuth
- PaymentsStripePaddle · LemonSqueezy
// zero rewrites required
Built-in light & dark mode
One toggle. Your users' preference, respected.
Multilingual ready
Change locale instantly in-app.
Developer first
Built for DX: CLI workflows, typed SDKs, and clean APIs.
MIT Licensed
All generated code is MIT Licensed. Use and modify freely, but do not resell it as-is.
Support & roadmap
Request support or new features and help shape what ships next.