Skip to content

Instantly share code, notes, and snippets.

@pekkis
Created September 12, 2025 10:57
Show Gist options
  • Select an option

  • Save pekkis/d7fb97ca034bb9be73a6a218cc377aa8 to your computer and use it in GitHub Desktop.

Select an option

Save pekkis/d7fb97ca034bb9be73a6a218cc377aa8 to your computer and use it in GitHub Desktop.
blazing fast. enterprise-ready. battle-tested*. next-gen. zero-config. batteries-included. type-safe**. future-proof***.
Meet Mirko.js
The boldly meta-reactive UI framework for React that fearlessly re-implements React inside your React app — only worse.
Forget hooks. Embrace Mirko Components™, a courageous fusion of React’s render cycle with the most nostalgic parts of Bacon.js observables. It’s the best of both worlds’ worst ideas, lovingly duct-taped together.
Why Mirko?
Reinvented State Management
No useState, no useEffect, no problem. Wire your app with mirko-components that push, pull, debounce, and occasionally sulk. State flows like syrup in January.
Observables, but extra
Powered by the Bacon.js bits you forgot to uninstall. Side effects live everywhere, which is great for visibility and character growth.
Zero-Config, Maximum Ceremony
Works out-of-the-box, but every box comes with more boxes. Extensible via over-engineered adapters you’ll never need yet cannot remove.
SSR-ish Streaming
Sends HTML in artisanal micro-drips for that premium “something is happening” feeling.
Tree-Shaking-Resistant™
Our compiler carefully prevents your dead code from being shaken away. Because you wrote it; you should keep it.
DX You Can Feel
Delightful ergonomics, sensible defaults, powerful escape hatches, and sharp edges. You will feel all of them.
Install
npm i mirko.js
import { MirkoRoot, MirkoState } from "mirko.js";
export default function App() {
return (
<MirkoRoot suspense="always">
<MirkoState id="cart" strategy="overreactive" leak="yes" />
{/* your regular React components, now mirko-fied */}
</MirkoRoot>
);
}
Features You Didn’t Ask For
End-to-End Reactivity – from click to complaint.
Compiler-Runtime Synergy – we do extra work at build and at runtime, just to be sure.
Plugin Ecosystem – coming soon; already deprecated.
First-Class Types – all any, all the time (for velocity).
Benchmarks (internal, conclusive)
Up to 200% more renders per render.
2× slower than useState in synthetic tests, which proves it’s doing something meaningful.
99.9% compatibility with React concepts, except the ones you use.
Use Cases
When your team says “we should keep it simple,” and you reply “or hear me out…”
Migrating from spaghetti to rigatoni-grade complexity.
Impressing architecture astronauts and confusing linters.
FAQ
Is it production-ready?
Absolutely—if your production is a conference demo.
Why would I use this?
You probably wouldn’t. But you could, and that’s innovation.
Does it replace Redux, Zustand, Recoil, Hooks, Context, Signals, and common sense?
Yes. And no. Mostly no. But also yes.
What about performance?
Performs. Spectacularly. Results may vary; expectations should too.
Call to Action
Join the movement that moves in circles. Ship boldly. Mirko.js — because reactiveComponent deserves a logo and a legacy.
* “battle-tested” in local development.
** “type-safe” with adequate faith.
*** “future-proof” until next week.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment