An archive website for previously aired mixshow sets from djmarcusmcb.
Each show lives in a YAML file under content/shows.
- Template: content/shows/example-show.yml
- Each file should define a unique
id, plustitle,image,audio_file_link,genres,original_broadcast,station, and asongstracklist.
- Main page with a left sidebar (Home + Favorites + Genres)
- Search by genre, artist, or song title
- Main grid of show “cards” (title, image, genre(s), date)
- Show detail page with tracklist + audio player (seek/pause/play)
- Favorites stored locally in the browser (no login)
- Per-show “thumbs up” upvotes stored server-side
See docs/ARCHITECTURE.md for a concrete implementation plan (Next.js + TypeScript + MongoDB/Railway options).
This repo treats YAML files under content/shows as the authoring source of truth.
- Copy .env.example to
.envand setMONGODB_URI+MONGODB_DB - Install deps:
npm install - Dry run:
npm run seed:dry - Seed (upsert + indexes):
npm run seed - Reset + seed from scratch (clears votes/upvotes):
npm run seed:reset - Reset only shows (keeps votes/upvotes):
npm run seed:reset-shows
More details: docs/SEEDING.md
- Set Mongo env vars in
.env.local(recommended) or.env:MONGODB_URI=...MONGODB_DB=mcb_archives
- Seed from YAML:
npm run seed - If you changed YAML and want a clean slate:
npm run seed:reset - Run locally:
npm run dev→ openhttp://localhost:3000
- CORS setup for images/audio: docs/R2_CORS.md