A working band needs one page that loads fast on a phone, tells a venue what they play, shows recent gigs, and makes booking a single tap. Everything else is maintenance. I built theunpluggedband.com with no framework and no build step, because a site that has to survive years of nobody touching it should contain nothing that can rot.

Why no framework
Dependencies age. A static HTML file does not. The whole site is one page, one stylesheet and one script, served by Vercel exactly as it sits in the repository, and a local preview is Python’s built-in HTTP server. The constraint did the design work: with no component library to reach for, every element on the page had to earn its place, and the page ended up saying what the band needed said and nothing else.
Booking as a message, not a form
Venues in this market book on WhatsApp, so the booking form does not submit anywhere. It composes a pre-filled WhatsApp enquiry to the band’s manager, with the date, venue and event type already in the message, and opens it. No backend, no inbox to monitor, no spam. The line-up cards carry click-to-call numbers for the same reason. And the recent-gigs section is live Instagram embeds pulled from the band’s own account, so the page stays current without anyone editing it, which is the only kind of “current” that lasts.
SEO done at build time, by hand
A band does not show up for “live band in Gujarat” because of its design. It shows up because of its structure. The page has Open Graph tags, MusicGroup structured data as JSON-LD, a sitemap, a robots file and a title that says what and where. Brand assets, the favicon, the app icons and the share image, were generated from the band’s official logo so a link looks right wherever it is pasted. None of this needed a plugin. It needed knowing which tags matter and putting them in.
Accessibility and motion
Skip link, ARIA labels, a keyboard-friendly nav, and the hero animation and scroll reveals switch off for anyone who has asked their system for reduced motion. These are cheap when you own the markup and expensive to retrofit when you do not.
Operations
The domain is registered separately from the hosting, with the apex pointed at Vercel and the www and vercel.app addresses redirecting to it, so there is exactly one URL to share. A backup mirror builds from the same branch on GitHub Pages. The one thing that can take the site down is the domain lapsing, so auto-renew is on and the fact is written down where the band can find it.
What it taught
- The fewer moving parts, the longer it lives. Nothing to update is the most durable maintenance plan.
- Meet people where they already are. A WhatsApp message beats a contact form nobody checks.
- SEO is structure. Structured data and a real sitemap do more than any amount of copy.
- Write down the operational facts. The domain renewal will outlast everyone’s memory of how it was set up.
