Project Overview: artist-landing
I committed to Astro SSR on Cloudflare Workers as the baseline for artist-landing, with the project now focused on expanding content and keeping the API reusable rather than revisiting framework choices.
What We Built
- A server-rendered artist site in Astro, deployed through Workers, with a clear split between content (
src/content/releases/*.md) and site/profile data (src/data/site.ts). - A JSON API surface for releases, mixes, and tracks (
/api/releases,/api/mixes,/api/tracks) with cursor/limit pagination and lightweight hypermedia links. - A deliberate API boundary where tracks represent released discography only, not mix setlist entries (
1bc280b). - Ongoing content and presentation refinement, including homepage numbering/copy cleanup for mixes (
da46818) and release metadata updates (e63589a). - Project guidance and memory capture in-repo (
AGENTS.md,MEMORY.md) so design and product decisions stay consistent across sessions.
Why We Built It
- I moved to SSR because the earlier worker-first + SPA glue path was considered brittle, and the user explicitly wanted true server rendering.
- I kept the API reusable and predictable because recent sessions centered on whether the JSON shape is good enough to power more than one consumer.
- I protected scope in the tracks API to prevent semantic drift: released songs stay separate from DJ mix setlists.
- I treated visual tweaks as product decisions, not cosmetic churn; session feedback on ordering, copy clarity, and typography density directly drove recent changes.
- I preserved lightweight operations (
dev,build,deploy) to keep iteration fast without introducing additional service infrastructure.
How It Works
- Local loop is simple:
astro devfor development,astro check && astro buildfor validation/build,astro previewfor production preview, andwrangler deployvianpm run deploy. - Content is schema-driven through Astro content collections (
src/content/config.ts) and rendered at page routes (/,/releases/[slug],/mixes/[slug]). - API routes expose list/detail endpoints with pagination defaults and filter params (
?limit,?cursor, and release-scoped filtering on tracks). - The current project memory captures stable UX constraints: left-column releases, right-column artist/profile panel, minimal mix cards, and no clone-like motif features (for example, no marquee/ticker).
- Recent commits show the implementation trend: stabilize API behavior (
6a5a5b9,1bc280b,ecd9bdc) while tightening content and presentation details (da46818,e63589a).