Dominic Gannaway
trueadm.dev
Dominic Gannaway
@trueadm.dev
I'm a software engineer at Attio. Author of Inferno, Lexical and Ripple. Former React core team engineer, and core maintainer of Svelte.
I'm not going to lie. I love monorepos, but I also hate them when things go wrong or things are slow. I'm so conflicted right now.
November 10, 2025 at 11:08 PM
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
November 3, 2025 at 6:53 PM
@anthonyshort.bsky.social hey I’m the author of RippleJS. Would you be up for a chat to help the team resolve the GitHub issue around transferring the org? Thank you!
October 28, 2025 at 9:59 PM
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
October 1, 2025 at 8:09 PM
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.
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!
The team behind RippleJS has heard the feedback around the $ prefixed reactivity and we agree – the design wasn't quite there. So we've proposed an alternative.

github.com/trueadm/ripp...
September 19, 2025 at 10:03 PM
The team behind RippleJS has heard the feedback around the $ prefixed reactivity and we agree – the design wasn't quite there. So we've proposed an alternative.

github.com/trueadm/ripp...
September 17, 2025 at 8:48 PM
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.
September 2, 2025 at 10:58 PM
Any designers out that would like help create a great logo?

github.com/trueadm/ripp...

What we have now isn't great, but a great logo makes a big difference.
September 2, 2025 at 9:24 PM
Ripple now has a website!

www.ripplejs.com

If anyone wants to contribute to fixing/improving it, be my guest – github.com/trueadm/ripple.
September 2, 2025 at 12:39 AM
If folks have questions about Ripple, come join our Discord channel: discord.gg/JBF2ySrh2W
August 29, 2025 at 4:44 PM
I've open sourced Ripple!

github.com/trueadm/ripple

It's super early days, not much works and there's little to no documentation or guidance. Plus the codebase is raw, but I at least wanted to share my ideas with the community. :)
GitHub - trueadm/ripple: Ripple is a TypeScript UI framework for the web.
Ripple is a TypeScript UI framework for the web. Contribute to trueadm/ripple development by creating an account on GitHub.
github.com
August 28, 2025 at 8:27 PM
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!
August 27, 2025 at 11:30 PM
I compare today's coding AI agents to my 3 year old toddlers.

Sometime they nail it and you're like "well done, great job! I'm so proud of you!".
August 20, 2025 at 10:30 PM
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.
August 18, 2025 at 8:25 PM
Is it me or is Bluesky becoming more and more like Twitter?
August 12, 2025 at 12:03 AM
I still think there's a missed opportunity to create a frontend framework that works really well with AI tooling.
July 22, 2025 at 9:15 PM
Reposted by Dominic Gannaway
Interested in Signals? Enjoy learning by reading code? Check out github.com/jkup/learn-s...
GitHub - jkup/learn-signals
Contribute to jkup/learn-signals development by creating an account on GitHub.
github.com
May 29, 2025 at 11:02 AM
Recently I was hacking on a new framework idea. I called it Inferno X.

The big difference was that it forked JSX. Rather than being expression based, it was statement based. This meant that JavaScript control flow could be used to express the template.
May 28, 2025 at 10:20 PM
Black Mirror never disappoints
April 20, 2025 at 10:08 PM
I’ve been hacking on a new idea/project that infuses AI with frontend. It’s early days but it’s looking promising
April 11, 2025 at 12:15 AM
For all the Arsenal fans that might be out there on Bsky, tonight was a night of "Bend it like Declan" for sure!
April 8, 2025 at 10:11 PM
Mixture of up and down feelings over the past week. The company off-site was great but being away from the family hit hard.
March 31, 2025 at 12:43 AM
I wish there was a platform like LinkedIn, that worked a bit like UberEats etc where you could rate the person who messaged you with a job offer. It would instantly make all the spam far less common. It even force recruiters to read your resume too?!?
March 11, 2025 at 11:23 PM
I’m curious, what do people think is React’s primary reason why it became the de-facto frontend framework it is today?
March 10, 2025 at 12:03 AM
Reposted by Dominic Gannaway
PSA for @svelte.dev users: we're planning to change how effect teardowns work to eliminate a common gotcha that affects signal-based frameworks. If the new behaviour would create problems for you, please let us know!

github.com/sveltejs/sve...
fix: on teardown, use the last known value for the signal before the set by trueadm · Pull Request #15469 · sveltejs/svelte
PSA: we are changing how effect teardowns work! Today, if you read some state inside a teardown function, you get the latest state: $effect(() =&gt; { const prev = value; return () =&gt; { ...
github.com
March 7, 2025 at 4:22 PM