Underpin: a brand for an AI agent that renews old code while the product stays live
Book a call, get a price rangeUnderpin is an AI coding agent for legacy migrations, like Java 8 to 21 or Spring Boot 2 to 3. It renews a codebase file by file as reviewed pull requests with the tests passing, and nothing is switched off. We built it from scratch: the name, a world of leaded glass where every file is one pane, a hand-lettered wordmark, the repository drawn as a window, mobile approval, and posters about buildings that never came down.
- Project
- An Alterra Studio project: we built the company's brand, product and launch from scratch
- Stage
- AI developer tools, Series A stage
- Services
- Naming, world and key art, wordmark and mark, product UI, posters and out-of-home, animated board
- Tools
- Imagine (our in-house design app), Nano Banana Pro, Kling, HyperFrames
The problem and the brief
AI code-migration startups all promise speed and control. Not one shows a file change, pass its tests and merge on the first screen.
Underpin is an AI coding agent for legacy migrations, like Java 8 to 21 or Spring Boot 2 to 3. It renews a codebase file by file as reviewed pull requests with the tests passing, and nothing is switched off. Its buyer is a CTO or VP Engineering sitting on about a million lines of old code.
The brief, in a founder's words: "Every migration tool promises speed and control; a CTO who has watched one migration freeze the roadmap for a year wants to see one file change, pass its tests and merge while production keeps running, and our homepage never shows it."
The research
of large enterprises started a legacy modernisation project and failed to complete it.
Source: Advanced, 2020
of the tech budget meant for new products goes to fixing tech debt, CIOs say.
Source: McKinsey, 2020
of organisations still ran Java 8 in production in 2025.
Source: Azul State of Java, 2025
Three doubts an engineering team brings to the first call
- CTO
Another big-bang cutover weekend we can't roll back.
- VP Engineering
AI-written code will break production on a Friday.
- Staff engineer
We'll drown in thousands of unreviewable AI pull requests.
The strategy: one pane at a time
The product draws the repository as a leaded window, one pane per file. Each screen shows one file renewed, checked and merged while the rest of the window, and the product, stays up.
- Doubt 1 · Big bang?
Another big-bang cutover weekend we can't roll back.
The codebase as a window, renewed pane by pane
3,410 files are 3,410 panes. Merged files glow marigold, the one in review stands proud in ruby, the rest wait in milky grey. The header keeps the score: 2,286 of 3,410 merged, 67% on Java 21. There's never a cutover, just the next pane.
74% of large enterprises started a legacy modernisation and never finished it. Progress you can see, file by file, is the answer.
- Doubt 2 · Breaks prod?
AI-written code will break production on a Friday.
Four checks before anything merges
Each pull request lists its proof: 214 tests pass, 6 of them new; it builds on JDK 21; 1,912 recorded production requests replayed with 0 differences; the public API unchanged. Merge stays greyed out until all four are green.
The VP's doubt is production, so the card shows production traffic replayed, not a promise.

- Doubt 3 · Too many PRs?
We'll drown in thousands of unreviewable AI pull requests.
One small PR, reviewable on a phone
Every pull request is small: one class and its neighbours, like OrderLedger.java with its test, with a one-line summary of what changed and why. It's small enough to approve from a phone, and when it merges its pane in the window turns from ruby to marigold.
10-20% of the budget for new products goes to tech debt. Small, reviewable steps keep engineers on the product.
The design system
Limestone and lead for the frame, milky glass for old code, and one jewel colour per state: ruby in review, marigold merged.
- Limestone #E4DED3Grounds, posters, the building
- Lead #2C2B2AType, the lead lines, the product
- Milky glass #B9BDB8Legacy files, not yet renewed
- Ruby #C8102EThe file in review
- Marigold #F4A300Merged, renewed
The world. A leaded-glass window renewed one pane at a time, in a building that never closes. The window is the codebase; the building is the product that stays live.
Wordmark. Hand-lettered and traced as drawn, standing on stacked footing lines, the device that underpins it.
Type. Funnel Display for headlines, Azeret Mono for file names, counts and checks.
What we left out. All 10 competitors put a promise about AI where the migration should be, 7 use abstract art and 4 a single neon accent. Underpin shows the window and the merge.








The category audit
We scored 10 funded AI code-migration startups on our startup homepage benchmark. Not one shows a change being reviewed and merged on the first screen.
Each homepage was scored on 12 criteria, 0 to 2 each, at 1440 and 390 pixels wide. The group averages 13.9 out of 24, just under the 14.1 of our wider benchmark, and 4 of 10 show no customers at all.
Only 1 of 10 says what it does in five seconds at both widths, 2 show the product there, and none speaks to the CTO or VP Engineering anywhere on the page. Every first screen says "AI" or "agents". Those are the gaps Underpin's homepage is designed to close.
- Company A75
- Company B75
- Company C58
- Company D58
- Company E54
- Company F54
- Company G54
- Company H54
- Company I54
- Company J42
- Benchmark average, 100 startups59
Alterra Studio startup website benchmark 2026. Companies are anonymised.
What we'd ship
For a real AI developer-tools company, this is a Brand + Website Build.
- Brand
- Name check, world and key art, wordmark, palette and type, and the rules for the state colours
- Homepage
- A first screen that shows one file renewed and merged while production runs, at desktop and phone width
- Product
- The repository window, the pull request card and mobile approval in the brand
- Launch
- The animated board, posters and out-of-home for launch week
What's next
- Build the homepage with one pane merging as the first screen at 1440 and 390, and score it on the same benchmark.
- Draw the mark a symbol as distinctive as the window, for the app icon and the avatar.
The thinking behind it.
Guides on the decisions behind work like this, written by the team that did it.
All insights- Brand5 min read
How we turned our logo into a type family
We measured the Alterra wordmark, traced its five letters, and grew it into three display weights and a text companion. The grid, the rules and what we'd do differently.
- Brand9 min read
Startup brand identity examples, and why they work
10 startup brand identity examples from Linear, Vercel, Stripe, Figma, PostHog, Perplexity and more: the one specific choice each makes, why it works for its buyer, and how to brief your own.
- Brand8 min read
Is your brand ready for a Series A? A pre-raise checklist
Is your startup brand ready for a Series A? A pre-raise checklist across clarity, credibility, consistency and conversion, with research on first impressions and a timeline.
Want this for your company?
Book 30 minutes. We'll tell you what we'd change first in your brand and on your first screen, and what it would cost.
Book a call, get a price rangeCurious how your site compares?
Run the same audit on your site →

The brand in the feed
A mockup of how the brand would run on X. Not a live account.
Underpin
@underpinhq
Upgrades your old codebase file by file, while the product stays live. Reviewed PRs, tests passing, nothing switched off.
underpin.devJoined October 2026
88 Following6,348 Followers
Pinned
Underpin @underpinhq · Oct 14
Meet Underpin. Java 8 → 21. Nothing came down.
381721.2K81K
Underpin @underpinhq · Oct 15
#2287 OrderLedger.java 214 tests pass. 1,912 recorded requests replayed, 0 differ. Public API unchanged. One pane at a time.
249069044K
Underpin @underpinhq · Oct 17
A million lines renewed. Still standing.
124142019K