Warning
Still in beta. Do not use in production.
A small (~1.5kb) web framework written in JavaScript. Features:
- 🪶 Ultra-lightweight
- 🦅 Unopinionated
- ✅ TSX
- ✅ Type definitions
- ✅ Zero dependencies
- ✅ Zero throw expressions
- ✅ Zero setup
Here is the classic counter example:
import {insertToString, mount} from "aena";
import {State, get, setState} from "aena/state";
let counter = new State(0);
mount(document.body, (
<button onclick={() => setState(state, get(state) + 1)}>
Clicked: {insertToString(state)}
</button>
));
You can install Aena via NPM:
bun i aena
Huge thanks to SolidJS for the types because extracting the types from specifications is very tedious. I also thank React for inspiration for the quickstart guide.