It compiles React components, and even full applications into highly optimised JavaScript and HTML, with no virtual DOM or React runtime.

The result is signal-driven state, fine-grained updates, and only the minimum code your application actually needs.

React already won.

The ecosystem, the libraries, the AI tooling and knowledge.

There's never been a better time to build with React.

But every React app ships an entire rendering engine. Even the simplest pages pay for it.

Shipping has a cost.

Every app ships a runtime.

Updates go through a virtual DOM.

Solid and Svelte proved you can compile ahead and ship less - just not while staying in React.

JetShake removes that trade-off.

Keep React. Change what you ship.

Write ordinary React.

Keep your components and libraries.

Ship lean JavaScript instead.

Wait.. this actually works?

This whole page is composed purely in React, including these ShadcnUI components below. Yet there's no react-dom in your network tab!

Dialog

Modal

Confirm a destructive action.

Dropdown Menu

Menu

Actions triggered by a button.

Choose an item

Tabs

Compound

Switch panels without a virtual DOM.

Compound components, context and all — lowered to signals.

Switch

Settings

Fine-grained updates on toggle.

Airplane mode

Disable radios on this device.

Wi‑Fi

Connect to available networks.

React for any stack. Keep your existing framework.

If you don't use React, you can still use JetShake to compile individual React components - opening up access to the whole of the React ecosystem, regardless of your framework!

$ npx jetshake export combobox.tsx
index.html
<script type="module" src="/js/jet-combobox.js"></script>

<jet-combobox
  options='["Ada","Grace","Edsger"]'
  onchange="save(event.detail)">
</jet-combobox>

Use React.

Compile with JetShake.

Want to get notified when JetShake launches?

Zero spam. Unsubscribe in one click.