
Building at @shopify. Creator of @tailwindcss. Listener of Slayer. Austin 3:16.
Joined July 2012
- Tweets42.8K
- Following834
- Followers304K
- Likes14.4K
Bearish on the web.
The debate is over, and evil has won.
`cursor: pointer` now means clickable.
RIP my ability to tell whether ⌘-clicking something will open it in a new window.
github.com/w3c/csswg-drafts/…
Adam Wathan retweeted
Next question: why are you still using branches?
We talked about PRs. I don't think they make sense anymore, if you rethink them from first principles.
Yes, if you only use them to trigger CI, then sure, go ahead. That's a fat commit, not a PR. But for mandatory code review? Knowledge sharing? C'mon.
But some of you said: "we use PRs because we use branches! I love to keep my stuff on branches."
And I'm here to tell you: you don't need branches! You can just push to main.
It's called trunk-based development and the idea behind it is true continuous integration: you continuously integrate your changes with the trunk, the main branch.
It's been around for a while, it works. Just yesterday I talked with someone who said they've used it in an org with 400 engineers, without any issues. Ruby, the project, uses trunk-based development.
The main idea is that you want to avoid long-lived branches. They're bad, because branches can diverge and merging can turn into a thing. And you don't want routine operations to become a thing.
Even when I worked in teams that used PRs and branches, I considered it a smell when a branch lived for longer than a day or two.
But when I shared this with others, I'd often get something back like this:
"Well, good for you, but no. MY thing, what I'm working on, that can't be done on main. It needs to be on a branch! It has a database migration, it changes the underlying shape, the architecture, it refactors this and changes that. It can't go on main yet! I need to merge it all at the end."
And then I'd say:
"Nah, I can merge nearly anything continuously in small commits to main. You split things up. Add the column first, merge that, deploy it, now it's out, works, safe.
Add the helpers first, merge them, get them out.
Want to migrate from legacy pattern A to new pattern B? Don't do it all at once. Add the dependency, then migrate A to B, one by one, safe."
If it can be merged in a large change, I bet it can be done in small increments that you merge to main.
Yes, there are exceptions, but it's 0.5% of cases, not 50%.
But there was a real problem with this approach: it was hard!
There's a lot of "meta programming" you have to do: make sure this small first change compiles and runs and the tests work, merge it, get it out, monitor it; then do the next small piece, make sure that works and get it out; then maybe push some still-unused dead code, add a feature flag, add a config variable; or keep both configurations working at the same time, etc.
That meant sometimes it was just easier to do it in a big fat branch. But big fat branches are risky!
A system that continuously flows is safer than a system that starts and stops in spurts.
But -- you guessed it -- here's the good news:
Now, with agents, all of these chores are no chores at all!
Agents are great at adding feature flags, they're great at splitting up code, they're great at keeping track of three changes and merging them one by one and watching them roll out. They're great at keeping two configurations working for a day. They're great at migrating one by one.
In other words: it's now 10x easier to just work on main and make sure everything is continuously integrated and working.
It's now easy to make sure the system constantly flows.
And look, ...
I'm not here to convince you to switch to trunk-based development. Just a ruse to get you to read this. (But also, hey: try it! Pushing to main is amazing.)
I'm here to make you RETHINK how you develop software.
Don't just use agents to replace your typing.
Use agents as the magic code-writing machines they are. Everything that was hard about software development because it involved writing code -- even the meta programming -- has become easier.
You can now reach for the stars! But you need to look up.
Starting a new model lab, we're focused on training models that put the arrow in the right place in select menus.
So far no other lab has been able to do it, but I think we can with enough funding.
People say educational content is dead but I bought this immediately.
You just have to teach the things people are craving to learn, and that’s changed.
I’ve been working on something new: aiforui.dev/
AI for UI has 28 skills and 20 lessons on building great interfaces with AI.
More than 3,000 people have enrolled so far. It’s $299 instead of $399 until early access closes on Friday.
The full course opens in 2027.
Adam Wathan retweeted
For the work I do, I can’t see why I’d develop locally anymore.
Why mess with worktrees when every thread can get its own computer?
The agent installs whatever it needs. Need ClickHouse or Kafka or Elasticsearch or Go or Rust or Python? Install it. Who cares? Zero cruft on my machine.
This is such a great listen.
21 people, a single meeting a week, no quarterly goals, no pull requests, no mandatory code review, no titles (except one dictator), a hundred releases a day, bugs fixed in minutes, famous for killing features.
@sqs and @thorstenball on how the Amp team works:
Still find prompting UI tweaks to be way too slow compared to direct manipulation like in a design tool.
What's your work flow for fine-tuning UI details in code without being the victim of the brutal agent feedback loop?
The urge to withhold information from the AI to try and get it to prove to you that it's not stupid instead of just telling it what you think it should do…
If you want to play with features like this sooner, use @paper.
Adam Wathan retweeted
No pull requests, no code review. We push to main.
Our agents read production logs, watch deploys, grant feature flags, and check their own work end to end.
Here's how we do that:
Spend more time shopping for the gym than training in the gym but do still train 😄
Easy 320 x 10 squat today, hard 195 x 5 overhead press 🥵
Relocating my gym to a different space in the house and have spent way too much time researching rolled flooring options.
Everyone does the black with white speckle thing but doing some crude mockups today and I think I’m going light greige 👌🏻
Adam Wathan retweeted
If I bought a new laptop today, I don't think I would install any local dev tools / languages at all. I’d push all my dev work, open source included, to cloud agents.
I think I could do everything I currently do with nothing but Laravel Cloud and @AmpCode Orbs.
Going to try to go cloud-only this week.
Building software in anything other than @AmpCode orbs feels like eating broken glass in comparison.
But it’s frustratingly one of those “you can’t understand why it’s better until you just use it” tools, a lot like Tailwind was.
Use it, and be ruined.










