Skip to content
← Writing

Making the Spandrel landing page show the product working

The Spandrel homepage used to show still pictures of the product. Now it shows the product doing its job. How I rebuilt it with the Stageshow skill, with the live demos below.

The Spandrel landing page used to show still pictures of the product. A bills list in the hero. Static cards for a held payment, a lien waiver, vendor compliance, a payment going out.

They looked fine. They did not explain anything.

Spandrel's whole pitch is a sequence. A bill comes in. Something blocks it. Someone fixes it. Money moves. A still picture can only show one moment of that. The visitor has to imagine the rest, and most will not bother.

So I rebuilt every one of those pictures as a small working demo. Everything below is the real code from the homepage, running live in this post. Not a video.

What changed on the landing page

The hero tells the story. It used to be a list of bills. Now a cursor opens a bill that is blocked on a lien waiver. The requirements resolve one by one, the bill gets approved, and the payment is confirmed and scheduled. Then the pager moves to the next bill and it starts again.

AM
Bills /B-1042Northline Electric
3 of 12
NE-26091Net 30
$24,800.00Blocked
AttachmentsNorthline — invoice NE-26091.pdfPDF · 284 KBOpen ↗
Payment
Lien waiver: Not received for NE-26091
W-9: Not on file
Payment eligible. No blockers found.
Schedule payment
Payment scheduled
Funding
Operating · •••• 4410
Payee bank
Checking · •••• 0421
Scheduled debit
September 29, 2026
Next: payment processing begins September 29.
Resolve the missing lien waiver and W-9 to approve.
EditAdd noteApprove
NENorthline Electric
Before you can approve
2 of 3 open
  • Conditional lien waiverNot received for NE-26091
    Fix
    Request it from Northline Electric
    Who
    Northline Electric signs it in their vendor portal
    Request waiver
  • W-9Not on file
    Fix
    Request it from Northline Electric
    Who
    Northline Electric uploads it in their vendor portal
    Request W-9
  • Insurance (COI)Current
    Fix
    Request a current certificate from Northline Electric
    Who
    Northline Electric uploads it in their vendor portal
    Request insurance
Confirm paymentReview the details before you schedule.
$24,800.00To Northline ElectricInvoice NE-26091 · Riverside Renovation
From
Operating · •••• 4410
To
Checking · •••• 0421
Due date
September 30, 2026
Scheduled date
September 29, 2026
Method
Standard ACH · No fee
Next: $24,800.00 is scheduled for Sep 29 and arrives the next business day.
CancelSchedule payment
The hero. A bill is blocked on a lien waiver, gets approved, then paid.

That one loop says more than the headline and the paragraph under it. You see what blocks a payment, who fixes it, and that nothing moves until it is right.

The workflow cards play their workflow. Each card was a still of one step. Now each one plays its whole flow, with the product's own screens and wording.

Held. A payment is blocked by a missing lien waiver or an expired insurance certificate. The request goes out, and the row turns green when it comes back.

Held. A missing or expired requirement holds the payment.

Lien waiver. The waiver is sent for e-sign. The vendor signs it. The payment unlocks.

Lien waiver. Sent for e-sign, signed, payment unlocked.

Compliance. A new vendor is not eligible to pay yet. W-9, then insurance, then bank account.

Compliance. A new vendor works through W-9, insurance and bank account.

Paid. Every requirement is met and the payment goes out.

Paid. Every requirement met, and the payment goes out.

The smaller cards show the other side. A vendor finishing their setup checklist in the portal. A new bill checked against what is left on the commitment.

Vendor portal. A vendor finishes their setup checklist.
Overbilling. A new bill checked against what is left on the commitment.

Some things stayed the same on purpose. Each demo rests on a frame that matches the still it replaced, so the page reads the same at a glance and in a screenshot. They are drawn in React and CSS, not recorded, so text stays sharp and they load with the page. Each one pauses when it scrolls out of view, and under reduced motion they settle at once.

How I built it with Stageshow

I did not hand-animate any of this. I built it in Claude Code with Stageshow, a skill and small React kit by Benji Taylor for faux product UI and cursor demos. He wrote up why he made it on his blog. Adding it to your agent is one line:

npx skills add benjitaylor/skills --skill stageshow

Models can already fake a UI. The result usually looks generated. Too much text, everything the same weight, a cursor wandering around for no reason. Stageshow writes down the small decisions a product designer makes by hand and has the agent follow them.

Here is how that played out.

Story before screen. The skill has the agent write a plan before any code: where the demo sits, what the eye lands on, the action, the payoff, and what to leave out. For the hero that was a handful of beats. Open the bill, resolve the requirements, approve, schedule the payment. Anything that did not serve those beats came out.

Start from a good example. Stageshow ships a set of gold examples, and the agent starts from the closest one instead of a blank file. Then the look and content get replaced with the product's own. Spandrel's type, colors, status marks and words, so it reads as Spandrel and not as a template.

Feed it the old stills. For the workflow cards I gave the agent screenshots of the static cards and asked it to do the same to these. Each card kept its layout and became the resting frame of its own loop.

Make it rehearse. This is the part I did not expect to matter so much. Stageshow comes with a film script. The agent records each demo, looks at it at desktop and phone width, steps through every press and the point where the loop restarts, and fixes the worst thing it sees. Then it does it again. Most of the polish came from those rounds, not the first draft.

Design phones separately. The skill asks for a separate compact layout for narrow screens, a redesign rather than a squeeze. On a phone the hero becomes the mobile bill screen and only approves. Narrow this page to see it.

Keep the kit small. The kit went into the Spandrel repo as a vendored folder under its MIT license. The demos use a handful of its pieces: the stage that scales to fit, the scripted cursor, and motion for crossfades, rolling numbers and rows that open and close.

It went back into the product

Once the demos were done, they looked cleaner than the dashboard they were copying. So the same status icons and the same quiet motion are going back into the real app. The landing page ended up setting the bar for the product.