Adam Wathan (@adamwathan) header
Adam Wathan (@adamwathan) profile picture

Building at @shopify. Creator of @tailwindcss. Listener of Slayer. Austin 3:16.

Joined July 2012
Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)Photo by Adam Wathan (@adamwathan)
So const or let?
243
17
22
667
86,169
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.
189
59
49
1,173
251,995
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.
93
17
4
958
37,910
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.
31
17
4
775
78,203
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.
148
22
22
885
130,353
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:
11
3
165
27,248
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?
205
14
14
786
71,032
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…
40
4
5
343
29,705
In seriousness I think this comes more from "I have an idea but I'm not sure it's the best idea, and if I tell you I know you are just going to do this instead of maybe something better." Like a fear of context pollution.
9
1
1
88
5,119
If you want to play with features like this sooner, use @paper.
Wake up babe the Figma Chrome extension can now capture your website code and bring into Figma as a code layer Live from Config India
29
9
1
322
29,219
Had @r00k check how much I've used @tuple since it was first released in 2019 (I believe I was the very first customer)… 187,260 minutes. I have spent 130 complete 24 hour days of my life pairing with people on my team 😄 Wild stat, amazing tool.
10
2
87
14,038
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:
96
75
57
1,422
542,795
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 🥵
27
1
164
28,509
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 👌🏻
44
276
38,318
Samples I’ve collected so far, from three different companies, some of which I would have to drive to the US to pick up because I can’t even buy their stuff in Canada.
4
5
4,886
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.
72
27
12
458
390,180
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.
64
23
15
589
215,820
Mount Crushmore
31
1
138
14,940
Adam Wathan retweeted
Paper Mono! sooo excited to finally release our free and beautiful mono font it works incredibly well for design, coding, and even prose, and it’s packed with features: variable font weight, coding ligatures, duospacing (!) for long-form text, and more. sound on:
155
195
94
2,847
306,812