Architecture
Nexa is organized as a monorepo with nine packages:
nexa/
├── packages/
│ ├── reactivity/ Signals core
│ ├── runtime/ Virtual DOM + Components
│ ├── compiler/ SFC compiler
│ ├── nexa/ Umbrella re-exports
│ ├── vite-plugin-nexa Vite integration
│ ├── state/ Global state management
│ ├── router/ Client-side router
│ ├── nexa-init/ Project scaffolding CLI
│ └── devtools/ DevTools introspection APIDependency Graph
nexa ─── depends on: reactivity, runtime
runtime ─── depends on: reactivity
compiler ─── standalone
vite-plugin ─── depends on: compiler
state ─── depends on: reactivity
router ─── depends on: runtime, reactivityDesign Philosophy
- Simplicity — Intuitive API, minimal boilerplate
- Performance — Signals-driven reactivity + efficient VDOM
- Scalability — From landing pages to enterprise apps
- Type Safety — Full TypeScript, strict mode
Comparison
| Aspect | Vue 3 | React | SolidJS | Nexa |
|---|---|---|---|---|
| Reactivity | Proxy ref() | useState | Signals | Signals |
| Rendering | VDOM + Proxy | VDOM full re-render | Direct DOM | VDOM + Signal |
| Components | SFC + Options/Setup | JSX functions | JSX functions | SFC + Setup |
| Bundle | ~33KB | ~42KB | ~7KB | ~15KB |