Application
Next.js 15 App Router with React 19, Tailwind CSS 4 and a block-driven marketing frontend.
Theraphy360 School
This page is a plain-English reference for the marketing site. It gathers the local setup, CMS model, email flow, versioning rules and production deployment notes in one place.
Next.js 15 App Router with React 19, Tailwind CSS 4 and a block-driven marketing frontend.
PayloadCMS 3 is mounted inside the same app at /admin and /api/[...slug]. Pages are assembled from reusable blocks.
Postgres 16 runs locally in Docker on port 5433. Production uses Neon Postgres through DATABASE_URI.
Resend sends enquiry and custom-package emails from no-reply@e.theraphy360.com with reply-to set to the visitor.
Vercel builds from apps/web, runs Payload migrations first, then deploys the standalone Next.js app.
Secrets stay in .env locally and Vercel environment variables in production. .env files are ignored by Git.
Runbook
Run commands from the repository root unless a note says otherwise.
docker compose up -d dbpnpm installpnpm devpnpm typecheckpnpm lintpnpm buildpnpm seedpnpm migrateEnvironment
Keep real values out of Git. Local values live in apps/web/.env and production values live in Vercel.
DATABASE_URIPostgres connection string used by the app.
DATABASE_URI_DIRECTDirect Neon connection used for migrations and seed jobs.
PAYLOAD_SECRETPayload signing secret. Use a 32 byte random value.
NEXT_PUBLIC_SITE_URLCanonical marketing site URL.
NEXT_PUBLIC_APP_URLClient app URL used by CTAs.
RESEND_API_KEYServer-only API key for Resend.
CONTACT_EMAIL_TOInbox that receives form submissions.
CONTACT_EMAIL_FROMVerified sender, normally Theraphy360 <no-reply@e.theraphy360.com>.
PREVIEW_SECRETProtects the preview route.
REVALIDATE_SECRETProtects on-demand cache revalidation.
Versioning
Update package versions using SemVer and record the change in CHANGELOG.md.
Run typecheck, lint and build before pushing main.
Push to GitHub main. Vercel automatically creates the production deployment.
Use scripts/ops.sh verify after deployment to probe the live site and admin login.
The repository documentation lives in README.md, DEPLOYMENT.md, progress/plan.md, VERSIONING.md and CHANGELOG.md. This page mirrors the operational details for people who prefer to read them in the browser.