Dominic Gannaway

Dominic Gannaway

@trueadm.dev

I'm a software engineer at OpenAI. Author of Inferno, Lexical, Ripple and Octane. Former React core team engineer, and core maintainer of Svelte.

2.4K followers130 following267 posts

As we prepare TSRX for 1.0, we’ve decided to remove “lazy destructuring”. This reflects the direction we want to take TSRX: an extension of JSX, rather than an entirely new language. We’ve written more about the reasoning behind the change here: tsrx.dev/blog/removin...

Happy to announce Octane – the successor to Inferno. React’s programming model, compiled. Hooks, Suspense and Actions, compiled ahead of time. No virtual DOM. No Rules of Hooks. No manually maintained dependency arrays. The compiler understands what your code. octanejs.dev

Octane supports TSX and JSX, along with TSRX for even better DX and performance. It includes integrations for libraries such as TanStack, React Three Fiber, Lynx and StyleX, plus a compatibility layer for using Octane components inside existing React apps.

I'm excited to share that I’ll be joining OpenAI next month as a Member of Technical Staff. 🎉 I'll be joining the ChatGPT Web Infrastructure team in London.

The TSRX team have listened to feedback and have made some important design changes to TSRX. We’ve removed the component keyword, and other parts that felt too magical and aligned TSRX more closely with JSX in how it’s consumed. tsrx.dev/blog/simplif...

TSRX now supports Vue Vapor! Plus we've extended the runtimes support to include Preact. We will soon have an MCP server for TSRX so you can plug it into your favorite AI agent. TSRX is still alpha, so we're looking for early feedback from the Vue community tsrx.dev/getting-star...

Happy to announce TSRX. Think of it as the spiritual successor to JSX. We extracted it from Ripple, and made it framework agnostic. It can compile to React, Ripple and Solid, other frameworks to come soon. tsrx.dev

It's a TypeScript superset language, with a parser, compiler and a selection of plugins for editors + Prettier + ESlint, etc It's early alpha but we thought people might be interested in it.

It provides the `component` keywords, JS control flow, JSX as statements (and expressions too), lazy destructuring and scoped styling via `<style>` It even allows for condition React Hook usage. Contributions and bug reports are welcome!

We’re so happy to have Thomas here at Attio!

Thomas G. Lopes@thomas.rocks

Excited to be starting at Attio this week! Having a great time so far, promising times ahead. Really happy with the path I've chosen.

RippleJS has changed name, and is now RippleTS! This addresses the issues we had with transferring the GitHub and npm orgs (long story), and also giving the project more identity compared to existing projects with a similar name

RippleJS has improved quite a bit! 🔥 - new reactivity syntax that uses `track` and @ - support for index and keyed for loops - `clsx` built in to class attributes - #[] and #{} shorthand for TrackedArray and TrackedObject - <head> support - many, many bug fixes

Innovation in open source only works when you share and collaborate. Being transparent and honest is always the best policy. It might not always feel great, you’ll get a bunch of negativity but it’s often offset by positivity.

Pawel Kozlowski@pkozlowski.bsky.social

I'm so happy that @trueadm.dev shares his learnings in the open. There are 2 problems very close to my hart being explored here: - reactivity / rendering dance; - modern authoring format. Some will claim that UI fwks are "solved problem". I don't agree. There is still so much room for improvement!

I've given up with VS Code Copilot. The amount of endless cycles it does has driven me mad. Claud Code has proven far better. If anyone else is having the same issues, make the change. It's night and day compared.

I've had so many folks ask now, that I had to go for it. You asked me to build that ideal Inferno X framework that I described ages ago, so I went ahead and did just that. I built something that actually works and, well, it works well. Oh, and doesn't use signals!

View full thread

DX wise, IMO it's in its own category. I'm hoping to get my npm issues sorted out soon so I can publish the super early alpha (do not use) version so you can at least try it out. Watch this space. :)

Oh, and it's not called Inferno. It's called Ripple. Why? Because it's going to cause a ripple in the UI framework space and it's also the only name that I could get from the very generous person that offered the npm package to me!

I've had so many folks ask now, that I had to go for it. You asked me to build that ideal Inferno X framework that I described ages ago, so I went ahead and did just that. I built something that actually works and, well, it works well. Oh, and doesn't use signals!

View full thread

Other times, WTF! You question if you're a good parent because of the stupid shit they do. It doesn't help that AI's are like "You're totally right! I can't believe I missed that! Let me redo what I just did before again!"

So I've concluded that we're no where no AGI. We're not even toddler level, yet. We're so far away from AI being really truly useful, that it's not even funny.

Sometimes they're not quite there, and go in endless cycles but don't get anywhere. I just encourage them and give them support because they're not quite there but it's okay – we can bail out and fix it.

I’m sharing the news that after nearly 2.5 years, I’ll be leaving Vercel at the end of this week. It’s been an awesome ride, and I’ve had the privilege of working with so many great folks on a bunch of different projects.

The Svelte 5 journey was especially incredible. It was challenging in many ways, but I truly feel the web is in a better place because of what we built with Svelte and SvelteKit. The team behind it are such a talented and friendly group of people and I'll miss working together.

View full thread

I should probably play around with Vue and Solid with Cursor/Claude Code more to see how they fair. So far it's been a really frustrating experience to say the least, I'm just having to correct everything that they suggest changing each time.

For context, they work really well outside of writing code outside of framework "template" logic. Like they're super powerful at fixing regexes and mundane tasks that would take me 20mins, but now takes me a few mins.

The amount of times I've had to correct AI output because it doesn't quite understand control-flow around JSX is astonishing. I still feel like JSX in its current state isn't the ideal thing we should be using in 2025.

Svelte 5 fairs better, but then AI gets confused around template modules vs non template modules when it comes to runes. This might get better if Svelte opens up declaring state and other bits of logic in control-flow, but it's still not great.