The system for hosting changes.
We rewrote our homepage twice in a month. The first rewrite claimed a size, which turned out to be the wrong thing to claim — and finding that out changed the product’s whole vocabulary. This is what changed, and what each change cost.
The claim, and the two it replaced
Our homepage has said three different things this month. The differences aren’t stylistic. Each one sells to a different person.
The first line was a member’s outcome sold to a host, and it quietly assumed the host would invent a topic and recruit fifteen people out of nowhere — the highest-friction possible ask, aimed at the people least likely to act on it.
So we replaced it with a category claim, shipped it, and felt good for about a day. Then the obvious problem surfaced: the category we’d claimed was a size. Nobody wakes up wanting software for a group of a particular size.
What the hosts were actually doing
The answer was already on our own site, in case studies we’d written months earlier and then failed to learn from.
Claire is a career coach with a newsletter people genuinely read. She didn’t need a community. Her readers needed a way to stop being readers — somewhere to show up in writing for a few weeks, so that when she invited them to a first session it was a confirmation between people who knew each other rather than a stranger’s decision.
Another host sells a thirty-day guide. The guide is good. It also ships as a download, which means thirty days of practice arrive in a single afternoon and get read instead of done. What that host needs isn’t a channel. It’s thirty days actually walked, by a group, in order.
Neither of them lacked a topic or an audience. Both lacked a place for the thing to happen.
An audience consumes. A practice group changes.
Once we had the sentence, the page rewrote itself. A practice has a start, a rhythm and an end, and somebody is responsible for noticing who’s gone quiet before the end arrives. That’s a different piece of software from a room where people hang out, and a very different one from a feed.
Size turned out to be a consequence of that, not the point — practice groups are small because that’s how many people one person can actually notice. So every mention of fifteen people came off the page. Two of those had no matching text anywhere and would have survived a search: a headcount rendered inside an illustration, and a capacity number in a mock.
The page, band by band
Six bands, in this order:
- Hero. Headline, one line of subhead, two buttons, and an illustration of a real room.
- Built for people doing the work, not people watching. Five capability tiles, each one mapped to something that ships.
- A week, in motion. Three recorded loops of the actual product.
- Two rooms, two shapes. The case studies.
- The founder letter. The solo-change loop, named rather than hidden.
- Light a fire this month. The closing ask.
The product shot is built, not captured
The room above the fold isn’t a screenshot. It’s rendered from the same design tokens as the app, with obviously invented content.
That started as a privacy decision. A screenshot of a real room is a screenshot of real people’s writing — the morning pages, the missed weeks, the sentence someone wasn’t sure about posting. We’re not putting that on a marketing page, and asking permission every time isn’t a system. Building it from tokens turned out to be the better engineering too: it reflows on a phone instead of shrinking, stays sharp on any screen, and follows the app when the app changes.
The honest cost is that it’s a mock, so it can drift. Three recorded loops of the real thing sit further down the page carrying the proof, and the illustration’s job is only to set the shape.
The typeface was arguing against us
Our display face was Fraunces — characterful, and at 72 pixels its f has a ball terminal that collides with whatever letter comes next. Our own headline read as a small mistake.
Two obvious fixes were dead ends, which is the interesting part. Fraunces has axes that control exactly this kind of quirk, and they did nothing — we’d pinned two static weights, so the variable axes weren’t there to adjust. The tight letter spacing on our headings was compounding the collision, so that came off too.
We moved to Newsreader, and it arrived visibly lighter than the face it replaced. The reason was mechanical rather than aesthetic, and it’s worth knowing if you ever swap a face:
- Fraunces only ever loaded weights 500 and 600. Every heading that didn’t name a weight was silently rounded up to 500 by the browser.
- Newsreader loads as a variable font, so it honours 400 — the weight those headings had been asking for all along.
- Not one line of our own code changed, and the whole type scale dropped a step and a half.
So the serif now has a weight floor, and the headline sits one step below it — because the same weight reads heavier as the size grows, and a display line needs less of it than running text does. That’s the whole rule, and you’re reading it: the three lines above are live text on this page, not images.
Colour, which didn’t change
None of this touched the palette. It’s here because the rules around it are the ones we break by accident, and because this page is built out of these values.
Two rules hold it together. The tokens flip themselves in dark mode, so writing a dark: variant for one of them doubles the flip and produces the wrong colour. And the orange is rare — a dot, a chip, a single rule, never chrome. On the homepage it appears on exactly one element.
What we cut, and what it cost
The last round of edits deleted more than it added. A shorter page someone finishes reading beats a complete one they abandon — but the costs are real, and we’d rather write them down than pretend there weren’t any.
| Removed | What went with it |
|---|---|
| The anti-feed band | The page no longer says what Musepost isn’t. “No infinite feed, no streaks, no points, no leaderboards” was the fastest way to separate it from the tools people already know. |
| The section about money | Nothing on the page now shows anyone paying for anything. The money story is two lines of fine print. |
| The notifications tile | A real part of the product is invisible until you sign up. |
| The eyebrow label | Nothing. The subhead says the same thing one line lower. |
One cut we should have made sooner
While rewriting, we checked each promise on the page against the code. One section described a payment flow in confident detail — request a place, get approved, money moves. It wasn’t built. It had been written when we expected to build it, and nobody went back.
That’s an easy thing to do and a hard thing to forgive, because the person who signs up on the strength of that paragraph finds out within a day. The rule we kept afterwards: a claim on the marketing site has to point at working code, and if it doesn’t, it comes off — even when the feature is two weeks away.
What we don’t know yet
Whether the cuts were right. A page that argues less is easier to finish and easier to forget, and we won’t know which one we built for about a month.
We also have a headline that only works in one place. It reads The system for hosting changes, with the emphasis on the last word doing the work — and in a browser tab, where there’s no italic, the same words parse as changes to hosting. The fix is probably the singular. We haven’t made it yet, which is the sort of thing you notice about your own product a week after everyone else does.
What we’re confident about is the sentence at the top, because it’s the first one that describes what our hosts were doing before they ever found us.