https://github.com/radicazz/bandland
Modern band landing page with Punk Aesthetics
https://github.com/radicazz/bandland
docker nextjs podman reactjs typescript vercel
Last synced: 4 months ago
JSON representation
Modern band landing page with Punk Aesthetics
- Host: GitHub
- URL: https://github.com/radicazz/bandland
- Owner: radicazz
- License: gpl-3.0
- Created: 2025-12-05T18:58:20.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-02-23T20:04:06.000Z (4 months ago)
- Last Synced: 2026-02-24T01:57:38.894Z (4 months ago)
- Topics: docker, nextjs, podman, reactjs, typescript, vercel
- Language: TypeScript
- Homepage: https://schmat.co.za
- Size: 3.01 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Bandland
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`.
## Quick start
```bash
npm install
npm run dev
```
Or with pnpm:
```bash
pnpm install
pnpm dev
```
Open http://localhost:3000
## Basic edits
- `content/shows.json` — tour dates
- `content/merch.json` — merch items
- `src/config/site.ts` — band name, description, socials
- `src/i18n/translations.ts` — UI copy + locales
- `public/slideshow/` — hero slideshow images (optional)
## Admin panel
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:
1. Copy `env.example` to `.env.local`
2. Run `npm run setup-access` to generate `ADMIN_PASSWORD_HASH` + `AUTH_SECRET`
3. Set `AUTH_URL` and `NEXT_PUBLIC_SITE_URL` (e.g. `http://localhost:3000`)
4. Restart the dev server
Data written by the admin panel:
- `content/shows.json`
- `content/merch.json`
- `content/admin-audit.json`
- Backup snapshots in `content/.history/`
## VPS deployment (recommended data layout)
To keep admin edits persistent while still deploying code updates, store content
JSON outside the git repo and point the app to it.
1. Create a data directory on the VPS
```bash
sudo mkdir -p /var/lib/bandland/content
sudo chown -R : /var/lib/bandland/content
```
2. Copy your current content files once
```bash
cp content/shows.json /var/lib/bandland/content/
cp content/merch.json /var/lib/bandland/content/
```
3. Set environment variables on the service
- `CONTENT_DIR=/var/lib/bandland/content`
- Optional: `CONTENT_HISTORY_DIR=/var/lib/bandland/content/.history`
4. Deploy as usual (your existing deploy script still works)
## Common scripts
- `npm run build` / `npm run start`
- `npm run lint` / `npm run typecheck`
- `npm test`
## Environment
Copy `env.example` to `.env.local` and set:
- `NEXT_PUBLIC_SITE_URL`
- `ADMIN_PASSWORD_HASH`
- `AUTH_SECRET`
- `AUTH_URL`
## Licensing
This project uses a **dual licensing model**:
### Code License
All source code is licensed under the [MIT License](./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.
### Brand Assets License
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`](./LICENSE.ASSETS) for details.