Packages
Everything ships from one repo as separate packages. Start with the framework, then pull in the pieces you need.
Framework
The core runtime everything else builds on.
@implementjs/core
v0.0.11Signals, element helpers, and the pieces nodes are built out of. Plain TypeScript that builds real DOM nodes, no compiler.
@implementjs/router
v0.0.13The typed route-tree router: params as signals, persistent layouts, typed links, and URL-synced search params. Built on core's public API.
@implementjs/kit
v0.0.20File-based routing, SSR, and prerendering on top of Vite. Write pages and layouts as files; kit wires up the router with typed params.
Components
Composable pieces you assemble into interfaces.
@implementjs/primitives
v0.0.14Unstyled building blocks for common UI patterns. They own the behavior and the accessibility; you own the look.
Theming
What decides which of your two palettes the page is wearing.
@implementjs/mode-watcher
v0.0.11Dark mode: the visitor's choice, the system preference, and the class on <html> — applied before the first paint, so there is no flash of the wrong theme.
Forms
State and validation for the parts of a page users type into.
@implementjs/formish
v0.0.11Schema-first forms, ported from Formisch. The valibot schema types the fields, validates the input and produces the submit handler's output.
Tooling
What you reach for before the first line of app code.
create-implement-app
v0.0.8Scaffolds a new implement app — kit or plain Vite, with Tailwind, primitives, icons, forms, and dark mode as optional addons.
@implementjs/eslint
v0.0.2Lint rules for the mistakes types cannot catch: a subscription whose unsubscribe went missing, a misspelled aria attribute, a Lifecycle that wanted to be a Watch. An ESLint plugin, and oxlint runs it too.
Icons
Icon sets packaged as implement components.
@implementjs/lucide
v0.0.11The full Lucide icon set as icon components. Each icon is its own module, so bundlers only keep the ones you import.