Dominic Gannaway
@trueadm.dev
2K followers 130 following 200 posts
I'm a software engineer. Author of Inferno, Lexical and Ripple. Former React core team engineer, and core maintainer of Svelte.
Posts Media Videos Starter Packs
trueadm.dev
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
export component App() {
  // This is a tracked array using #[] syntax
  let cities = #['London', 'New York', 'Tokyo', 'Sydney'];

  // index and key syntax has shipped
  for (const city of cities; index i) {
    <div>{i + ' - ' + city}</div>
  }

  <button onClick={() => {
    cities.push(randomCity());
  }}>{"Add random city"}</button>

  <head>
    <title>{"You can also update the title!"}</title>
  </head>
}
trueadm.dev
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.
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!
trueadm.dev
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...
trueadm.dev
A reverse journey in some ways
trueadm.dev
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...
trueadm.dev
I did that to start with but it’s not practical. You need to differentiate what expressions get rendered vs things you don’t want rendering.
trueadm.dev
I did. I turned it off as it was always getting in my way.
trueadm.dev
I also use GitHub. Ripple is open source. Getting it to fix Prettier plugins issues is another thing though
trueadm.dev
I wish it could solve more, but the amount of aversion has been insane. It makes so much doubt as to whether or not continue this
trueadm.dev
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.
trueadm.dev
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.
trueadm.dev
They already work, just haven't documented them. See the github issue about async :) expect bugs too!
trueadm.dev
I can't seem to repro on my MacBook for FF. Can you help me out by maybe disabling the blackground CSS animations and seeing if that helps improve performance for you?
trueadm.dev
Okay thanks. I’ll look into it :)
trueadm.dev
It's probably from the typewriter effect, does it go away once typed out?
trueadm.dev
Yeah the plan is to have it support different outputs, the next being server JS and then supporting different custom outputs for native
trueadm.dev
Thanks, there was a bug in the Prettier plugin that was causing this. Fixed now :)
trueadm.dev
Ripple now has a website!

www.ripplejs.com

If anyone wants to contribute to fixing/improving it, be my guest – github.com/trueadm/ripple.
trueadm.dev
It's a purely pull system. Only tracked contexts have dependencies using a versioning system. Sources have no knowledge of the things they affect downstream.
trueadm.dev
If folks have questions about Ripple, come join our Discord channel: discord.gg/JBF2ySrh2W
trueadm.dev
It’s only an alternative for this given scenario though. It doesn’t cover the other use cases of Ripple that I’ll cover later when I get time.
trueadm.dev
Updated! No more fragments now :)
trueadm.dev
I'm going to get rid of that, it will just be `<$children />` instead
trueadm.dev
Because I hacked it up in a week and spent much of my time debugging code and modifying it directly :)
trueadm.dev
100%, and I started with a very similar style but it just doesn't get any love from the people I showed it to. The common complaint, which I don't buy, is that the closing element makes it more readable.