Curated tech posts from X on AI, startups, and product development—signal without the doomscroll, updated on weekdays.
Seems like it's working 👀 A few weeks ago I added a Markdown version of every post for AI agents. ChatGPT went from 0 to 39 responses cit...
Stop wrapping search matches in <mark>. The CSS Custom Highlight API paints them instead: 1. Find the matches with a TreeWalker 2. Turn ea...
Cloudflare's vuln hunter started as this one skill. https://github.com/cloudflare/security-audit-skill Point your coding agent at any repo:...
Anyone making a game right now? What do we use?
Auto-growing textareas used to need JS that checks scrollHeight on every keystroke. Now it's 3 lines of CSS: textarea { field-sizing: co...
https://typeui.sh is an amazing design layer for AI coding agents! 1. Design skills 2. UI prompts 3. Works with Claude, Codex & Cursor Che...
When was the last time you used `console.log()`?
Will AI replace programmers? No, not the job. But it is replacing a growing share of the work. What the data actually shows:
Unpopular opinion: SaaS was never so alive.
Anthony made a social network for developers. Check it out. https://twitter.com/aanthonymax/status/2111806952439443772
Debugging AI is the new moat.
Built a little script that sends my Search Console numbers to Telegram every morning.
There has never been a better time to be a Software Engineer.
Do you work less or more than before AI?
Co-organizing a builder challenge with @joncphillips: Active Builders x Gradium AI. Free, open to everyone, teams welcome. 1st place wins ...
Every post on my blog now has a Markdown version for AI agents. Add .md to any post URL and you get clean Markdown. No nav, no scripts, jus...
We teamed up with @GradiumAI to bring this Hackathon to you. Details below! https://twitter.com/joncphillips/status/2110064682551943671
Just migrated https://freecodetools.org from Nuxt to Astro. Have to admit, Astro is amazing!
There has never been a better time to learn fundamentals!
Your AI feature isn't slow. It just waits for the last word before showing the first. Stream it instead: 1. Read response.body 2. Pipe it ...