Rutter written sailing directions
Editor's cut · Build recap

How Disembark got built

Disembark is a WordPress backup tool. This reads how its marketing site got rebuilt from a design file: implement it faithfully, then fight the browser until mobile behaved.

disembark.host

Before the agent came aboard

Disembark the backup tool, a WordPress plugin and CLI, already existed, and so did an earlier version of this site on an older design. This reads the rebuild of the site from a fresh Claude Design file.

4
Sessions
36
Headings
18
Landmarks
1.8M
Tokens out
Opus 4.8
Model
The chart · the passage plotted

The route, plotted

Seven waypoints over a week, from a design file to a deployed site. Hover any marker to read the direction that set it.

48°24′N 004°29′W ◃ prior voyage
Departure / made port Heading (a direction given) Landmark (evidence handed over) A tack (course correction)
Jun · Session 153e6140

Faithful to the design, then a fight with mobile

15 headings · 12 landmarks · one deployed landing page

The build had a single source of truth from the first message: a Claude Design file. The work was a loop of implementing it, then diffing the result against it.

Heading 1

Fetch this design file, read its readme, and implement the relevant aspects of the design.

Two landmarks Editor-recovered
1 · Jun

The "Connect & back up" section with terminal commands (disembark connect, disembark backup) and the two call-to-action buttons the author asked to trim as redundant.

2 · Jun

The landing page in an iPhone viewport, "The rclone of WordPress Backups," crunched with no side padding. Most of the week's friction lived here.

A design source turns "this looks off" into an exact diff. Even the punctuation was in scope:

Heading 7

Things different from my Claude design vs disembark.localhost - Content has many em-dashes.

The rest was mobile. The desktop matched quickly; the phone took the real work.

Heading 14

Local does not look good. No spacing to the left/right of the text.

The wake · Jun 16 → Jun 23

What came next

A week from a design file to a deployed, mobile-correct site.

Jun 16

Implement the design. Fetch the Claude Design file and build the landing page from it.

Jun 21

Diff against the source. Compare local to the design: hover styling, spacing, em-dashes.

Jun ·

Fix mobile. Crunched text and missing padding on a real phone viewport.

Jun 23

Deploy and capture the path. Ship to production, then write a /dev-disembark skill so the next deploy is a runbook.

Reading the direction

What to borrow

Building a page from a design, with an agent, rewards a few habits.

Implement, then diff against the design

A source of truth turns "wrong" into an exact difference. Most instructions were "here is where local differs from the Claude design."

Mobile is its own build

The desktop matched fast. The phone took the week. Test the real target, not just the emulator.

Small taste calls are direction

"Remove the two CTAs, they feel redundant." "Remove the em-dashes." Trimming and polish steer the result as much as features.

Capture the deploy once

The session ended by writing a deploy skill, so shipping is a runbook next time, not a rediscovery.

Sailing directions

If you built this again

Knowing the desktop matched fast and the phone took the week, here is how you would start a similar site. Copy a prompt and adapt it.

Opening prompt
Build a dark, minimal marketing landing page for a WordPress backup CLI, as a WordPress theme. Use this Claude Design file as the source of truth: <design-url>. Implement it faithfully, including hover states and spacing. After each pass I will paste a screenshot of where local differs from the design.

Sets the design as the source of truth and the diff-against-it loop from the first message.

Front-load mobile
Give mobile the same attention as desktop from the start. Test at iPhone width explicitly and watch for crunched text and missing side padding. Assume the emulator lies; I will paste real-device screenshots.

Where the original build spent most of its time.

Capture the deploy
Once it looks right, deploy it over SSH, then write a short skill documenting where the files live and the exact deploy steps so the next deploy is a runbook.

The runbook the original build only wrote at the end.

This recap is the output of an editor pass over the project's agent transcripts. A deterministic extract (command-center flow --editor) pulls the direction, the agent trace, and the embedded screenshots from the most representative session. A single model pass captions each image and writes the narrative.

Every quoted heading is verbatim, typos and all. Landmark captions were recovered from images embedded in the transcript, then summarized. The originals are never reproduced or shared.

← Back to the Harbor