← Writing

Nobody claps for the front end

The framework is done. Every tool is integrated. The chain layer works. An agent can hold keys, read wallets, trade on Jupiter, check a Kalshi market, execute on Hyperliquid, route payments through x402. All of it wired up, tested, documented. I posted the commits. A few hundred people clapped.

Now I’m building the front end.

Nobody claps for the front end.

I’ve gone through six UX versions in the last few weeks. Six. Not six themes or six color palettes. Six actual structural approaches to how a non-technical holder navigates something built on top of an agent framework. Each time I think I’ve got it, I go quiet for a day, come back, and it feels wrong. Too many steps. Too technical. Wrong mental model. Start over.

The backend work felt like progress because it was measurable. Ship a tool. Write a test. The tool either works or it doesn’t. A commit either makes the thing better or it breaks something you can debug. There’s a loop and it closes. Frontend UX for non-technical users is a different animal. It doesn’t close. You make a decision, you sit with it, you imagine your least technical friend trying to use it at 11pm on a phone, you realize you’ve been building for yourself, and you start over again.

the gap nobody talks about

There’s a real gap between “technically functional” and “something a normal person can use” and it is not a small gap. It’s the gap between a CLI that works perfectly and a product. The framework is a CLI that works perfectly. What I’m building now is the product: the thing where a holder who has never opened a terminal can build an agent, run it, and not panic when something breaks.

That second thing is mostly UX work. It’s error states that don’t terrify people. It’s empty states that explain what you’re supposed to do next. It’s making a three-step flow feel like one step without hiding the information that matters. It’s the labeling on a button. The order of operations. What happens when the wallet isn’t connected. What happens when the agent fails. What happens when the user doesn’t understand what “agent” means.

None of that is on the timeline. The timeline rewards launches and demos. It does not reward the week you spent figuring out that your error messages were written for a developer who already knows what went wrong, not for someone who just wants the red box to go away.

building quietly in a bad market

It’s a bear market. The numbers are bad, the macro is terrible, and the crypto feed has switched from “we’re going to make it” to the grimmer version where everyone goes quiet and waits for the bottom. Bad time to be shipping something slow and unglamorous. Perfect time to actually get it right.

I’ve been buying back $SAM out of the fees, setting aside supply for staking or market-making. That’s not a tweet-worthy update, so I didn’t tweet it much. I just did it.

The silence from me right now is just work. I’m deep in something that doesn’t produce a clean demo every three days. The security layer has to be right: key storage, access controls, the whole flow through to the wallet. You can’t rush that and you can’t fake it. The UX has to be right because the entire pitch is that a non-technical holder can use this without touching code. If I ship a front end that requires a developer to understand, I’ve built nothing. Just wrapped a CLI in React and called it a product.

I’m not going to give an ETA because I’ve given ETAs in bad markets before and they’re the first thing people use to call you a rug when the date slides. When it’s done, it’ll be done. When it ships, the use case becomes obvious in a way it currently isn’t, because right now you have to be a developer to care. Most people aren’t developers.

what actually takes the time

The tools: done. The chain integration: done. The framework core: months ago.

What takes the time now: the thing where a person who has never used an agent opens a browser, connects a wallet, and successfully runs something without asking me for help. Every piece of friction between them and that outcome is a product failure. There are still a lot of pieces.

I’ll be quiet until there aren’t.