mdfor.dev's Mermaid diagrams are now ~12x faster to redraw and ship 79% less JS.
I swapped Mermaid.js for Pele (pele.run) from @kepano.
• JS for one flowchart: 732 kB → 151 kB gz
• Redraw 22 diagrams after an edit: 302 ms → 25 ms
• Light/dark is pure CSS, no redraw
22/22 diagram types still render (a few look different). PR lists everything: github.com/ikhattab/md-previ…
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…
karakeep is sitting at 29,999 GitHub stars. One more gets it to 30k 🎉
It's a self-hostable bookmark-everything app: links, notes, images, with AI auto-tagging and full-text search.
Be the star that tips it ⭐
github.com/karakeep-app/kara…
We've decided to sunset Arc on December 22, 2026.
That's not an easy sentence to write. We spent years building Arc and celebrating each and every release along the way: we have so much pride and love for what we made alongside the Arc community.
Our priority is to deliver best-in-class security for our members. Keeping a browser secure takes constant, dedicated work that is only increasing in the age of AI. Dia was built from the ground up to meet today’s security standards, so that's where our engineering and security teams will focus moving forward.
We've worked to make switching to @diabrowser as easy as possible for Arc members. Here's how:
· Your passwords, bookmarks, extensions and history come over to Dia seamlessly.
· Spaces, Folders, and Tab Groups are in Dia and import over with your data intact.
· Dia now surpasses Arc benchmarks in stability, speed, and security.
· The browser features you use in Arc are free in Dia, and the AI is optional.
Thank you for using Arc, for pushing us to make it better, and for building alongside us. The team that made Arc is the same team behind Dia, and some of our most ambitious work is just ahead. We'd love for you to be there with us when it lands.
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?
wrote about this here: ihabkhattab.com/blog/debounc…
Ihab Khattab retweeted
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.
phew, this was close. mdfor.dev was the one place PHP was perfectly safe today. now it has syntax highlighting. security through plain text was a good run
github.com/ikhattab/md-previ…
Ihab Khattab retweeted
👀 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
هو في ايه بجد
private keys from 8 intermediate CA certs have been compromised (eMudhra)
Happy "Update everything" day to all my pager-carrying friends
emudhra.we-have-a-problem.co…
Ihab Khattab retweeted
يا نهار اسود. يا جدعان حد ينده حد. ده يوم اسود على الانترنت
cyberkendra.com/2026/10/php-…
We deployed an hour ago. Why do users still see the old version?
"The browser cached it" is the first answer. AI says it too. The follow-ups find four places an old copy can live: HTTP cache, CDN, the open tab, service worker.
Part 1 of The Follow-Up:
ihabkhattab.com/blog/deploye…
Q7 in my AbortController post just got better thanks to @thewidechaos: checking the signal isn't enough if your loop never yields. Updated with the fix:
ihabkhattab.com/blog/abortco…
Replying to @thewidechaos
Good catch, and you're right. I tested it in Chromium and WebKit: without a yield, the click only runs after the loop ends. Q7 now yields between chunks (scheduler.yield() with a setTimeout fallback) and then checks the signal. Credited you in the post. Thanks!
Where's the bug?
Type "berlin" fast and sometimes you see results for "b".
Answer + 7 follow-ups:
ihabkhattab.com/blog/abortco…





















