Pyreon is a signal-based UI framework that renders directly to the DOM without a virtual DOM. It provides fine-grained reactivity, streaming SSR, a JSX compiler, and compatibility layers for React, Preact, Vue, Solid, and Svelte.
The tables below group the 77 published packages by area; the package catalog lists every one of them.
Core Framework
The foundation — reactivity engine, component model, renderers, router, and build tooling.
| Package | Description |
|---|---|
| @pyreon/reactivity | Signals, computed values, effects, stores, and resources |
| @pyreon/core | Component model, JSX runtime, lifecycle hooks, control flow |
| @pyreon/compiler | JSX compiler with reactivity wrapping and static hoisting |
| @pyreon/runtime-dom | DOM renderer — mount, hydrate, transitions, keep-alive |
| @pyreon/runtime-server | SSR/SSG with streaming Suspense and store isolation |
| @pyreon/router | Type-safe routing with nested routes, guards, and loaders |
| @pyreon/head | Reactive document head management with SSR support |
| @pyreon/server | SSR handler, SSG, island architecture, and middleware |
| @pyreon/vite-plugin | Vite integration with JSX transform and HMR |
| @pyreon/typescript | Shared TypeScript configuration presets |
| @pyreon/cli | pyreon CLI — doctor, check, add, new, context, lint, info, upgrade, plain |
| @pyreon/mcp | MCP server for AI-assisted development |
| @pyreon/primitives | Canonical multi-platform primitives — compile to DOM, SwiftUI, and Compose |
| @pyreon/sized-map | Bounded Map with FIFO or LRU-on-read eviction |
Compatibility Layers
Use the API you already know, powered by Pyreon's signal engine.
| Package | Description |
|---|---|
| @pyreon/react-compat | React hooks API — useState, useEffect, useMemo, etc. |
| @pyreon/preact-compat | Preact API — h(), Component class, signals integration |
| @pyreon/solid-compat | SolidJS API — createSignal, createEffect, control flow |
| @pyreon/vue-compat | Vue 3 Composition API — ref, computed, reactive, watch |
| @pyreon/svelte-compat | Svelte API — stores and lifecycle on Pyreon's engine |
| Feature | React | Preact | Solid | Vue |
|---|---|---|---|---|
| Signals / reactive state | ✓ | ✓ | ✓ | ✓ |
| Computed / derived values | ✓ | ✓ | ✓ | ✓ |
| Effects / watchers | ✓ | ✓ | ✓ | ✓ |
| Lifecycle hooks | ✓ | ✓ | ✓ | ✓ |
| Control flow components | ~ | ~ | ✓ | ~ |
| Component model | ✓ | ✓ | ✓ | ✓ |
| Context / provide-inject | ✓ | ✓ | ✓ | ✓ |
| Store / state management | ~ | ~ | ✓ | ✓ |
State & Data
Signal-native state management, forms, i18n, and data fetching.
| Package | Description |
|---|---|
| @pyreon/store | Pinia-inspired composition stores with SSR isolation |
| @pyreon/state-tree | Structured state tree with snapshots, patches, and middleware |
| @pyreon/form | Signal-based form management with field arrays |
| @pyreon/validation | Schema validation adapters for Zod, Valibot, and ArkType |
| @pyreon/i18n | Reactive i18n with async namespace loading |
| @pyreon/query | TanStack Query adapter with Suspense and SSR dehydration |
| @pyreon/table | TanStack Table adapter for reactive table state |
| @pyreon/virtual | TanStack Virtual adapter for virtual scrolling |
| @pyreon/machine | Reactive state machines with type-safe transitions |
| @pyreon/storage | Reactive client-side storage — localStorage, sessionStorage, cookies, IndexedDB |
| @pyreon/permissions | Type-safe reactive permissions — RBAC, ABAC, feature flags |
| @pyreon/hotkeys | Keyboard shortcut management with scopes and modifiers |
| @pyreon/validate | DX layer over Standard Schema — field metadata, reactive parse, error formatting |
| @pyreon/http | HTTP client under @pyreon/query — middleware, typed errors, schema-validated responses |
| @pyreon/rx | Signal-aware transforms — filter, map, sort, group, pipe |
| @pyreon/url-state | URL search-param state — signal-backed, type-coerced, SSR-safe |
| @pyreon/sync | Local-first CRDT sync for signals |
Meta-Framework
Zero-config full-stack framework and developer tooling.
| Package | Description |
|---|---|
| @pyreon/zero | Full-stack meta-framework — file routing, SSR/SSG/ISR, optimized components |
| @pyreon/create-zero | Project scaffolding for new Zero applications |
| @pyreon/zero-cli | zero CLI — dev, build, preview |
| @pyreon/zero-content | Content layer — compile-time .md / .mdx, typed collections |
| @pyreon/create-multiplatform | Scaffold a web + iOS + Android app from one source |
| @pyreon/meta | Barrel package re-exporting the full fundamentals ecosystem |
| @pyreon/storybook | Storybook renderer for developing and documenting Pyreon components |
UI System
Styling, theming, components, hooks, and animations.
| Package | Description |
|---|---|
| @pyreon/ui-core | Core initialization, CSS engine connector, and shared utilities |
| @pyreon/styler | CSS-in-JS engine with theme support |
| @pyreon/unistyle | Responsive breakpoints and media query utilities |
| @pyreon/hooks | 65 signal-based hooks for common UI patterns |
| @pyreon/elements | Foundational components — Element, List, Overlay, Portal, Text |
| @pyreon/attrs | Chainable component factory for composing default props |
| @pyreon/rocketstyle | Multi-dimensional style composition — themes, sizes, variants |
| @pyreon/coolgrid | Responsive grid system with Container, Row, Col |
| @pyreon/kinetic | CSS-transition animation components — Transition, Stagger, Collapse |
| @pyreon/kinetic-presets | 120+ animation presets and composition utilities |
| @pyreon/connector-document | Bridge between styled components and @pyreon/document |
| @pyreon/document-primitives | Rocketstyle document components for multi-format export |
Ecosystem
Specialized packages for rich application features.
| Package | Description |
|---|---|
| @pyreon/document | Universal document rendering — one template, 20 output formats |
| @pyreon/charts | Charts on web, iOS and Android from one source |
| @pyreon/code | Reactive CodeMirror 6 code editor with signals |
| @pyreon/flow | Reactive flow diagrams with signal-native nodes and auto-layout |
| @pyreon/feature | Schema-driven CRUD primitives with auto-generated hooks |
| @pyreon/rich-text | Reactive WYSIWYG editor over TipTap / ProseMirror |
| @pyreon/dnd | Signal-driven drag and drop |
| @pyreon/toast | Imperative toast notifications, no provider needed |
| @pyreon/a11y | Announcements, visually-hidden content, stable ARIA ids |
| @pyreon/auth | OIDC sign-in, sessions, TOTP, passkeys, route guards |
Developer Tools
| Package | Description |
|---|---|
| @pyreon/lint | Pyreon-specific linter — 133 rules across 25 categories |
| @pyreon/testing | Testing-Library-style render/screen/fireEvent plus reactive matchers |
| @pyreon/atlas | Component workbench — derives and verifies a component catalog |
| @pyreon/loom | Monorepo dependency observatory |
| @pyreon/lathe | OpenAPI in, typed schemas / endpoints / queries out |
| @pyreon/config | One pyreon.config.ts with a typed section per package |
| @pyreon/devtools | Chrome DevTools extension (built from the monorepo; not published to npm) |
Native (multiplatform)
The compiler, CLI, and Swift / Kotlin runtimes that take one Pyreon source to SwiftUI and Jetpack Compose. See Native packages and Multiplatform.
| Package | Description |
|---|---|
@pyreon/native-compiler | Compiles Pyreon JSX to SwiftUI and Jetpack Compose |
@pyreon/native-cli | pyreon-native CLI — builds a source directory to both targets |
@pyreon/native-runtime-swift | Swift runtime the emitted SwiftUI code links against |
@pyreon/native-runtime-kotlin | Kotlin runtime the emitted Compose code links against |
@pyreon/native-router-swift | @pyreon/router's API for SwiftUI |
@pyreon/native-router-kotlin | @pyreon/router's API for Jetpack Compose |
Quick Start
The fastest path is the scaffolder — the Quickstart has a live, no-install demo plus the one-command setup:
npm create @pyreon/zero@latest my-appOr add Pyreon to an existing Vite project by hand — install the core packages:
npm install @pyreon/core @pyreon/reactivity @pyreon/runtime-dom @pyreon/vite-pluginbun add @pyreon/core @pyreon/reactivity @pyreon/runtime-dom @pyreon/vite-pluginpnpm add @pyreon/core @pyreon/reactivity @pyreon/runtime-dom @pyreon/vite-pluginyarn add @pyreon/core @pyreon/reactivity @pyreon/runtime-dom @pyreon/vite-pluginCreate a component:
// @check
import { signal, computed } from '@pyreon/reactivity'
import { Show } from '@pyreon/core'
import { mount } from '@pyreon/runtime-dom'
const count = signal(0)
const doubled = computed(() => count() * 2)
const App = () => (
<div>
<button onClick={() => count.set(count() + 1)}>
Count: {count()} (doubled: {doubled()})
</button>
<Show when={() => count() > 5}>
<p>Count is greater than 5!</p>
</Show>
</div>
)
mount(<App />, document.getElementById('app')!)