2026-05-07 08:00:00
My front-end development process for a new product:
Proven Execution is the baseline. Everything here should be treated as non-negotiable.
1.1 Coverage: All required screens, flows, and components should exist. First the designer creates them, then the front-end dev executes according to design. Considering most developers are one-shotting the first cut, I am less focused on pixel perfect design at this stage, but making sure all the components and flows exist. You can think of this stage as getting the static components in code.
1.2 Functionality: All components should work as expected. This means integrating with the backend API. Making sure the happy flow works. Buttons, inputs, filters, tabs, trading actions, navigation, and state changes should behave correctly. The product should not just look clickable. It should work.
1.3 Correctness: Now you make sure that if the UI matches the designs. Make it pixel perfect. This means layout, spacing, typography, colors, component sizing, visual hierarchy, responsiveness, and designer feedback.
1.4 All States, Edge Cases, and Errors: Every screen should handle real-world conditions. This includes loading, empty, error, success, disabled, pending, partial data, offline, and permission states. The product should behave well when things go wrong.
You can decide to pick 1.4 before 1.3 too.
1.5 Scalability: The front end should be built in a way that supports future versions. Components should be reusable. Layouts should handle more content.
We should not build the first version in a way that makes the second version harder.
With this we complete the first stage.
Product Feel: Once the known product works, we improve how it feels.
2.1 Performance: The product should feel fast. Screens should load quickly. Interactions should respond immediately. Scroll should be smooth.
2.2 Delight: Delight should support the product, not decorate it. Motion, transitions, hover states, confirmations, price movement cues, and micro-interactions should make the product feel clearer, faster, and more satisfying. If motion slows the user down or distracts from the action, cut it.
2.3 Information architecture and copy: The hierarchy should be clear. The copy should be simple. The actions should be obvious. The mobile experience should feel native. A normal consumer should understand what to do without being trained.
2.4 Brand and Product Refinement: Branding is not just the landing page. Once the design system, part of the branding exercise, is ready, it should make everything cohesive. This includes typography, font sizes, colors, spacing, icons, illustrations, motion, charts, copy, empty states, and product personality. I am keeping Brand and Product refinement for later because a lot of companies would not wait for branding before starting on the product development.
2.5 Gamification: Best products feel like games.
Second stage is complete.
User led invention and iteration: As you are closer to launch, you will learn a lot from alpha users.
3.1 UTs: Do usability testing. Watch where users get confused, where they drop off, what they click, what they ignore, what they misunderstand, and what they try to do that we did not design for. User feedback should improve the product. User behavior matters more than internal opinions.
3.2 Invent last, not first: Only now do we add genuinely new things. Solve what others have not solved.
Most teams have all of these things in their heads. What they get wrong is the order. They start with new (invention) because it’s exciting. They debate brand before the product works. They skip edge cases because users haven’t complained yet. They add motion while basic flows are broken.
First, we build the known product. Then we make it better. Then we invent.
Related read: Proven, better, new.
2026-05-06 08:00:00
For much of the 20th century, society was built around bell curves: Average job. Average company. Average return. Average salary. Average investor.
The middle was large because distribution was constrained. Geography constrained jobs. Shelf space constrained products. Regulation constrained market access. Broadcast limited which voices got heard. Capital constraints kept outcomes tighter.
The middle looked big and the extremes were hidden.
Now everything is becoming more power law. Power laws happen when distribution gets cheaper, markets get more liquid, and talent/capital can scale faster thanks to AI.
A handful of companies now capture most of the market cap. A handful of creators capture most of the attention. A handful of funds capture most of the returns. A handful of workers capture most of the income growth in AI-exposed fields.
This was already obvious in venture capital. One fund-returning company mattered more than the entire rest of the portfolio. Then it became obvious in public markets with the magnificent seven.
Now it is spreading into labor, media, trading, startups, creator businesses, and information markets.
2026-05-05 08:00:00
Mark Pincus, the guy who built Zynga, has this deceptively simple framework for product development. He calls it Proven, Better, New.
Every product should start with something proven, make one or two things meaningfully better, and add just a touch of something new. But most people do the opposite. They decide to be original everywhere.
Step one is starting with proven. Proven is the part of the product that users already understand without onboarding. A poker game that behaves like poker is proven. You don’t get extra points for changing those.
Step two is making something better. Better doesn’t need to be flashy. It just needs to matter. It has to be something where nine out of ten people say “yes, that’s better.” Cheaper counts. Faster counts. Fewer steps counts. More fun counts. When Pincus started Zynga Poker, most games made you download something before playing. Every extra click killed half the funnel. He removed the download. One obvious improvement. That one change made the product spread.
Only after that comes step three: new. New is fun. New is where your taste shows up. New is also where almost everything fails. Pincus solves this by assuming new will fail. He budgets for it. He limits new to maybe 20 percent of the product so that even if it flops, the 80 percent that is proven and better still stands. He made Zynga Poker social. Playing with real friends instead of random avatars was the new. It worked. But even if it hadn’t, you would still have had poker and you would still have had no download. The product would still have been useful.
Too many founders cling to new ideas out of ego. They want everything to be new because that feels more innovative. They don’t want to build something the feels like a cheap copycat.
Take Quibi. They tried to innovate on everything. Short-form video. Mobile-only. New content format. New viewing behavior. Nothing was proven. The whole thing collapsed.
There’s a second framework I like to pair with Proven, Better, New. It’s from Slava Akhmechet. He says every feature lives in one of three buckets: gamechanger, showstopper, distraction.
A gamechanger is the reason someone buys your product. A showstopper is something you must have so people don’t reject your product, but it won’t make them choose you. A distraction is everything else.
The pattern he’s seen is that good products have one to three true gamechangers, a bunch of showstoppers that keep you from losing, and almost no distractions.
The hard part in product development is not shipping more. It is telling the difference between something that makes people buy, something that just keeps you in the game, and something that only makes the team feel productive.
2026-05-02 08:00:00
I pay for Claude, ChatGPT, Gemini: all the pro models. I have all the AI vibe-coding workflows set up. I create random POCs all the time.
So when Lenny tweeted about CleanShot X recently, I could have tried to vibecode my own version.
Would it have worked 70% of the time? Probably. Could I have just created the 20% of features I need that would give me 80% of the value? Probably.
But would I make something as polished as CleanShot X? No. Would I fix the dozens of edge cases after the MVP? No. Would I maintain it? Definitely not.
So I just decided to pay the ~$30 for the license.
AI makes building cheaper.
But you still need to put in effort to develop software that has taste and polish. And of course maintain it.
If I take dozens of screenshots a day, it makes sense to pay for an app that does screenshots really well.
And when the world has infinite content and infinite software nowadays thanks to AI, discovery (word of mouth) becomes even more valuable. I know people who bought Tegus and Quartr Pro because of my tweets. I have done the same when people I respect recommend something. Especially from people with a high value-to-shill ratio.
P.S Get CleanShot X.
2026-04-26 08:00:00
Gokul Rajaram broke design Twitter yesterday. The man knows how to get attention. He said there won’t be any design roles anymore. People will rely on outsourced designers to come in, set up a design system. No permanent design roles in companies.
Engineers and PMs will design going forward.
If you have worked with good designers, you know this is not happening.
This whole AI psychosis pandemic has turned every role into a funeral. People vibe code a landing page using the latest Claude model and declare that Figma is dead.
Designers are dead. Front end engineers dead. PMs dead. Everyone is dead except the guy posting the thread. That guy is safe. Because they are doing something that AI can’t do. Of course.
They believe front-end engineering is just generating static components. They think designer’s job is creating a design system. Then whenever there is a requirement, they just open Figma, pick a button from their system, choose a card component, send it to the developer, and call it a day.
IMHO there are at least four layers to designing a product.
First, there is product design. What problem are we even solving? Who has the problem? Why does it matter? What is the smallest thing we can ship that actually changes user behavior?
Then there is interaction design. What is the flow? What happens when the user taps this? How do we give feedback on the user’s action? What are the edge case? What happens when the user has bad internet?
There is visual design. The actual screen. The hierarchy. The spacing. The type. The contrast. Yes, you can use a design system for this. But even then it is a judgement call on which components to pick.
And then there is aesthetics. Delight. Wow. Whatever you want to call it. It is Emil (great animation course by the way) adding some animation that makes the screen come alive. It is Benji going deep into delighting the user with every interaction in the Family app.
I read an article somewhere, I think it was by the Boring Apps guy, that said the best apps are games. In other words, there is a layer of design that turns an app into a game. You can call it the fifth layer.
You start from the highest abstraction and keep going lower.
Yes, you can start with code. You can start with Figma. You can start with a paper sketch. It does not matter. The tool is not the point.
20 years back the tool was Photoshop. Then it was Sketch. Then Figma. It can be Claude Code tomorrow.
The job of a designer is turning an abstract problem into a real solution that reaches the end user’s device.
A design system helps you ship the artefact faster. It does not tell you what to build.
And Figma will obviously get agents soon. It is inevitable. A lot of the boring operational work will get automated. You will describe a screen, and Figma will generate the first draft. You will ask for states, and it will create them. You will ask it to clean up spacing, align components, maybe even create a prototype.
But this does not mean that designers disappear. The best designers will just get more leverage.
The same thing is already happening with developers. Good engineers are now not paid because they can write functions. They are paid because they can think through tradeoffs. Architecture. Scale. Reliability. What to build now. What not to build. Where to be careful. Where to move fast.
The actual code writing is slowly becoming less important.
While judgment (dare I call it taste) is becoming more important.
Design will go the same way.
I have been writing about this for a few years now. Tech is going down the high-finance path. Smaller teams. Higher leverage. Fewer people doing more work. The middle gets squeezed. The best people get paid absurdly well because one good person with the right tools can now do the work of five decent people.
I know this well because when I left my job last year, I bought a lot of design books. I even posted a photo of all my books stacked together. It went viral.
I read most of them. I spent time in Figma. I bought 3 courses. Emil’s. Rauno’s. Josh Puckett’s.
I have created tons of landing pages. Components. Posters. Random brand explorations. I got better. But incrementally.
There is a big difference between someone who can make something neat and someone who can make something great. I can make things neat. I can’t create great.
Maybe someday.
The best designers don’t just make neat things from standardised design systems. They make things feel great. They know when to add tension. When to remove. When to make something quiet. When to make it loud. When to break the grid. When to respect it.
There is a famous design head in India who apparently says during design reviews, “Ismein sex nahi hai. Mazza nahi aa raha.”
Crude, but accurate. He is talking about the missing element. The thing that separates neat work from great.
Most AI-generated design today has no sex. Because today’s models mostly generate the highest-probability output. They give you what the internet has already agreed a thing should look like. That is useful when you want speed. When you want a design system. It is not enough when you want wow.
The wow often comes from breaking away from the obvious output.
And yes, models will get better. Much better. They will generate more options, understand taste better, but everyone will have access to the same models. And everyone will get the same results.
There was a time when every SaaS company had the same friendly vector illustrations. Then everyone used the same pastel blobs. Then everyone discovered the same serif fonts. Then everyone used the same Bento grids. Then everyone started using Instrument Serif. All of these felt fresh initially. When everyone adopted them, it became slop.
AI will accelerate this cycle. A style will become popular. Everyone will prompt it. Then users will stop feeling anything.
That is why taste matters. And not design systems. And why there will still be designers. And they will be paid very well.
2026-04-19 08:00:00
There are 2 types of Twitter famous.
There are 2 types of Twitter famous.
I read Will Manidis’ Against Cynicism. It was directly addressed to another SF Twitter account that dunks on people every day. Let’s call him Milo. If you scroll Milo’s profile, you mostly see him complaining about how the world is unfair, how everyone is a scammer, how everything is broken. It gets tiring after the first 10 tweets.
Now, being Milo is not bad. A lot of people will cheer you on. Any dunk on a person above you in the status hierarchy will get you likes.
But it is soul-crushing in the long term. People may like your salty tweets, but good people will not want to work with you.
A few years back, when I decided to meme more, I posted some absolute bangers. I grew my account from around 3k followers to 30k through a mix of being type 1 and type 2 famous. Type 2 mostly came from Figma and a bit of humour.
Even then, I felt my ratio of sarcastic posts to value was too high. As someone who wanted to work in leadership roles, I was not sure I would even hire myself.
After a while, you get bored too. How many times will you meme on a popular person? How many times will you jump on the hot topic? So I stopped.
I am not a saint. I still dunk occasionally. I still lash out from time to time. But I felt much better when I started indexing again on type 1 fame instead of type 2.
Why am I sharing this?
A lot of people DM me on Twitter. Many of them are type 2 famous. And I almost never want to work with them.
One of my tests for hiring is the same online and offline: if I meet you, do I come away with more energy or less? If I scroll your Twitter, do I feel more optimistic and energized, or do I feel like you will bring that same negative energy into the workplace?
We are being judged constantly, whether we like it or not.
It is the same reason I used to get very upset earlier in my career when HR people questioned why I changed jobs every year. Later I understood it. Hiring is a long-term decision. It costs money and time. You do not want to keep hiring for the same role again and again. So people optimize for the kind of person who sticks through.
Most companies are hard. Early startups especially. You do not want people who get bored fast or bail at the first difficult moment.
Yes, every point has a counterpoint. Some smartass will say there is no loyalty in tech, just do what is best for you at the moment.
But Twitter, like career, is a game theory problem.
In the short term, everyone optimizes for themselves. In the long term, they realize this is not a one-time payoff game. Life is long. Career is long. In iterative games, it makes sense to optimize for the long term. Being against cynicism is part of that.
This is also why managers who join a new company often bring their best people with them. Your favourite people from Twitter will end up collaborating on projects. People will hire type 1 from Twitter much more readily than type 2.
And if you really want to be type 2, it is better to be Roon or TBPN than Milo.