15 · Dispatch: a landing page whose hero is the working product

Dispatch is a fictional day board for small service crews (plumbers, installers, landscapers). The hero is not a screenshot. It is a working board with three crews and eight jobs. You can drag jobs between crews, the route map redraws, and a command palette, toasts and undo all work. The page also operates itself: a "Watch it work" button sends a ghost cursor through the real interface, and "Play the day" runs the vans around the map from 7:30 AM to 6:30 PM. Then, as you scroll, the app window shrinks into the first feature section and later zooms into the map, a job card and the search button. A real app inside that choreography is what makes people stop.

Inspiration

This site comes from the second reference list. It borrows the look from Kage's monochrome-editorial and minimal-gradient SaaS landing pages, and the structure from The Component Gallery, which compares one component across design systems. Here that becomes a "Component index" section with tabs, toast, dialog, tooltip, dropdown, switch, segmented control, skeleton, empty state and a sticky-header table. Each card shows a live demo and its ARIA role, and the same components run the board above it.

The Motion Primitives ideas are rebuilt by hand. Text Roll is on the nav links. Sliding Number drives the stats and prices. Morphing Dialog is a view transition from the clicked card to the job dialog. Infinite Slider is the integrations row. Scroll Progress is the top bar. Spotlight is on the "Shop" pricing card, and the same idea returns as a cursor-following light on the hero dot grid. Navbar Gallery supplies the floating pill nav and mega menu. CTA Gallery supplies the fused email field. Footer Design supplies the giant wordmark and live clock in a footer that sits under the page.

Added on top: the shrink-into-page trick, the board itself, and in this revision the arrival sequence, the ghost-cursor tour, the day playback, the pinned zoom section and a night theme.

Visual direction

References

Why these choices

A tool whose pitch is "the demo is better than the copy" should show the demo. The first version let visitors play. In a second pass, the page now also plays for them: the tour and the day playback show the product working without anyone touching it, and both give way the moment a real input arrives. The page stays warm-white and quiet so the board carries the colour. There is no WebGL. A single spring and one component set across app and page make the Component Gallery argument visible: this is one system.

Trade-offs show in the code. The scroll trick uses animation-timeline: scroll() when supported and a JS-driven --p variable otherwise, with the slot re-measured on resize and font load. The zoom section is JS-driven from scroll, with the transform origin blended between three stops. Below 900px the shrink and zoom are off, the captions stack, and the board scrolls sideways. The arrival skips on any real press, key, wheel or touch, and with reduced motion it does not run at all. The tour ignores synthetic events so its own fake drag cannot stop it, but stops on any trusted one. The day pauses when the tab hides or the window scrolls out of view. Night theme is saved in localStorage inside a try block. The cost is a file that depends on Google Fonts, uses blur on the nav and dialog backdrop, and runs several animation loops.

Who this kind of site is for

It wins for SaaS and app landing pages, developer tools, internal-tool pitches, and design-system documentation: anything where a working demo beats paragraphs. It suits a product with one clear screen. It is the wrong call for a business with no product to demo (a restaurant, a law firm), for content-heavy sites, or for audiences on old browsers and slow phones, since the hero is a real app plus a tour and a simulation.

How to make it

Stack and key techniques

The prompt

Build a single-file website (index.html, no libraries, no build step, only Google Fonts allowed) for "Dispatch", a fictional day board for small service crews (plumbers, installers, landscapers). Fictional company and customers, no testimonials, no real brand logos. The hero IS the working product.

Visual direction: restrained, monochrome-editorial, no glow or glass on content. Background #fbfaf8, greys #f4f2ee and #ecebe6, hairline #e6e3dd, ink #171613, accent green #0f6b4a, amber #b45309. Crew colours blue #2a5bd7, rust #c2410c, violet #6d28d9. Fonts: Schibsted Grotesk (display, 800), Figtree (body), Geist Mono (data). 8px rhythm. One spring curve, cubic-bezier(.32,1.4,.5,1), for every motion. Put every colour in CSS variables so a night theme can flip them.

Signature moments:
1. Board: a browser-style window with three crew columns, eight jobs (customer, address, time window, duration, tags), per-crew hours bar turning amber over 8 hours, side panel with Map and Table tabs. Drag with a ghost and dashed placeholder, FLIP on every card, toast with working Undo, schematic SVG map whose route lines redraw, odometer digits, Ctrl+K command palette, a job dialog that morphs from the card (View Transitions, with a FLIP fallback) and per-card menus for keyboard users. Skeleton on load, empty state for an empty crew.
2. Arrival under 2.5 seconds: headline words roll in, eyebrow, lede and buttons rise, window fades in while its contents spring up, skeleton lifts, cards deal into columns one by one, routes draw, three stats count up. Skip on any trusted press, key, wheel or touch (jump to final state, numbers correct). Reduced motion: none of it.
3. "Watch it work" tour: a drawn SVG ghost cursor with a caption bubble that uses the real drag code to move a job to another crew, opens the palette with the real button, types "kettle", presses Enter, opens a job dialog from its card, closes it, hits Undo, then hands over. Status pill with a Stop button and an aria-live narration. Abort instantly on any trusted input and clean up any synthetic drag.
4. "Play the day": a clock pill from 7:30 AM to 6:30 PM. Cards light up while a crew is on site and get a check when done, timeline segments dim and fill, each crew's van drives its route with a trail drawing behind it, a live status line reads the day. Pause, replay, survives drags mid-play, pauses when the tab hides or the window scrolls off.
5. Shrink-into-page: the window is sticky, then scales into a slot beside the first feature section. animation-timeline: scroll() when supported, JS variable otherwise. Measure at layout time, on resize and on font load. Off under 900px.
6. Pinned zoom section: the settled window stays put while three captions swap on the left and the board zooms (transform-origin blended between stops) into the map, a job card and the search button, each with a highlight ring, dim mask and label. Stacked static captions on phones.
7. Light and depth: cursor spotlight on the hero dot grid, a slow light sweep over the window chrome, 3D tilt with sheen on three feature cards, a conic border trail on the middle pricing card, window shadow deepening as it settles.
8. Rest of page: floating pill nav with text-roll and mega menu, scroll progress bar, word-by-word headings, stats with sliding numbers, integrations slider whose logos lean toward the pointer, a Component index with live demos (tabs, toast, dialog, tooltip, dropdown, switch, segmented, skeleton, empty state, sticky table), three pricing cards with a monthly/yearly toggle, a CTA band with a drawing accent line and a fused email field that shakes on error, a footer with a giant wordmark that parallaxes as it is revealed, and a live clock. A moon button flips the whole page to a night theme and saves it in localStorage.

Constraints: semantic HTML, ARIA for tabs, menus, switches, radiogroups, dialog and live regions, visible focus, arrow keys, prefers-reduced-motion respected, no horizontal overflow, mobile board scrolls sideways. Zero em dashes in copy.

Verification loop: screenshot the arrival, mid-tour, mid-day, all three zoom stops, night theme, the footer and a phone size. Read the console. Script the key paths (drag and undo, palette, dialog focus return, yearly toggle, bad and good emails, tour start and stop on real input, arrival skip, theme persistence, reduced motion). Fix every problem and repeat until clean.

Build notes

Stepping down: what you would likely lose

This is an informed estimate, not a measurement. No public benchmark compares these exact models on one-shot frontend work, so the reasoning rests on the spec table, Anthropic's own pages, earlier-generation reviews and extrapolation.

Feature Opus 5.5 (likely outcome) Sonnet 5.5 (likely outcome)
Working board with drag, FLIP and undo Does fine; may have small drop-index slips Attempts it; likely bug is the click firing after a drop, or drag failing when started on a button
Shrink-into-page scroll trick Attempts it; likely bug is a slot measured before fonts load, so it lands a few pixels off Likely simplifies to a plain sticky window or a fade, losing the settling effect
Ghost-cursor tour driving the real drag and palette code Attempts it; likely bug is a synthetic drag left half-finished when the tour is stopped Likely simplifies to a canned animation that fakes the moves instead of using the real code
Play the day (clock, vans, trails, state through a drag) Attempts it; likely bug is trails or card states resetting after a move mid-play Attempts it; likely bug is vans jumping or the clock running while the tab is hidden
Pinned zoom with blended origin, ring and captions Attempts it; likely bug is the ring drifting off its target between stops Likely simplifies to a plain scale to one point, or captions that fail to stick
Arrival sequence with clean skip Does fine on the main path Attempts it; likely bug is numbers stuck at 0 or half-finished animations after an early skip
Dialog morph (View Transitions plus fallback) Does fine on the main path Attempts it; likely bug is focus not returning, or no fallback
Night theme, tilt, magnetic logos, footer parallax Does fine Does fine, probably with less polished timing and a few unthemed spots

Rough overall estimate, as a judgment call: Opus 5.5 keeps roughly 80 to 90 percent of the impact, since the gap to Fable 5.1 on a restrained design is probably small but the added choreography has many places to slip. Sonnet 5.5 keeps roughly 55 to 70 percent, mainly losing the tour's real-code driving, the zoom and the scroll choreography. A screenshot-and-fix loop, plus building the app first and the tour, playback and zoom as later passes, would likely close most of the gap for either model.

← Previous reportNext report →