Today’s issue: The Pierre boys get Steve Balmer’s attention, the correct pronunciation of “Pracht”, and Daniel Day Lewis learns product engineering.
Welcome to #482.

The Main Thing

The TypeScript Conclave has convened
The spiritual successor to JSX
It has been a big year for religion. We have an American Pope, Russell Brand became a biblical scholar, and Dominic Gannaway just announced the spiritual successor to JSX, TSRX.
You might be tempted to question the legitimacy of the TypeScript conclave, but Dominic has worked on both the React and Svelte core teams, and also created projects like Inferno and Ripple. And now, the Holy See of UI frameworks has decided that it’s time for an upgrade to JSX.
TypeScript Render Expressions (TSRX) is a compiler exposed as a Vite plugin that transforms this new language into idiomatic React, Solid, or Ripple. But why do we need this at all?
According to the docs, it’s mostly because AI likes it better. But it also fixes a handful of JSX quirks that have been annoying human programmers for years.
Let’s take a closer look at some of the TSRX reforms.
Conditional Rendering for Hooks:
export component Profile({ userId }: { userId: string | null }) {
if (userId) {
const user = useUser(userId);
<h1>{user.name}</h1>
} else {
<a href="/login">{'Sign in'}</a>
}
}
TSRX lets you your agent write code like this. Under the hood, it transforms these calls into wrapper components producing valid React code.
Single File Components:
export component Button({ label, onClick }: {
label: string;
onClick: () => void;
}) {
<button class="btn" {onClick}>
{label}
</button>
<style>
.btn {
padding: 0.5rem 1rem;
border-radius: 4px;
}
</style>
}
In JSX, you can only return React elements, but in this brave new world there are no returns, only statements. In practice, this allows you to encapsulate everything your UI needs to render.
Syntax Sugar:
const UserProfile = lazy(() => import('./UserProfile.tsrx'));
export component App() {
try {
<UserProfile id={1} />
} pending {
<p>"Loading..."</p>
} catch (e) {
<p>"Something went wrong."</p>
}
}
TSRX supports if/else, lexical scoping of variables, and even has support for async boundaries that makes writing code like this possible.
Bottom Line: TSRX fixes most of the annoying issues we’ve had with JSX for the last decade. But its reign might be short lived since it’s only a matter of time before we’re streaming pixels straight from the LLM.

Our Friends
(With Benefits)

Your coding agent when you let it write Convex
They’re supposed to be good at writing everything, but we all know that’s not true.
But with Convex everything usually just works. And Jamie Turner (Convex CEO/co-founder) made this video explaining the 3 big reasons why:
- Convex provides feedback
- It enables “local reasoning”
- It minimizes the meta layer
I’d add a bonus 4th reason: it can scale super fast without breaking or charging you a bajillion dollars.
Seth Raphael wrote about how it helped ClawHub scale from zero to 1 million weekly active users in a week without crashing or running up a huge bill.
Watch Jamie’s full video for more. It’s great.

Cool Bits
-
Fat, MDO, and the Pierre boys just released Trees a file tree rendering library. We heard Steve Ballmer has a thing for figurative trees and might be interested in investing.
-
Sentry is hosting a free workshop on Agent Monitoring to help you monitor cost, token usage, and model performance. [sponsored]
-
Chris Pojer wrote about tech lead management a few years ago, not knowing that he was basically describing software engineering in 2026.
-
Warp terminal just got open sourced.
-
Former Github CTO, Jason Warner’s startup just released some fresh, artisanal, made in America™️ agentic coding models. Ballerina Farm approves.
-
Matt Pockock created some agent skills for your slop cannon.
-
Clerk created a CLI to make it easy for your agent to spin up auth on your next project without leaving your terminal. [sponsored]
-
Jovi built a full stack Preact framework called Pracht (pronounced “pracht”).
-
Daishi Kato wrote some thoughts about RSC, and whether or not it’s “just serialization”.
-
Mark Rober will join Twilio SIGNAL on May 6–7 in San Francisco. A former NASA engineer and one of the most recognizable creators in science, Mark will be sharing his perspective on curiosity, creativity, and building things that truly resonate. Grab your discounted developer ticket here. [sponsored]
-
Brandon Roberts just released version 2.5 of Analog.js.
-
Kent wrote an article called The Last Software Engineer. It’s like The Last of the Mohicans, just a lot bloodier.

Want us to say nice things
about your company?
Built with ❤️ by Fireship
50 W Broadway Ste 333 PMB 51647 Salt Lake City, Utah 84101