
A trading screen you can read at a glance
Interstate is an app for trading crypto in seconds. I redesigned its screen to show, at a glance, what moved and what just happened.
- Mine
- Design spec
- Design roadmap
- Design system
- UI design
- Shared
- Front endwith eng
- Rolloutwith eng
- Not mine
- Trading engine
- Market data
The problem
4.5 out of 10. That was a working trader's score.
Before I changed anything, two professional traders reviewed the app on recorded calls. Their complaints were about the screen, not missing features.

The cause
Nine boards, nine rules. Every screen decided for itself.
A good design direction existed on paper, but nothing in the product held anyone to it, so every screen settled its own size and colour.
Buy button now under fingertip size
The screen didn't have one design problem. It had thousands, each too small to notice.
The approach
Fix the blocks. Every screen is built from the same ones.
Screens redesigned one at a time would drift within weeks. So I redesigned the shared blocks every screen is built from, in the product's code.
A system that needs its designer in the room is just a preference.
Colour
Colour means money. Nothing else is allowed to use it.
Green means bought or up; red means sold or down. The old boards spent colour on decoration, so a real price move couldn't stand out.
Before
After
The whole colour budget
Buy
#12c48btrade filled, price up
Sell
#e5484dsale or failure: same red
Warning
#fddb24caught before sending
Info
#6e9bffrare; never on a trade
Even good news stays grey: a green “you ranked up” would look like a trade.
Layout
The screen holds still. Switching boards no longer relays it out.
Traders flip boards constantly, and each had its own header height. Every switch nudged the rows: too small to report, enough to lose your place.
Feedback
Click, and it answers. No silent pending state to wait out.
One design now answers every trade instantly and in place, with the fill time. When a trade fails, it says why and what to try.
- HadMany designs doing one job
- MineOne design, but the wrong oneReverted82Bought 1,240 BONK0.42 SOL · 1.9s
- ShippedMostly subtractionBought 1,240 BONK1.9s38

The result
The same board. Quieter, and far faster to read.
Same crop, same three columns. The rows kept their information and lost the colours that weren't carrying any.


Mistakes
I hid a transfer. Inside a dropdown menu, where a test found it.
Merging two header controls that asked the same question was right. Moving a two-minute balance transfer into the account menu wasn't.

If an action outlives its container, no amount of guarding fixes it.
No post-launch analytics. The numbers here are counts from the shipped product, not a measure of what it changed for traders.
The base size is still 13. I'd set it myself, early on. Resizing every screen at once, with nothing automatic to catch what broke, was the bigger risk, so the new blocks use fixed sizes the base can't shrink.
The old accent colour survives in about twenty files. It's replaced file by file, so any one change can be undone on its own.
One board can't be reached. The day after I moved the portfolio board to the new layout, a parallel rewrite replaced it. Mine is still in the code, unreachable.
Design files decide what a thing should be. The product shows what it is.
- Role
- Fractional Design Engineer
- Team
- Design Engineer (Me), ~30 people building the product
- Timeline
- Jul–Aug 2026
- Tools
- Paper, Claude Code, Next.js, Tailwind v4