Book live entertainment — musicians, DJs, comedians, and more.
| Public (no login) | Requires account |
|---|---|
| Home, performer search, performer profiles | Dashboard |
| Sign up / log in | Bookings, profile editing, chat |
| Terms | Payments & admin tools |
Only /dashboard/* is login-protected. Everything else is already a public website.
npm install
cp .env.example .env
npx prisma migrate dev
npm run devOpen http://localhost:3000.
Encore uses SQLite and local file uploads, so it needs a host with persistent storage (not plain Vercel serverless). Docker works on Railway, Render, Fly.io, or any VPS.
cp .env.example .envGenerate a strong AUTH_SECRET:
openssl rand -base64 32docker compose up --buildYour site is live at http://localhost:3000. On a cloud server, use that machine's public IP or domain on port 3000 (or put Caddy/nginx in front for HTTPS).
- Push this repo to GitHub.
- Create a project at railway.app.
- New → GitHub repo → select Encore.
- Add a volume mounted at
/data. - Set environment variables:
AUTH_SECRET— random secret stringDATABASE_URL—file:/data/dev.dbNODE_ENV—production
- Railway will detect the
Dockerfileand deploy. - Under Settings → Networking, generate a public domain.
Optional Stripe vars: STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, NEXT_PUBLIC_APP_URL (your Railway URL).
- Visit your public URL.
- Sign up as a performer and complete your profile.
- Sign up as a customer (separate email) to test booking.
| Command | Description |
|---|---|
npm run dev |
Local dev server |
npm run build |
Production build |
npm run db:migrate |
Dev migrations |
npm run db:migrate:deploy |
Production migrations |
npm run account:reset-password -- email newpass |
Reset a password locally |
- Next.js 16, React 19, Tailwind CSS 4
- Prisma + SQLite
- Stripe (optional)
- JWT session cookies