Announcement

SolidTV: The Fastest TV App Framework

By Chris Lorenzo · Published May 27, 2026 · 7 min read

Introducing SolidTV — the modern framework for building high-performance TV apps. Faster. Better Features. Easier to scale. solidtv.dev

I'm excited to officially announce SolidTV — a fork of the well established and popular LightningJS renderer, rebuilt for teams that need to ship 60fps TV apps on hardware that was never going to be fast.

I've spent multiple years building TV apps at scale. SolidTV is the framework I wish I'd had when I started with Lightning 2. What originally started as a "SolidJS integration with LightningJS Renderer" has become so much more… Rebranding became necessary as many folks don't know what LightningJS is.

Why fork?

I love what LightningJS started. But over the last year, the gap between what the upstream team was shipping and what my apps needed kept growing. I filed issues. I proposed patches. I watched them sit. At some point, "keep waiting" stops being a strategy. With AI, changes happen so fast... Owning the renderer means I can ship code at the speed of a startup rather than a large corporation who ships once a quarter. I had a lot of ideas for the LightningJS renderer, so I forked.

Doubled the FPS

The headline result, measured on a XumoTV:

Upstream LightningJS 3

~30 FPS

SolidTV

60+ FPS

That's not a microbenchmark. That's the same app, the same hardware, swapped renderer.

How? Three things, applied relentlessly:

  1. Killed the per-frame waste. The upstream update loop was doing real work every frame for nodes that hadn't changed. I re-walked the tree, split the children update loop on actual update type, and added translate-only and scale-only fast paths so static and lightly-animated subtrees cost almost nothing.
  2. Cut the garbage. Render loops that allocate stutter due to GC. I made the animation map lazy-init, slimmed GlyphLayout, made the texture upload queue allocation-light, and stopped re-resolving defaults on cache hits.
  3. Cached aggressively. SDF text layout is now cached (with wordBreak, maxLines, and overflowSuffix in the key). Image decode overlaps with GPU upload. Transform contain results are memoized. The renderer stops recomputing things that didn't change.

That was just the beginning

A quick tour through the commit log:

Text rendering

Shaders & visuals

SVG

Animations

Inspector & DX

What's next?

Solid 2.0. SolidTV builds on SolidJS, and Solid 2.0 is around the corner. The new reactivity model lines up almost spookily well with how a TV scene graph wants to update — fewer wasted invalidations, tighter signal granularity, less framework overhead per node. I'll have more to say once it lands, but if you're building TV apps and you haven't looked at Solid yet, now is a great moment.

Try it

If you've been fighting LightningJS performance on real hardware, give SolidTV a shot with the demo app benchmark.

Want this kind of performance in your TV app?

We do performance audits, renderer optimization, and architecture reviews for teams shipping on Tizen, WebOS, Android TV, and Fire TV. If you're hitting an FPS wall on real devices, we can help you find the floor — and raise it.