Modern band landing page with a dark monochrome aesthetic. Built with Next.js 16, React 19, Tailwind CSS 4, and TypeScript.
Design + theme rules live in AGENTS.md.
npm install
npm run devOr with pnpm:
pnpm install
pnpm devcontent/shows.json— tour datescontent/merch.json— merch itemssrc/config/site.ts— band name, description, socialssrc/i18n/translations.ts— UI copy + localespublic/slideshow/— hero slideshow images (optional)
Admin access lives at /admin and writes directly to the JSON content files.
In production, you can keep these files outside the repo by setting CONTENT_DIR.
Setup:
- Copy
env.exampleto.env.local - Run
npm run setup-accessto generateADMIN_PASSWORD_HASH+AUTH_SECRET - Set
AUTH_URLandNEXT_PUBLIC_SITE_URL(e.g.http://localhost:3000) - Restart the dev server
Data written by the admin panel:
content/shows.jsoncontent/merch.jsoncontent/admin-audit.json- Backup snapshots in
content/.history/
To keep admin edits persistent while still deploying code updates, store content JSON outside the git repo and point the app to it.
-
Create a data directory on the VPS
sudo mkdir -p /var/lib/bandland/content sudo chown -R <service-user>:<service-user> /var/lib/bandland/content
-
Copy your current content files once
cp content/shows.json /var/lib/bandland/content/ cp content/merch.json /var/lib/bandland/content/
-
Set environment variables on the service
CONTENT_DIR=/var/lib/bandland/content- Optional:
CONTENT_HISTORY_DIR=/var/lib/bandland/content/.history
-
Deploy as usual (your existing deploy script still works)
npm run build/npm run startnpm run lint/npm run typechecknpm test
Copy env.example to .env.local and set:
NEXT_PUBLIC_SITE_URLADMIN_PASSWORD_HASHAUTH_SECRETAUTH_URL
This project uses a dual licensing model:
All source code is licensed under the MIT License. This includes:
- The Next.js application code
- Components and utilities in
src/ - Configuration files
- Content schemas and loaders
You're free to use, modify, and distribute the code according to the MIT terms.
Visual assets in this repository are NOT included in the open-source license. This includes:
- Files in
public/logos/ - Files in
public/slideshow/ - Album artwork, promotional images, and band photography
These assets are proprietary and remain under copyright. Any use, modification, or distribution requires explicit written permission. See LICENSE.ASSETS for details.