implement

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.11

Signals, element helpers, and the pieces nodes are built out of. Plain TypeScript that builds real DOM nodes, no compiler.

@implementjs/router

v0.0.13

The 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.20

File-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.14

Unstyled 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.11

Dark 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.11

Schema-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.8

Scaffolds a new implement app — kit or plain Vite, with Tailwind, primitives, icons, forms, and dark mode as optional addons.

@implementjs/eslint

v0.0.2

Lint 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.11

The full Lucide icon set as icon components. Each icon is its own module, so bundlers only keep the ones you import.