Introducing Baahu
What is Baahu?
Baahu is a zero-dependency Moore machine-based SPA framework for Javascript + TypeScript
Features
- Faster and smaller than major frameworks/libraries (Svelte, Preact, Vue, React, and Angular)
- Built-in robust state management: Finite State Machines!
- Event-driven, not change-driven/reactive
- Built-in trie-based router & code-splitting
- First-class TypeScript support: type-checked JSX, props, states, events.
- O(1) component rendering for all components, not just leaves.
Contributors
Tradeoffs/Anti-Pitch
API is slightly more restrictive compared to larger libraries. For instance, components cannot return arrays (single child only).
The built-in features, such as routing, state management, and dynamically imported components, are coupled to baahu's internal architecture. They cannot be tree-shaken away.
Why was baahu created?
The purpose of baahu is to make complex UI easier to implement through explicit state machines, without sacrificing end user experience (bundle-size + performance).