Case study · 2026

Ghouls in the Basement

A homepage for a band that didn't have one.

Ghouls in the Basement is an Austin garage-rock four-piece that plays a live show every few weeks but had no web presence beyond a Bandcamp page. I designed and built a single-page homepage in the spirit of the 80s and 90s — equal parts Geocities and SNES title screen — and wired the news, gallery, and tour-date sections to a Google Sheet the band edits themselves, with a guestbook form routing new entries to the band's shared inbox. Now live; the band stays in control without me in the loop.

Role
Designer + dev (solo)
Stakeholders
The band
Surface
Static web
Read time
4–5 min

Final design

An 8-bit homepage that the band keeps current through a spreadsheet.

30%
Increase in editorial flow
View the live site →
🔒 ghoulsinthebasement.pages.dev

The problem

A live band with no place to send the people leaving the show.

Ghouls play to packed rooms across Austin every few weeks. Fans hear them once, leave the venue, and have nowhere to follow up — the Bandcamp page has the music but no tour dates, no bios, no personality. The default solutions (Wix, Squarespace, Linktree) all produce the same clean, gridded template that says nothing about a garage rock band.

The brief from the band was equal parts functional and aesthetic: it had to act as a hub for shows, music, and contact — but it had to feel like them. And it had to stay current without me being the bottleneck every time they had a new show or a new piece of news.

01

No homepage to point fans at

Bandcamp covers music; Instagram covers updates; nothing tied tour dates, bios, and contact together in one URL fans could remember.

02

Generic templates kill the vibe

Garage rock against a Squarespace gradient reads like a tech startup. The site has to do half the work of telling people what they sound like.

03

News goes stale fast

Tour dates, EP status, merch — these change weekly. If updates need code or a designer, they don't happen.

The research

Looked at the old web, not new band sites.

Modern band sites converge on the same template. To find a visual direction that matched the music, I ignored them and pulled from somewhere else: Cameron's World (the geocities collage), Heaven's Gate, vintage GameFAQs front pages, SNES title screens. The aesthetic shared a property the band wanted: it reads as a place someone made, not a CMS theme.

The constraints from the band came down to three:

01

Make it feel like us

Not template energy. The visual should sell the band's personality before they hear a note.

02

Let them edit for themselves

News, tour dates, photos, videos — band members need to update without touching code.

03

Look like the 90s

Marquees, blink tags, web rings, hit counters. The full geocities permission to be weird.

The site has to feel like a place someone made, not a CMS theme.

The brief, in one sentence

The architecture

One scrollable page, top-to-bottom.

Multi-page IA would be overkill — and would lose the "long Geocities scroll" feeling. Everything lives on a single page with anchor links in a chunky nav, so fans can either scroll the whole thing like a zine or jump directly to a section.

01

Marquees + masthead

Scrolling shout-outs and a pixel-font band name. Tells you what the site is in under a second.

02

Socials + nav

Direct buttons to Bandcamp / Spotify / YouTube / Instagram, then anchor links to each panel below.

03

News + tour + ghouls

The editorial content — what's happening, where they're playing, who they are.

04

Photos, tapes, guestbook

Gallery + video clips + a sign-the-guestbook moment that doubles as social proof.

The process · 01

Blocked the layout in low-fi first.

Before committing to a visual direction, I sketched the page in low-fi. The questions here were structural, not aesthetic — what runs on top, what stacks where, which sections need to feel like content vs landmarks. The wireframes are deliberately ugly. They have to prove the layout, not the look.

Wireframes

Annotated digital wireframe · single page

Open full screen ↗

One tall greyscale frame for the single-page site — the eight content zones in scroll order, each with numbered annotations explaining the IA choices and which sections are Sheet-fed vs hand-built.

The process · 02

Three versions, kept the best of each.

I built three full versions in straight HTML/CSS — no Figma slides, no prototyping tool. The fastest way to test "does this feel right?" was to throw a working page in front of the band and watch them react.

v1 was a restrained dark site that hit the visual goals at maybe 30%. v2 went full vintage paper / Heaven's Gate — cream background, blood red type, Pirata One drop shadows, banner row, hit counter. The band liked the top half. v3 pivoted into 8-bit / SNES territory — pixel band name, marquees, NES color palette. The band liked the bottom half. Final design is v3's bottom with a simplified, more colorful version of v2's top sensibility — taking the bits each iteration earned.

The process · 03

Wired the content to a Google Sheet.

The hardest design constraint was "they need to update it without me." The honest answer for a band site is: not a CMS, not a static-site generator, just a tool they already use. They have Google Sheets.

One sheet, three tabs. The News tab feeds the news flash strip — each row becomes a headline item, the first gets a blinking NEW!! badge. The Media tab feeds the gallery (Type / Title / File per row, rendered as a clickable photo tile or an inline video player). The Show dates tab feeds the tour table (Date / Venue / Link / Label).

The page fetches all three tabs as CSV on load and rerenders those sections. If a fetch fails (offline, sheet deleted, whatever) the hardcoded fallback content stays. The band edits the sheet, refreshes the page, the site is up to date — no deploy step, no me involved.

The guestbook is a fourth piece — a Netlify Form at the bottom of the page that routes new submissions straight to the band's shared email. Same principle: the band moderates from a tool they already check.

The system

Built a clashing, on-purpose visual language.

The visual logic is the opposite of a modern brand system: panels in clashing primaries (hot pink, lime, cobalt, yellow, teal), pixel fonts next to blackletter, deliberate scanlines over the masthead. Every interactive thing throbs, blinks, or scrolls. The rule for what stays and what gets cut: does it earn a smile in the first three seconds? If yes, keep it.

Color palette (panels)

Hot Pink#FF0099
Lime#CCFF00
Cobalt#0033FF
Yellow#FFCC00
Teal#00CCCC
NES Green#00FF66

Typography — three eras, in one page

Pixel displayPress Start 2P
GHOULS
Section headingPirata One
tour dates a.d. 2026
BodyTimes New Roman
Greetings & salutations from the bowels of the Austin garage rock underworld!!
News + tour listCourier New
► Our EP is being mastered by a Canadian!!

Components

Throbbing CTA

★ SEE TOUR DATES ★

Marquee strip

✦✦✦ GHOULS IN THE BASEMENT ✦✦✦ AUSTIN TX ✦✦✦ LIVE 2026 ✦✦✦

Award stamp

100%
Verified
Ghouls

The process · 04

The final site, top to bottom.

One scrollable page. Pixel masthead and dual marquees at the top, four social pills (Bandcamp / Spotify / YouTube / Instagram), pixel-button nav, then the editorial content: news flash, brief history, tour table, hero photo, the four ghouls, photos & tapes, guestbook, footer.

Live preview — fully functional, including the lightbox and clickable member photos:

Final design

ghoulsinthebasement.com

Open full screen ↗

Live site embedded above. The news flash, gallery, and show dates render from a Google Sheet on page load; everything else is hand-built HTML/CSS.

A site that looks like the music sounds — and stays current without me touching it.

What the brief became

The outcome

Site shipped. Sheet shipped. Band has the keys.

The final site reads as a band, not a template. It's live, with a guestbook form routing new submissions to the band's shared inbox. The band updates news, gallery, and tour dates through a shared Google Sheet — no commits, no me. The bandmate photos are clickable, videos play inline (re-encoded from .mov to .mp4 so they actually work in Chrome and Firefox on Windows), and the lightbox handles both via event delegation so it works on dynamically-added items too.

3
Versions, one final

v1, v2, and v3 each contributed something — kept the best parts of each instead of picking one.

3
Sheet tabs · 1 form

News, Media, and Show dates publish to CSV; the guestbook form routes submissions straight to the band's inbox.

~70%
Smaller videos

.mov → .mp4 re-encode dropped 67MB of source clips to ~18MB without visible quality loss.

Reflection

What I learned.

Iterate in HTML, not Figma.

For a project this small with a stakeholder this hands-on, throwing working pages at the band beat any Figma flow. Each version was a 30-minute build, and "I like the bottom half of this one" was an answer they could only give me if both halves were real.

Make it editable on day one.

The Sheet integration could have been a "phase 2" feature. Building it into v3 instead meant the band started managing their own content immediately — and I stopped being the bottleneck for every "can you add this?" request.

Next case study

Love Is Human