A lightweight, reactive web framework ecosystem built with TypeScript and JSX
Pounce is a monorepo containing a collection of packages for building modern web applications with automatic reactivity, type safety, and minimal overhead.
| Package | Description | Status |
|---|---|---|
@pounce/core |
Lightweight reactive UI framework with JSX | Stable |
@pounce/board |
Full-stack meta-framework with SSR and file-based routing | In Development |
@pounce/kit |
Client utilities, routing, and API helpers | In Development |
- 🚀 Lightweight: No virtual DOM, minimal overhead
- ⚡ Reactive: Automatic reactivity powered by
muttsreactivity engine - 🔄 Two-Way Binding: Automatic detection and setup of two-way data binding
- 🎨 JSX Support: Write components using familiar JSX syntax
- 💪 Type-Safe: Full TypeScript support with type safety
- 🧩 Component-Based: Create reusable, composable components
- 📦 No Runtime Overhead: Works directly with the DOM
- 🗂️ File-Based Routing (Board): Automatic route generation from file structure
- 🔄 SSR-First (Board): Server-side rendering with hydration
- 🛠️ Client Utilities (Kit): Browser APIs, routing, and helpers
# Install core package
npm install @pounce/core mutts
# Or install the full-stack framework
npm install @pounce/boardimport { reactive } from 'mutts'
import { latch } from '@pounce/core'
function Counter() {
const state = reactive({ count: 0 })
return (
<>
<h1>Counter: {state.count}</h1>
<button onClick={() => state.count++}>Increment</button>
</>
)
}
latch('#app', () => <Counter />)# Install dependencies
pnpm install
# Build all packages
pnpm run build
# Run tests
pnpm run test
# Run linting
pnpm run lint- @pounce/core - Core reactive framework documentation
- @pounce/board - Full-stack framework documentation
- @pounce/kit - Client utilities and routing documentation
MIT