Today on the pod, @joshuakgoldberg.com shares how Flint reimagines linting with type-aware rules, improved error messages, and better DX for TypeScript developers. share.transistor.fm/s/529ec1ef #typescript
Posts by Kamran Ayub
Storybook 10.3 is out!
β¨Β Storybook MCP for React
βΏ A11y overhaul fixes 100s of issues
π§βπ» CLI overhaul for faster, more reliable install
π
Β New Viewports and Zoom UI
β
New onboarding guide
π Type-safe CSF factories for Vue, Angular, and Web Components
Take a look ‡οΈ
Today on the pod: UUID fun, Cloudflare's EmDash WordPress replacement, OSS maintainer security, PerryTS native UI compilation, and Solid 2.0 deep dive. Plus Turborepo speedups & more! share.transistor.fm/s/026d8f55 #typescript
Code snippet: interface User { name: string; } function assertIsUser(value: unknown): asserts value is User { if (typeof value !== "object" || value === null || !("name" in value)) { throw new Error("Expected a User"); } } const data = JSON.parse('{"name": "Stefan"}'); assertIsUser(data); // throws if not a User data.name.toUpperCase(); // narrowed to User after assertion
New on the blog: TIL about TypeScript assertion functions (`asserts data is Something`). Usually I use type guards but with assertion functions you can apply a type to the current scope. Good stuff!
https://www.stefanjudis
Yeah it's already on the list π recording tonight! π€
Other learnings:
- Don't join random Slack workspaces
- Don't download software for web-based meetings
- Own your own meeting scheduling
- It's not your fault, these campaigns are engineered to take advantage of weak points in the system
Unreal. Tip for maintainers: use cal.com (free/oss) and make yourself a booking link. If people want to "have a chat" with me, they go through my booking link, not theirs.
socket.dev/blog/attacke...
Pretext
Pure JavaScript/TypeScript library for multiline text measurement & layout. Fast, accurate & supports all the languages you didn't even know about. Allows rendering to DOM, Canvas, SVG and soon, server-side.
github.com/chenglou/pre...
I'll be doing a podcast with Anders Hejlsberg, the creator of Turbo Pascal, C#, and TypeScript.
What would you like to know?
Are these the numbers they are using to measure growth internally, though? I feel like there's only so much you can draw on public numbers without knowing the full picture. We are not even sure how much it costs to run, as that's not included here either. It's still a good question though.
π This article by @sarahgooding.bsky.social at @socket.dev highlights a concerning trend (ref. socket.dev/blog/attacke...)
π Story time: this kind of supply chain targeting isn't unique. I myself & everyone on our team @vlt.sh have been the targets of consistent, concerted efforts.
great stream to learn about how vite environment api come to be (among other frontend framework stories. it is a six hours @ryansolid.bsky.social stream, so start a fire, prepare some tea, and make yourself comfortable)
Warning to open source maintainers: the Axios supply chain attack started with some
very sophisticated social engineering targeted at one of their developers simonwillison.net/2026/Apr/3/s...
I've been playing around with Chrome's experimental HTML-in-Canvas API (I use it to create my videos), and I wanted to see if I could make text-selection work on a curved surface by moving the underlying element around on pointermove. It works pretty well!
Today on the pod: Aspire 13.2 TypeScript support, Node.js security fixes, hybrid type-aware linting, and Claude building a JS engine from scratch! share.transistor.fm/s/ed97218f #typescript
Claude Code source was just leaked π«’
This will speed up reporting on TC39 news by at least 3.4% according to my calculations.
Anyway: the point is that maybe a Rust port of the React Compiler was a Maybe Someday task and now agents enable you to take those Maybe Somedays and get them done today to see if they're viable or not. In a week a Rust port could be proved out and spec'd against the original bit for bit.
This refactor is now enabling me in the future to support a new feature (persisted, filtered views) once I get to it. But it immediately adds support for several filters I couldn't do before (date range filters) and cleans up the UX.
At this point, 3 days later I have a brand new flexible facet/filtering system that replaced my old one and it has more test coverage than I originally had. The UX is almost the same but better in specific ways that I wanted that were unsupported before. And now it's extensible.
The cost of rework is less too with phases. For example, I caught it over engineering for a case I didn't have. Told it to undo that and keep it simple. Now I'm at the end and doing manual spot testing. Here's an issue, there's an issue. Okay, now address those and update tests.
Inevitably what happens is that I thought it would be decently straightforward but reality is messier and more design considerations pop up. By phasing the work, it allows me to stop, think, and do design just in time, before moving on. One-shotting is not the goal, iteration is.
By creating phases up front, each phase can be expanded and spec'd out after each one. Asking it to maintain the tests after each phase is also key. I check it's work briefly, make sure it's directionally accurate, give it some design guidance. Then proceed to the next phase. I use git to checkpoint
Where before, I might have thought well, that refactoring would be good to do but I'd rather build a new feature and tackle it later. I can, over the course of a weekend, popping in here and there, have the agent do the refactor for me and get me 90% there so I can take it the last mile.
Couple observations here, one that is reflected in my experience is that agents lower the cost of ports and refactoring, given a robust acceptance criteria (usually tests). Second is that having a plan (and iterating on it) is a key ingredient in getting them to stay on track.
Weβre pretty close to having an initial Rust port of React Compiler. My approach was to iterate on the plan document (write it manually, have the agent expand, edit, repeat). Then try to run it, see what goes wrong, revert back to the plan, tweak the plan, repeat.
69 β on OxMgr.
One star away from 70.
A Rust-based PM2 alternative. No Node.js overhead. No bloat.
If managing processes shouldn't require a JavaScript runtime β OxMgr is for you.
β github.com/Vladimir-Urik/OxMgr
#rust #opensource #devtools
Props to @t3.gg for contributing $5K to @e18e.dev!
Looking forward to seeing all the creative ways @npmx.dev can collaborate with @e18e.dev to make the web faster, leaner, and simpler.
We already have a bunch of things in the works π.