Background
Kavalkade's New Digital Home — How I Built a Modern Music & Merch Experience with Next.js
Development

Kavalkade's New Digital Home — How I Built a Modern Music & Merch Experience with Next.js

A deep dive into rebuilding Kavalkade's band website as a fully integrated music platform, merch store, and fan hub using Next.js, featuring a persistent audio player, media grid, and complete ecommerce system.

12 min read
By Luke Hertzler
nextjs
react
ecommerce
stripe
printful
supabase
music
merch

From "Band Website" to a Fully Connected Experience

When I rebuilt the site for my band, Kavalkade, I didn't want another cookie-cutter band page with a player slapped on top. I wanted something that actually felt alive — a fast, modern, dark, cinematic experience that merges music, media, and merch into one cohesive system instead of scattered features duct-taped together.

Under the hood it's all powered by Next.js and a custom component system I've built up over time. There's a persistent audio player, a video-friendly media grid, and a real ecommerce flow layered together in a way that still feels lightweight and intuitive.

Think of it like a stripped-down music platform, merch store, and fan hub — all built from scratch, all in one place.

Why Next.js Was the Move

I'm a big believer that the stack should disappear into the background. Next.js gives me everything I need for that: speed, clean routing, SEO, and a ridiculous amount of flexibility.

I used Server Components for performance and data handling, and kept interactive pieces — the music player, media viewers, cart, filters — as client components powered by shared global state. This setup keeps the UI feeling snappy while still letting the dynamic pieces behave like a real application.

No hacky AJAX, no janky "refresh to reset the audio," none of the old WordPress bullshit I used to fight years ago.

Custom Minimal UI, Built for the Band's Aesthetic

I wanted the site to feel like Kavalkade — dark, moody, minimal, sharp — not like a template that could belong to literally any band.

Everything you see is built from a custom component library: cards, panels, buttons, overlays, modals, responsive layouts. It keeps the visual language tight across every page while still allowing each section to have its own vibe.

Just as important: it's highly responsive. Desktop, tablet, mobile — it all adapts cleanly so fans can listen, browse media, or shop without running into friction.

The Persistent Music Player

My favorite part of the whole build: the persistent audio player. When someone hits play, the music keeps going — whether they're scrolling photos, watching videos, or checking out merch.

The player uses a singleton global audio engine that lives outside of the routing layer, so it never unmounts. Pages don't control audio; they talk to the engine. That's how everything stays in sync and feels app-like instead of "just a website with a player."

I also built a full player panel that expands to show artwork, track details, scrubbing, and additional controls. Anything you do there instantly updates the main player, and vice versa.

Smooth, elegant, and continuous — the way band sites should have worked a decade ago.

A Media Grid That Handles Photos & Videos Seamlessly

The Media page is where Kavalkade's visual identity lives. I built a dynamic media grid that handles both photos and videos with zero awkwardness or layout glitches.

It supports:

  • Images with proper optimization and lazy loading
  • Video previews that auto-play when visible
  • Filters to switch between photos, videos, or mixed content
  • A cinematic modal viewer for full-screen playback

It's the kind of experience you'd expect from a polished music platform, not a "band website," and that was the goal.

Ecommerce, Fulfillment, and Accounts — Fully Integrated

Kavalkade's site includes a legit, full-stack merch system — not a Shopify theme, not a redirect, not a cheap embed.

It supports:

  • Product browsing & individual detail pages
  • A persistent shopping cart
  • Secure checkout via Stripe
  • Automatic order handoff to Printful for production & fulfillment
  • User accounts powered by Supabase Auth
  • Order history and dashboards inside the app

When someone buys something, the system handles every step — payment, order creation, fulfillment, and status updates — without any manual work on our end.

It turns a band website into a fully functioning merch operation tied directly into the fan experience.

Account Dashboards & Fan Experience

Fans who create an account get a personalized dashboard where they can:

  • See past orders
  • Check order statuses
  • Update their info

All of this runs on Supabase, which keeps things smooth on the backend while giving users a clean, modern UI.

A Build That Matches the Vision

Before writing a single line of code I mapped out how all the pieces should connect — music, media, merch, accounts, and the overall vibe. The final product feels exactly like what I imagined: cohesive, fast, modern, and expressive.

It's everything I love about building with Next.js: a real product, not a patchwork.

Want Something Like This Built for You?

If you're a musician, brand, startup, or creator and want a custom-built app or site with real engineering behind it — not generic templates — I'd love to chat.

I build high-performance, modern, minimal apps that blend design and engineering: persistent experiences, ecommerce systems, media-heavy layouts, and custom dashboards.

You bring the vision — I'll build the thing. Reach out anytime.