StoryBrand, the engineer's read
My homepage was bad. Not broken — just flat. The words were there, the punctuation was clean, but nothing on the page was alive. Every prospect call started the same way — "so what do you actually do?" — and I couldn't answer it cleanly. If I couldn't say it on a call, the copy on the page never had a chance.
The fix I keep coming back to is StoryBrand. Don Miller's book runs 200+ pages, but the whole thing reduces to a one-page interview that forces seven answers about your buyer, your offer, and your antagonist — then a rubric for auditing every surface (homepage, footer, CTAs, bio, meta description) against those seven answers.
I've run it on four GL properties this month — godfreylabs.com, builddaily.io, paiddaily.io, and my Upwork profile. Same procedure, four very different outputs. Each is a one-page brandscript in the repo, plus a rewrites doc that scores existing copy line by line.
Applying it as an engineer — not a marketer — surfaced something the book doesn't put the emphasis on. Here's the engineer's read.
The framework in 30 seconds
Seven boxes. A character with a problem meets a guide who gives them a plan and calls them to action that ends in success or failure. That's the whole book. The diagram below is a worked brandscript for one of my properties — partially filled — so you can see what an actual artifact looks like before the abstract names of the boxes settle in.
Pull the worksheet up on screen, force yourself to fill in all seven boxes for one of your properties, and most of what comes next will write itself. Skip a box and the copy gets vague exactly where the buyer needs it sharpest.
The internal problem is the load-bearing one
Every engineer I've seen run this skips straight to the external problem. "They want a working AI feature. They want production-grade infra. They want their app to load faster." Fine. True. Useless on its own.
The internal problem is what the buyer actually feels. Frustrated. Scared they hired wrong. Embarrassed in front of the board. Tired of being the only one who can debug it.
"We help CTOs ship AI features faster with senior engineering."
"Your roadmap is longer than your team can deliver and you keep hearing AI can help — but you don't know who to trust to wire it in without leaving you with a vibe-coded mess."
That second sentence wrote the hero, the CTA, the about page, and the failure section on godfreylabs.com. One real internal-problem sentence makes the rest of the script practically write itself.
If your copy names only the external problem, you've described a job posting. If it names the internal problem, you've described someone who's been in their chair. That's the unlock.
The villain is a category, not a competitor
This is where most rebrands quit. You can't name a person, you can't name a competitor (looks petty), so the villain slot stays empty and the brand has no edge. The fix is realizing the villain is almost always a category — a behavior pattern, a myth, a bad incentive structure.
the headcount trap
the reflex that the answer to a stretched team is always another seat
random-walk vibes trading
making the chart up as you go and calling it intuition
roadmap-billing agencies
shops that bill against a plan they don't actually ship
If you can't name a villain, push past the discomfort. Your offer has an enemy whether you've named it or not. Naming the category is what gives the rest of the copy its edge — the buyer recognizes the pattern, and you become the one calling it out.
Empathy before authority — the order matters
Engineer-written copy almost always leads with authority — stack list, years shipping, named systems. Then maybe at the bottom there's a line about "we get it, building AI is hard." StoryBrand inverts that: empathy first, then authority. Same words, different order — and the second order earns the right to claim the first.
- Stack list, years, shipped systems.
- What we build.
- How we work.
- (buried) "We get it, AI is hard."
- One sentence proving you've been in their chair.
- One sentence on what you do.
- Authority — stack, shipped, named.
- The ask.
You don't have to write more words. You write the same words in a different order.
The brandscript is the posture; the audit is the artifact
I wrote about this last week — the brandscript by itself doesn't change anything on your site. It's the posture. The rewrites doc is the audit that converts the posture into shipped copy. Two artifacts, two jobs, and most people only do the first.
- A
The brandscript · the posture
One page. Seven boxes. The answers to who-the-buyer-is, what-they-feel, who-you-are, what-the-plan-is, what-they-do-next, and the two endings. Lives in the repo at
brand/script.md. Doesn't change a single byte on the site by itself — but it's the document the next piece of copy has to argue against.- B
The rewrites doc · the audit
Every persuasion surface walked one at a time — hero, subhead, every CTA button, footer colophon, nav labels, meta description, even alt text on the hero image. Each one gets a PASS / FAIL against the brandscript, and for the FAILs a verbatim replacement — not a description, the actual line. Then you commit per surface. The audit is the value; the brandscript only makes it possible.
The questions I run every surface against:
- Is the spotlight on the buyer or on me?
- Have I named the internal problem in their language?
- Empathy first, then authority?
- Can they picture the next 3 steps?
- Is the CTA specific — price + action + timeframe?
- Are both sides of the stakes legible — success and failure?
- Is the villain present, even implicit?
- Could someone outside the audience follow it?
If you've already shipped, run the audit retroactively. The artifact is what keeps future copy edits from drifting.
What I'd tell another engineer
Pick one property — your most-visited one — and run the seven questions on it. Not in your head. In a file. Force yourself to write the answers down.
Then write the one-liner:
"We help CHARACTER who PROBLEM PLAN so they SUCCESS, without FAILURE."
If you can't finish the sentence, your offer isn't sharp enough to ship copy against. That's the diagnostic. StoryBrand isn't going to fix that — but it'll show you which box is empty, and that's the first thing worth your time.
None of this is original work — it's Miller's framework, applied with engineer's discipline, with the rough edges left in.
The framework isn't hard. The discipline of writing the answers down — and auditing every surface against them — is the part most of us skip.
That's the part that pays.
