Aspen Lab
← Back to work
Travel · FintechAxel · Gordian Software (YC W19)

Axel — sole designer × bidirectional loop

Sole designer at a YC W19 travel-money startup, reporting directly to the CEO. Built a symmetric Design ⇌ FE delivery protocol with the lead engineer that turns handoff into convergence — three zones, four review tiers, a weekly cadence. Every pixel in Axel goes through one person.

Visit live → helloaxel.com
Role
Sole designer · reports to CEO
Period
Dec 2025 — Present
Client
Axel
Themes
Sole designer · Design × FE protocol · Production React
Axel — sole designer × bidirectional loop
  • Sole

    Designer of record

  • CEO direct

    Reports to

  • 00 / theme

    Target PR cadence

  • 00 days

    Branch lifespan

Chapters
Chapter 01Ownership

01

Designer of record

Every pixel in Axel goes through one person. Sole designer delivering production — the product comes from me with team discussion, but only I deliver. Reports directly to the CEO. Design and code are the same artifact: Figma → tokens → Tailwind → Vercel preview, no translation loss.

  • helloaxel.com

    100% mine — landing, conversational UI, motion.

  • Design system

    蓝绿粉 tokens · opacity ladder · rounded-xl · tabular-nums.

  • 28 email templates

    Customer.io · Liquid · "no-fake-defaults" pattern.

  • Production React

    Same repo as eng. Vercel preview is the handoff.

02

Why a YC CEO would hire this shape

Before 20 people you can't afford a design layer that needs translation. You need one person who can take an ambiguous CEO ask, ship a working prototype against real data by Friday, and have engineering trust the output. That's the slot. No PMs to mediate. No design-eng meetings to schedule. No specs to write twice.

The handoff is the deploy. There is no separate design environment to maintain.

03

The stack I actually run

Design and production share a stack. Same fonts, same tokens, same components. Adding a tool means I've already evaluated three.

LayerWhat's running
FrontendNext.js 16 · React 19 · TypeScript · Tailwind 4 · Motion
EmailCustomer.io · Liquid · "no-fake-defaults" guards · MJML thinking
DecksPptxGenJS — dark + #0BE09B + Lato
AI toolingCursor · Claude Code · Figma MCP · Customer.io MCP · CLAUDE.md/repo
Tokens蓝绿粉 palette · white/85 → 55 → 35 → 25 · rounded-xl · tabular-nums
GlueVercel preview as handoff · git as design history · Loom

Same toolchain both sides — there is no "design environment" separate from production.

Chapter 02The protocol

04

The Loop · symmetric, not asymmetric

Most Design ⇌ FE handoffs are asymmetric — design throws specs over the wall, eng implements, friction lives in the gap. Jesus (lead engineer) and I built a symmetric protocol. I wrote the forward — three zones, two paths, a weekly rhythm. Jesus wrote the reverse — a designer-fe-architect-review skill, an /audit-changes command, four-tier safety routing. Both directions AI-protocolized. Translation loss → ~0.

Designer

Aspen

Lead engineer

Jesus

Hover a flow to focus the protocol

05

Forward · Aspen → Jesus

Three zones, two paths. Playground is source of truth — design lives, evolves, never merges; replaces Figma's role. PR Branch is transit — themed, short-lived, born to die. Master is production. Branches stay 1–3 days, 5–10 changes per themed PR.

3 zones × 2 paths · the forward protocol
  1. 01

    Playground

    source of truth · design lives, never merges

  2. 02

    Choose path

    design-led or data-led trigger?

  3. Path A · design-ledPlayground → PR → Master

    "What if X" hi-fi prototypes before spec.

  4. Path B · data-ledMaster → branch → PR

    Real-data wiring + bugs only on real data.

  5. 03

    PR Branch

    transit · themed · 1–3 days · 5–10 changes

  6. 04

    Master

    production · users see it

06

Reverse · Jesus → Aspen — `/audit-changes`

Four tiers, one command. `/audit-changes` classifies every PR by safety so I move fast on safe things and the right work gets eyes from the right person.

TierTypeExamplesAction
01Visualcolor · spacing · type · motionClaude self-audit → ship it
02MarkupDOM · component splits · propsLight review
03Behaviorstate · effects · API · interactionReview with Jesus
04Out-of-boundsmoney · auth · type changesPull from PR — Jesus owns

Default safety routing. Designer never has to ask "can I ship this?" — the tier tells me.

07

Weekly cadence · Hotel V1 trial

The rhythm is the point. Make it visible so the team compounds on it instead of rebuilding habits each sprint.

DayAction
MonClose decisions · playground ready
Tue3 themed PRs + 2-min Loom each + scenario links
WedReview — diff + scenario + Loom (three-piece set)
ThuMerge → master → users · rebase playground
FriDebrief — where PRs got too big, where the loop broke

Hotel V1 is this week's trial. Goal isn't perfection — it's *testability*.

Chapter 03State & moat

08

Where we are today

Structurally ~10% of the TikTok / Duolingo tier. ~40+ approved improvements stuck in the playground waiting on the loop to mature. We may settle around 40%not a goal, a constraint. TikTok and Duolingo run 700+ A/B per quarter with 1000+ designers. We can't win that race; we shouldn't try.

Structural completeness · today vs ceiling
  • TikTok
    100%
  • Duolingo
    95%
  • Axel · target
    40%
  • Axel · today
    10%
  • ~1000 designers · 700+ A/B per quarter
  • Mature org · structural maturity ceiling
  • Realistic ceiling for our shape
  • ~40 approved changes queued in playground

09

What we have that they can't replicate

We can't outscale TikTok. We can out-iterate them on the per-decision quality of every keystroke.

  • Zero-friction handoff

    Vercel preview = the deliverable. No translation, no spec, no tickets.

  • AI-accelerated iteration

    Same repo, same prompt history, same `/audit-changes` skill across designer and engineer.

  • Hi-fi prototypes ARE production

    What I build in playground is what users get — same React, same tokens.

  • Tight ownership routing

    Every decision has one named owner. No "who decides this?" cycles.

10

What I leave behind

The process is documenting itself — turning into a transferable artifact. These outlive the current collaboration.

  • 3-zone × 2-path framework

    Playground · PR · Master with design-led / data-led triggers.

  • 4-tier `/audit-changes` skill

    Default safety routing baked into the command. Tier tells me what to do.

  • Weekly cadence template

    Mon decisions · Tue PRs · Wed review · Thu merge · Fri debrief.

  • AI prompt library

    Per-repo `CLAUDE.md` + Figma MCP + Customer.io MCP wired together.