Demo mode - you’re exploring the template you’d buySkin:
ModulesIntegrations

Documentation

Everything you need to go from clone to customers.

Quick start

Five steps from a fresh clone to a running app. The full walkthrough lives in docs/getting-started.md and docs/first-2-hours.md.

1. Install

Clone the repo and install dependencies. Node 20+ and pnpm 9+ are the only prerequisites (plus Docker for the zero-config local database).

pnpm install

2. Bootstrap the database

One command: creates .env, starts Postgres in Docker, writes DATABASE_URL and an auth secret, applies migrations, and seeds demo data. Bring your own Postgres by setting DATABASE_URL first - the script adapts.

pnpm db:setup

3. Brand it

Every user-facing string lives in packages/config/src/site.ts. Pricing tiers and credit packs live in pricing.ts. No component edits needed.

packages/config/src/site.ts

4. Pick your modules

Flip modules on or off in one registry file, then validate that dependencies still line up.

pnpm --filter web validate:modules

5. Run it

Start the dev server and sign up - auth, billing, teams, and the admin panel are already wired.

pnpm dev

Modules

Features ship as modules with a single on/off flag. This table reflects the live registry - what you see enabled here is what this deployment is running.

ModuleWhat you getStatus
CoreAuth, billing, user settings, transactional email
Enabled
Blog & DocsMDX blog, documentation pages, and changelog
Enabled
Waitlist ModeReplace the app with a coming-soon page and email capture
Enabled
Teams & Multi-tenancyOrganisations, invitations, RBAC, per-seat billing
Enabled
Admin PanelSuperadmin dashboard, user management, impersonation, audit log
Enabled
Usage-Based BillingCredit packs, metered feature usage, credit ledger
Enabled
AI FeaturesPrompt interface, AI proxy, credit tracking, history panel
Enabled
Directory ListingPublic listing directory with category filters and featured slots
Enabled
Job BoardPublic job board with type filters, featured posts, and salary display
Enabled

Components

Source-owned UI primitives in packages/ui - change them freely, no library updates to wait on.

Buttons, badges & inputs

Variants come from class-variance-authority.

Default
Secondary
Outline
Destructive

Deployment

Pushing to main runs CI, applies database migrations, and deploys to Vercel - see .github/workflows/deploy.yml. Set four repository secrets and it works for your fork too:

VERCEL_TOKEN        # vercel.com/account/tokens
VERCEL_ORG_ID       # vercel project settings
VERCEL_PROJECT_ID   # vercel project settings
DATABASE_URL        # production Postgres (migrations run before deploy)

Self-hosting instead? next build + next start behind any Node host works - Railway, Fly.io, and a plain VPS are covered in docs/getting-started.md.