I'm a frontend engineer @OpenAI. Author of @octanejs, @ripple_ts, @lexicaljs and @inferno_js. I was also a core engineer who helped build @reactjs and @sveltejs

London
TSRX usage has grown by almost 2x in the last month. Which means we’re soon to be eligible to be included in Linguist - the code highlighter for GitHub! We’re also close to having TS 7.1 support, a major stepping stone towards TSRX 1.0
3
6
96
11,875
I can’t disagree with this more. Software engineers might not write the code anymore, but there is definitely a bar in terms of quality. You either ignore it in review because you don’t think it matters or you don’t understand the changes. We’re not there yet in terms of that cycle.
Best part of AI is shattering dev's egos, the worst part of this industry. You are not special. Your code actually sucked like everybody else's. You were never the smartest person. The things my sales guy BIL and designer brother are doing is beyond anything I have done.
25
8
321
29,465
We're cooking at OpenAI :) Can't wait to share more about the stuff we're working on and what it means for the web and our products.
Strongly agree here that when we get this right we will unlock some truly incredible patterns and performance wins. Streaming async signals from first paint to pre hydration to post hydration is a huge unlock.
6
6
151
16,808
The irony is that Octane now has its own signals implementation that strives to do server-side streamed signals, avoiding hydration and pathing a way to even more peformant patterns. We'll be sharing more about this soon.
I can't believe it has taken me this long to get to read this absolute gem of a discussion between @RyanCarniato and @trueadm while most folks are still stuck on "use react because it's in the weights", both ryan and dom are as usual uncovering the frontiers of modern tooling for agentic engineering i've still only read the summary, can't wait to dig into the full discussion gist.github.com/aleclarson/0…
5
1
105
20,865
Dominic Gannaway retweeted
new post: the senior engineer death spiral sunilpai.dev/posts/the-senio… a friend just started a big job and asked for some advice. so I braindumped a monologue about a super common failure mode I see with engineers and posted it here, hope it helps whoever it can.
281
642
7,292
1,839,737
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/removing-lazy-…
9
6
108
20,736
Dominic Gannaway retweeted
It looks like ChatGPT and Codex now support TSRX syntax highlighting!
1
2
30
1,693
We’re going to work to make Octane + Lynx significantly faster than anything else out there. Exciting times
Thanks for asking! I have an internal bench and @octanejs is already ahead on js-framework. Yet @trueadm and I think it's far its ceiling: instead of using the universal renderer, we should compile specifically for Lynx. Codex on it. Stay tuned!
5
3
67
6,314
Dominic Gannaway retweeted
Martin Ødegaard this season so far : - mØtm vs Man City - mØtm vs Coventry City - mØtm vs Chelsea - mØtm vs Napoli 4 goals in 5 games. Returned sharp and fit from the World Cup. He was sensational tonight again. Scored some top goals this season. BravØ. @OnlyWilo_ 👌🏽
142
3,088
29,317
444,222
Dominic Gannaway retweeted
I asked GPT-6 Astra to mine a diamond in Minecraft using computer use, then went to sleep. Woke up to a diamond in its inventory 🤯🤯🤯 Setup in the replies.
470
406
13,488
4,461,180
Welcome to the team! We get to work together again!
life update: after 4 incredible years at Vercel leading the Next.js and React teams, I’m joining OpenAI to work on Codex as an IC. ChatGPT and Codex have completely changed how I build. Getting the chance to help shape where this goes next was too exciting to pass up. I learned an absurd amount at Vercel, and I’m excited to bring some of it with me. onwards :)
1
2
111
12,914
Dominic Gannaway retweeted
a little project i've been working on over the past couple weeks to create and download your own handwritten font to add a bit more personality to your work pothooks.com
47
52
636
36,780
TSRX finally has its own Github repo github.com/tsrx-org/tsrx It started off as something that lived in the Ripple repo, as we broke it apart from Ripple itself. It's now far outgrown Ripple alone though so it's made sense for it to have its own trajectory. Thank you @leonidas_bt for all the hard work into making it happen!
5
15
171
19,086
I've mostly done a U-turn on writing content with AI after have so much pushback for the content on the homepage of the Octane website. I was too busy moving fast to realise, after reading my tone in the Lexical and Inferno docs, that it wasn't reflecting the team or the project. Plus it's quite nice to write something for once other than prompts.
Replying to @RyanCarniato
When a human writes it, there's a rawness, and emotion to the tone. There's slight bias, there's accent, there's a unique word tone that the person writing has that makes you think "Ah, that's Dominic, or that's Ryan".
8
2
111
8,185
This is exactly the reason why I created Octane. I mean Octane is still in its infancy, and we're exploring new and exciting ways to make it better. Not only for humans but more increasingly, for agents and LLMs. Hard constraints are now more important than ever, escape hatches are a thing designed for humans. However, they're terrible for agents, as they'll overreach into these areas and use them as the fast-path. That's why Octane has "use strong" to enforce the compiler to deny the escape hatch. Anyway, subsequently I talk about this on a gist with @RyanCarniato if folks are interested gist.github.com/aleclarson/0…
Much love to the Solid team and congrats on launching Solid 2! Cursor has largely completed this migration from Solid to React. We also have since converted all our scss and Tailwind to @stylexjs, in both Cursor and in @bot. The new agents window is 99% React, with a few stragglers left that we have yet to migrate. The big motivation for this migration was for perf and maintainability reasons. We have seen that in practice, it is actually quite easy to create perf footguns for yourself in signal based approaches when reactivity causes a large amount of accidental fan out in large and complex apps. It probably was a skill issue. But in the age of agents, choosing what pitfalls you're okay with is an important decision. I think it's fair to say that every UI framework has its pitfalls and that no perfect one exists yet. For us, React was the most known quantity, and we found that solving its problems is actually quite straightforward and boring: exactly what you want when you're trying to ship! Something interesting I also observed is the uncanny valley effect of non-React frameworks looking like React. I think it confuses agents, because in my experience, agents were quite bad at writing good Solid code. Everything ended up being accidentally tracked which caused so many perf problems. React Compiler solves most of your perf problems with over-rendering. The remaining cases just take some manual memoization or refactoring/composition, which an agent can easily do. The nice thing about useEffect is that it's like an unsafe {} block in Rust: it shows me at a glance where the problems are. @bot (which is 100% React) is built on Dune, our in-house, agent friendly React framework for desktop apps, which actually bans useEffect outright and only exposes it indirectly through framework-provided hooks. Highly recommend setting something like that up for yourself!
5
5
108
12,655
Dominic Gannaway retweeted
`useLinkedState` was created to avoid doing `setState` during render – which we felt wasn't very usable or scalable by both humans and agents. We also have a "use strong" mode for Octane that literally bans, at a compiler level, setState in the render phase for either the entire project or specific modules. We're also exploring using "use strong" to ban `setState` in effects, with error messages that tell the agent to move it to a better location – such as the event handler or the right place in your design system. we know that humans get emotional about these choices, but if you're not the one making the changes, then having an agent deal with the constraints means better code in general.
Octane's useLinkedState solves synchronization state problem. No option from React 🤷‍♂️ @octanejs @reactjs #reactjs #javascript
2
2
33
5,356
This is important context as to why we created Octane to begin with.
Octane is far more than a "faster" version of React. Inferno tried to be that – and it succeeded to some extent too – it powered Facebook KaiOS to hundreds of millions of users in production, for low-end devices that needed the low memory usage and high performance.
6
3
98
14,871
Octane now has native Lynx support!
Battle-tested @octanejs Lynx by porting our signature tutorials. And they're now live on the Octane website ;)
2
8
87
7,728