Ihab Khattab (@HO_BA) header
Ihab Khattab (@HO_BA) profile picture

Frontend Engineer

~
Joined August 2007
Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)Photo by Ihab Khattab (@HO_BA)
Ihab Khattab retweeted
Listen to this guy. Try this prompt I slightly adjusted from some who I think got it from @steveruizok: Find all of the implicit state machines in my app (there are probably a ton). Make the best decision that will elevate all three: the user experience (UX), developer experience (DX), and agent experience (AX) always, without breaking anything. Also, make state machines explicit.
What is an implicit state machine? Your apps are full of state machines, which is the logic that says "when we're in this state, and this event happens, now we're in this state" (given, when, then). Sometimes those state machines are clearly mapped out (switch statements, reducers, tables/maps, libraries like XState for the more complex ones, etc.) and the logic is explicitly enumerable. And sometimes it's not. The ad-hoc logic is spread all over the place. That's how developers typically code, and that's how agents typically vibe-code (they learned from you). Those are implicit state machines. What's wrong with implicit state machines? It's not clear what state transitions are possible, so you might have "allowed" states that should have been impossible without knowing it. Agents make the same mistakes. You can get all tests passing and your code review agents (even the well-funded ones) can say "LGTM" and you can *still* have very bad bugs because an implicit state machine allowed unexpected or illegal behavior. (Remember the Apple FaceTime bug?) So yeah, making your app logic explicit is important.
38
36
4
819
47,288
Ihab Khattab retweeted
Need to record video of a Chrome tab, for a demo or tests? There's a new API allowing flawless no-dropped-frames AV1 capture. 60fps easy. But can also do 120fps @2160p. (Yes, for real). It's easy to use within pptr or playwright.. here's a mini npm package: github.com/paulirish/chrome-… (bonus 120fps video within :)
26
54
3
488
25,355
Ihab Khattab retweeted
WebMCP gives your agents the manual to use your website. Without it, your agent spend more tokens on reading your accessibility tree, taking screenshots and trials and errors. I wrote this article about WebMCP where I do a walkthrough of WebMCP built on TodoMVC, with a live demo. alfy.blog/2026/11/08/webmcp-… @ChromiumDev
8
9
78
2,478
Ihab Khattab retweeted
Replying to @AhmedSoliman
قالها و رحل
1
3
23
2,361
I’m building an accessible app using the #Claude Agent SDK to help people who are blind manage multiple coding sessions at once, without the complexity of terminals or IDEs. It uses their own Claude Code installation and authentication. My dream is to open-source this and help more blind people take their first steps into programming and computer science. @AnthropicAI @ClaudeDevs, could someone help me understand how to make sure this complies with your policies? I’d love to bring this to the community. ❤️ #a11y
5
35
2
64
5,268
Ihab Khattab retweeted
Please retweet
I’m building an accessible app using the #Claude Agent SDK to help people who are blind manage multiple coding sessions at once, without the complexity of terminals or IDEs. It uses their own Claude Code installation and authentication. My dream is to open-source this and help more blind people take their first steps into programming and computer science. @AnthropicAI @ClaudeDevs, could someone help me understand how to make sure this complies with your policies? I’d love to bring this to the community. ❤️ #a11y
1
7
25
3,660
«ممكن تضيف Chapters؟» طلب من جمهور AskDeveloper اتأجل سنين. أخيرًا بنيت بالـAI workflow لإنتاج descriptions وchapters للحلقات الطويلة، مع المراجعة قبل النشر. كتبت التجربة والـarchitecture هنا 👇
3
5
2
93
9,720
Ihab Khattab retweeted
I never imagined I'd see an article from my blog cited in an academic paper. And not just any article. This is the one that sparked a war on Reddit and HN. ijsrm.net/index.php/ijsrm/ar…
14
13
2
231
11,668
Ihab Khattab retweeted
Customizable <select> isn’t about prettier dropdowns. It’s about what an option can say. Quick demo for what we can achieve today and what it means for our users. alfy.blog/2026/10/27/a-selec…
1
6
2
83
6,594
Ihab Khattab retweeted
If no one wants to hire juniors or mid-level anymore, how are we doing to have senior engineers in the future? Or, is this an implied admission that we will not need seniors in the future?
52
40
29
704
54,498
Security called me at 6:12 AM today. "Patch every PHP server immediately." I asked what happened. "Two critical vulnerabilities. Remote code execution. No authentication required." Cool. How many PHP servers do we have? According to inventory: 12 According to reality: Nobody knows. We found one running WordPress. Three running old internal tools. One under someone's desk. Two inside vendor appliances. A forgotten employee directory from 2016. And a server named: PHP-OLD-DO-NOT-TOUCH Naturally, that one runs payroll exports. Then we found a PHP 5.6 box. I asked who owned it. The documentation said: BRIAN. Brian left in 2019. We called Brian. He said: "Oh wow, that's still running?" Excellent. By 8 AM, leadership joined the incident call. CEO: "Can hackers actually get in?" Security: "Potentially yes." CEO: "Without a password?" Security: "Yes." CEO: "Then why do WE need passwords?" Not the lesson. Finance asked if we could wait until the weekend to patch because downtime affects revenue. Security explained that the alternative was letting strangers execute code on our servers. Finance asked for a cost comparison. At 9:17, someone suggested temporarily taking the vulnerable websites offline. Marketing refused. "Our campaign is live." So for the next hour, the company officially decided maintaining a landing page for 20% off webinar registration was more important than preventing remote server takeover. We finally patched everything we could find. Then our scanner discovered another PHP server. Hostname: TEMP-PHP-2014 Uptime: 4,512 days. Nobody knows what it does. Nobody owns it. Nobody can shut it down. But every time we block network access, the warehouse stops printing shipping labels. Security has classified it as critical infrastructure. It is running PHP 5.4. The vulnerability has existed longer than half our employees. The emergency patch took four hours. Finding out what PHP actually runs took eleven. The internet isn't held together with code. It's held together with servers everyone is afraid to turn off.
916
7,060
1,159
57,874
3,856,949
👀 Have you heard of this new experimental React MCP? Now officially documented here: react.dev/reference/dev-tool… Technically, it's not really an MCP ➡️ registers a group of tools to Chrome DevTools MCP
6
28
2
211
12,755
Ihab Khattab retweeted
Here's a full breakdown of how I turned my website's text into a detailed portrait It includes the prompt, the reference, steps, the model, and how long it took, etc.
1
1
12
548
TanStack Start 1.0 is stable! Deploy it to Cloudflare: developers.cloudflare.com/wo… Read about TanStack in the learning center: cloudflare.com/learning/serv…
TanStack Start 1.0 is officially stable! 🎉 A full-stack web framework for React and Solid, already used to build millions of apps, from Fortune 500 companies to your favorite tools and weekend projects. tanstack.com/start
13
60
5
859
30,904
Ihab Khattab retweeted
reminder: you can use css mix-blend-mode to create knockout text ↓ 🧑‍🍳 .sticker { background: #000; color: #​fff; mix-blend-mode: multiply; }
50
136
7
2,173
56,186
Ihab Khattab retweeted
نيجي بقى للإفيه الأسطوري ل @Bashmohandes بصي على الجمال > شوف كمية المية اللي راحت في التراب دي، يا ساتر. ١- كمية المية دي تمشي مع تويتة @me2resh في context ال data centers وفي نفس الوقت تمشي مع هدم خط بارليف ٢- التراب تمشي مع الفيديوهات ال slop اللي ال AI بيعملها. وفي نفس الوقت خط بارليف ٣- يا ساتر: اسلوب تعجب. احنا بنحرق tokens عشان نعمل AI slop وفي نفس الوقت يا ساتر مقصود بها الساتر الترابي خط بارليف
14
16
14
310
30,914