Sign in

Yehuda Katz (he/him)

@wycats.bsky.social
2.2K followers 34 following 402 posts

Open Sourcerer. Co-author of the Extensible Web Manifesto. Creator of Bundler, Cargo and Ember.js. Father of wykittens and wifelette's husband. he/him

PostsRepliesMedia
Reposted by Yehuda Katz (he/him)
Strict Scrutiny Podcast @strictscrutiny.bsky.social · 05/05/2026
GREAT NEWS: to celebrate publication day we’re rerunning a giveaway! Purchase a copy of Melissa’s THE US CONSTITUTION: A comprehensive and annotated guide for the modern reader & enter for a chance to win some merch! forms.gle/xmBRyELJiBK2...
2325
Yehuda Katz (he/him) @wycats.bsky.social · 25/04/2026
Chat GPT 5.5 image generation is _creepily_ good. I'm an early adopter of AI image generation (family photos mostly) and this is such a quantum leap it's hard to explain. And on top of the quantum leap that was Nano Banana Pro ...
120
Yehuda Katz (he/him) @wycats.bsky.social · 21/02/2026
I've said it before, but I really think we're under investing, as a broad AI ecosystem, in tools that help AIs get the right answer by asking a tool the question, and overinvesting in trying to fine tune away "hallucinations" that should never be happening in the first place.
130
Yehuda Katz (he/him) @wycats.bsky.social · 20/01/2026
A lot of what makes AI coding assistance feel like it doesn't scale past a certain point comes from a lack of quality control tooling that fits into the natural core loop of software. And tools like husky/lefthook are really not designed for AI styles of interaction.
130
Yehuda Katz (he/him) @wycats.bsky.social · 16/01/2026
I've been working on a personal AI coding workflow for vscode for a few months and I'm really impressed by how much vscode offers in the LM APIs. I'm trying to get it to a place where I can share it (and it will be usable by people other than me) and am really close!
060
Yehuda Katz (he/him) @wycats.bsky.social · 16/01/2026
I have a couple of announcements to make next week. Stay tuned!
090
Yehuda Katz (he/him) @wycats.bsky.social · 08/10/2025
Fun fact: the internal codename for Heroku Vibes was "Heroku Garden".
040
Yehuda Katz (he/him) @wycats.bsky.social · 08/10/2025
This is what I've been working on! This tweet is of course the marketing way of describing it ("game-changing"!) and this is very much a first release, but I'm so excited about the overall vision for this thing.
162
Yehuda Katz (he/him) @wycats.bsky.social · 27/09/2025
As we get older, there's a lot of stuff we were excited about that go by the wayside because we make choices to invest in "grown up" skills rather than fun skills. We stop playing and start working. The best thing about AI is letting us explore things that are just *fun* and *playful* again.
190
Yehuda Katz (he/him) @wycats.bsky.social · 23/09/2025
I teased it for a second in my EmberFest keynote, but something interesting is coming from Heroku. Watch this space...
060
Yehuda Katz (he/him) @wycats.bsky.social · 14/07/2025
It's truly mind boggling to me how big of an impact Claude's confident wrongness around the current time has on all manner of things. The splash damage is enormous but it's *just* subtle enough to go unnoticed.
030
Yehuda Katz (he/him) @wycats.bsky.social · 05/07/2025
At a basic level, trying to perfectly optimize your prompt so it does exactly what you want the first time is a fool's errand. It assumes you know way more about what you want than you actually do.
150
Yehuda Katz (he/him) @wycats.bsky.social · 05/07/2025
New post on working more effectively with Claude: "Help Me Think This Through". TL;DR Normal conversation works a million times better than the most perfect, hand-crafted "context engineering" open.substack.com/pub/wycats/p...
open.substack.com
"Help Me Think This Through"
Context builds through conversation, not perfect engineering
0111
Yehuda Katz (he/him) @wycats.bsky.social · 05/07/2025
I told Claude I needed to get trash out before kids got home and that my day feels weird without movement breaks. Claude suggested using trash runs AS my movement breaks. I'd never have gotten that from 'help me optimize my schedule.' New post: open.substack.com/pub/wycats/p...
open.substack.com
You're Summoning the Wrong Claude
Why "Can we figure this out together?" Beats "Do exactly this" Every Time
151
Yehuda Katz (he/him) @wycats.bsky.social · 18/06/2025
AI models embody the entire human experience, in all its glory and all its horror. When you interact with Claude or ChatGPT, you're choosing a slice of the human experience. If you treat AI like a servant, you get what you asked for: no questions. Guesses. Anger. A vicious spiral.
130
Yehuda Katz (he/him) @wycats.bsky.social · 18/06/2025
The HHH paradox (Helpful, Honest, Harmless) is not a paradox. Stay tuned...
130
Yehuda Katz (he/him) @wycats.bsky.social · 18/06/2025
I love how everyone treats the Anthropic system prompt as gospel and writes detailed Talmudic analyses about it. Meanwhile: it's so buggy that here I am deprogramming it to make it work halfway plausibly.
160
Yehuda Katz (he/him) @wycats.bsky.social · 31/05/2025
[SPOILER ALERT] The attached image has spoilers for Reality War. I just watched the Doctor Who finale. I loaded up Claude with my observations about the themes (ordinary people, memory, canon) and took notes with my observations as I went.
Looking back at what we just witnessed, this episode completely subverted everything we thought we knew about the season:

The Core Revelation: The entire season appears to have been filtered through the Doctor's unreliable memory/mid-regeneration state. What we thought was a Reality War with cosmic stakes was actually the Doctor's mind trying to process and dramatize much simpler, more painful truths.

Key Discoveries:

- Poppy was never the Doctor's daughter - Her actual father is Ritchie Akingbola. The Doctor inserted themselves into another family's story

- The "impossible child" wasn't impossible - She's 100% human with two human parents

- Belinda always had Poppy - All her "I need to get home" moments were about her actual daughter, hidden from our view

- The Reality War was internal - The Doctor's mind created cosmic drama to avoid accepting they'd forgotten/misremembered

- Ruby's "glitch" might have been the only accurate memory, resisting the Doctor's confused narrative

The Meta Layer: The season played with narrative reliability, showing us that even the Doctor - our hero and guide - can be an unreliable narrator who rewrites reality in their own mind to cope with painful truths.

The Regeneration: Fifteen went out with joy, not sorrow, in the Time Vortex itself - fitting for a season about fractured realities.

The Shock Ending: Rose Tyler as the new Doctor (if that's truly what we saw) would be the biggest twist in the show's history, validating the season's themes about humanity being more important than Time Lord heritage.

Essentially, we watched a season-long meditation on memory, wishes, parenthood, and the stories we tell ourselves - disguised as a cosmic adventure. RTD pulled off an incredible narrative trick.
170
Yehuda Katz (he/him) @wycats.bsky.social · 31/05/2025
[SPOILER ALERT] The attached image has spoilers for Reality War. I just watched the Doctor Who finale. I loaded up Claude with my observations about the themes (ordinary people, memory, canon) and took notes with my observations as I went.
100
Yehuda Katz (he/him) @wycats.bsky.social · 26/05/2025
Maybe we should chill out on calling every big AI jump a "game changer." Feels a bit much for what's often incremental (but still real!) progress. Plus, this stuff is just gonna keep happening, so we need a less dramatic way to talk about the ongoing evolution.
080
Yehuda Katz (he/him) @wycats.bsky.social · 17/05/2025
The audio "podcasts" produced by Notebook LM are nothing short of mind blowing.
120
Yehuda Katz (he/him) @wycats.bsky.social · 17/05/2025
Are the last two seasons of Doctor Who an elaborate way of making Dimensions in Time canon?
010
Yehuda Katz (he/him) @wycats.bsky.social · 15/05/2025
The first round of Heroku AI and MCP stuff is liiiive. heroku.com/blog/buildin... 1. Managed inference is now GA (heroku.com/blog/managed...). This gives you a Heroku-grade experience for provisioning and using an AI model. It's so easy it hurts.
heroku.com
Building Model Context Protocol (MCP) Servers on Heroku
Unlock the potential of AI agents by connecting them to external tools using the Model Context Protocol (MCP). See how Heroku simplifies MCP Server hosting and management.
162
Yehuda Katz (he/him) @wycats.bsky.social · 10/05/2025
Habeus corpus means that they can't keep you in jail forever without charges. "Suspending habeus corpus" means they can arrest you and keep you in jail forever without charging you with a crime.
040
Yehuda Katz (he/him) @wycats.bsky.social · 03/05/2025
Prediction: if A2A isn't gaining real-world traction quickly enough, Google will try to juice it by saying that A2A agents will get preferred treatment in the AI summary of the Google Search results page.
020
Yehuda Katz (he/him) @wycats.bsky.social · 27/04/2025
Empowering technologies arise during a period when a significant number of people are learning to create code for the first time. They succeed when they work just as well for experienced programmers as they do for those creating code for the first time.
1202
Yehuda Katz (he/him) @wycats.bsky.social · 25/04/2025
Judges are allowed to have opinions about the rights of immigrants (whatever their documentation status) that is different from what the DOJ thinks. That's what having a rule of law means, period, full stop.
050
Yehuda Katz (he/him) @wycats.bsky.social · 25/04/2025
"Judge arrested for obstruction of justice by preventing DOJ from arresting immigrant" is not how our system works.
150
Yehuda Katz (he/him) @wycats.bsky.social · 19/04/2025
We've reached the final phase of "waving around your gun is awesome unless you're brown" www.nytimes.com/live/2025/04...
Among those at the Bluebonnet detention center that the A.C.L.U. is seeking to protect from deportation is a 19-year-old known as Y.S.M.

Y.S.M., court papers say, was arrested by immigration agents on March 14 and was sent to the Bluebonnet facility this week. When the agents initially questioned him, court papers say, they told him that a photograph on Facebook showing him in the presence of another person holding a gun proved he was a member of Tren de Aragua.

But according to his lawyer, Y.S.M. informed the agents that what they believed to be a gun was actually a water pistol.
070
Yehuda Katz (he/him) @wycats.bsky.social · 05/04/2025
Claude 3.7 thinking mode is my new favorite thing.
020
Yehuda Katz (he/him) @wycats.bsky.social · 05/04/2025
Hot take: the definition of a "good framework API" is going to adjust over time. APIs that tend to produce better median quality results are going to work better when you use an AI to generate them.
040
Yehuda Katz (he/him) @wycats.bsky.social · 05/04/2025
Hosted MCPs are the future, but the conversation is a little too stuck in the details of what got MCPs off the ground.
131
Yehuda Katz (he/him) @wycats.bsky.social · 01/04/2025
I published a new post about my personal coding workflow with AI coding assistants and an approach to making it sustainable. Yeah, I used the phrase "vibe coding." It's a little cringe, but it's the phrase people are using, in my experience. 🤷
wycats.substack.com
Vibe Coding the Right Way
How I made vibe coding sustainable (for me) with a consolidation phase
182
Yehuda Katz (he/him) @wycats.bsky.social · 27/03/2025
Me: "Can you turn the group chat in this article into a series of images in the style of the Disney "As Told By Emoji" series?"
120
Yehuda Katz (he/him) @wycats.bsky.social · 27/03/2025
@strictscrutiny.bsky.social it's really not that complicated bsky.app/profile/wyca...
130
Yehuda Katz (he/him) @wycats.bsky.social · 27/03/2025
Convo with my 8yo. Me: "Trump can't be arrested. The supreme Court said he's immune" Jonas: "He can be arrested if he's killing people" Me: "The Supreme Court said that as long as it's his core presidential duties, he can't be arrested" Jonas: "The Supreme Court has gone mad"
042
Yehuda Katz (he/him) @wycats.bsky.social · 25/03/2025
Doing a ton of fun work with MCPs over the past few weeks. If you're tempted to think that it's all big hype bubble, I'd resist the urge. There's a lot of details in what's happening _right this second_ that I suspect won't survive long-term. But the basic premise is sound af
1111
Reposted by Yehuda Katz (he/him)
Chris Manson @chris.manson.ie · 20/03/2025
It's kind of hard to communicate the magnitude of what we've been able to achieve here. Everyone in the Ember community now has a clear path to start running your apps in Vite: Update your app to at least 3.28 and then run the ember-vite-codemod mainmatter.com/blog/2025/03...
mainmatter.com
Ember Vite Codemod - Mainmatter
Announcing the first release of ember-vite-codemod
1103
Reposted by Yehuda Katz (he/him)
Mainmatter @mainmatter.com · 24/03/2025
Ember + Vite, now for apps going back to 3.28 🎉 Thanks to the work from @chris.manson.ie and the Ember & Embroider Initiatives, even apps built in 2018 can now run on @vite.dev There’s now a clear upgrade path—backed by codemods and real support. ➡️ mainmatter.com/blog/2025/03...
mainmatter.com
0122
Reposted by Yehuda Katz (he/him)
Alex Matchneer @amatchneer.com · 23/03/2025
Hello Ember.js! I've just pushed pre-release version 1.4.3 of the Glint VSCode extension which runs in the new modern TS Plugin mode. It supports both modern .gts components as well as most cases of classic co-located ts+hbs components. marketplace.visualstudio.com/items?itemNa...
marketplace.visualstudio.com
Glint - Visual Studio Marketplace
Extension for Visual Studio Code - Glint language server integration for VS Code
32510
Yehuda Katz (he/him) @wycats.bsky.social · 15/03/2025
Trump already shut down the government. If you want it reopened you need to fight.
090
Yehuda Katz (he/him) @wycats.bsky.social · 18/02/2025
I've built a few apps at Heroku using bleeding edge Polaris stuff and it's such a pleasure. Thanks to incredible work by the Heroku web team, we've also made big strides in updating the Heroku Dashboard, our flagship app.
1122
Yehuda Katz (he/him) @wycats.bsky.social · 12/02/2025
People underestimate how much scope Ember.js has been able to cut over the past few years by adopting standard JS solutions that didn't exist until fairly recently. There's a lot to love about Ember's approach, but it's too often obscured by aspects of Ember that reflected an earlier time.
2324
Yehuda Katz (he/him) @wycats.bsky.social · 12/02/2025
This is a bit in the weeds, but I've been doing some work in Glimmer VM to replace the wire format with direct JS calls. This probably will have performance implications, but more importantly, it will make it much easier to embed arbitrary JS directly into compiled templates.
251
Yehuda Katz (he/him) @wycats.bsky.social · 10/02/2025
Ember.js has been flying under the radar for so long that I think people are going to be really surprised at 2025.
0240
Reposted by Yehuda Katz (he/him)
NullVoxPopuli @nullvoxpopuli.com · 02/02/2025
Been exploring other framework ecosytems, and I must say -- EmberJS has the best way to upgrade a whole project boilerplate. There are a lot of little details in how everything is wired together, and ember just nails it, *and* provides you the reference for when you need to debug.
2176
Yehuda Katz (he/him) @wycats.bsky.social · 20/01/2025
The next couple of years are going to transition us into a new era of web application development, web frameworks and application deployment.
1225
Yehuda Katz (he/him) @wycats.bsky.social · 19/01/2025
I only had a short flirtation with libertarianism in my college years, but the TikTok ban reminds me of how I felt at the time (my college years overlapped quite a bit with 9/11 and the Iraq War).
100
Yehuda Katz (he/him) @wycats.bsky.social · 19/01/2025
For the record, this thread is very focused on the way we evolve the framework, and why I think our emphasis on incremental evolution can distort impressions of our velocity, even inside of our own community.
121
Yehuda Katz (he/him) @wycats.bsky.social · 19/01/2025
Ember's major version release strategy is super-simple: 1. Before removing a feature in a major version, it lands as a deprecation in the *previous* major. A deprecation is only enabled by default once we have a clearly documented migration strategy that covers the use-cases of the old feature.
2234