How the packages
fit together
The core owns the behavior. Framework bindings connect it to your app, and component adapters provide the UI. Changing the UI doesn’t require rewriting the underlying logic.
Core
State, operations, and lifecycle rules in plain TypeScript. No framework or rendering dependencies.
Framework bindings
Subscribe to core state and connect updates and cleanup to the framework’s rendering lifecycle.
Component adapters
Connect the behavior to a component library’s controls, styling, and accessibility primitives.
Use an existing adapter, supply your own components, or build directly on a core package.
Read about the architectureSave a reading preference
Choose a text size. It’s saved in this browser and restored when you reload the page. Reset removes your saved choice and returns to the default.
Preferences guideconst preferences = createPreferences({
defaults: { textSize: "medium" }
})
// Connect in the browser
connectPreferencesStorage(preferences, {
storage: "localStorage",
key: "buildkit-reading-demo"
})Team update
The new navigation is ready for review. We’re checking the mobile layout and keyboard controls before the next release.
Please leave your feedback in the project notes so everyone can follow the discussion.
Reload the page to try your saved choice. This setting only affects the example.
Return a result from any modal
Await a decision
Open a dialog from an event handler or a service. Confirming returns true; cancelling or pressing Escape returns false. Your code continues when the person decides.
Modal manager guideconst confirmed = await manager.confirm({
title: "Archive this project?",
confirmLabel: "Archive project"
})
if (confirmed) setIsArchived(true)Website refresh
ActiveA sample project. Changes stay in this example.
Confirm, cancel, or press Escape. Each path resolves the same promise.
Find a package
Each package has its own installation guide, public API reference, and examples. Filter by the layer or integration you need.
configuration-core
Typed configuration with provider evaluation, safe defaults, and optional developer overrides.
react-configuration
Provider-free React subscriptions for typed configuration.
dev-domains
Stable local HTTPS domains for applications, Storybook, and Git worktrees, built on Portless.
preferences-core
Typed defaults, overrides, persistence, and JSON backup without a framework dependency.
theme-core
System, light, and dark selection with an explicit application default.
react-preferences
Typed React subscriptions to an application-owned preferences store.
react-theme
Provider-free React bindings for Buildkit theme stores.
shadcn-theme
Theme selection for registry-installed shadcn components or the Buildkit component kit.
fluentui-theme
Fluent UI v9 themes with external state, custom tokens, and native portal support.
shadcn-baseui-luma
The upstream luma style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
shadcn-baseui-lyra
The upstream lyra style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
shadcn-baseui-maia
The upstream maia style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
shadcn-baseui-mira
The upstream mira style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
shadcn-baseui-nova
The upstream nova style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
shadcn-baseui-rhea
The upstream rhea style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
shadcn-baseui-sera
The upstream sera style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
shadcn-baseui-vega
The upstream vega style with the full Base UI component catalog, compiled CSS, and TypeScript declarations.
modal-core
Framework-independent modal stacks, typed results, updates, and cleanup.
react-modals
React subscriptions, typed modal definitions, and shared confirm/alert helpers.
shadcn-modals-manager
Managed shadcn dialogs with a default renderer and optional Base UI or Radix registry components.
fluentui-modals-manager
Managed Fluent UI dialogs with typed inputs and results.
alert-core
Framework-independent, persistent inline alert regions.
react-alerts
Persistent inline alerts with external commands and shared lifecycle behavior.
shadcn-alerts-manager
Persistent inline alerts with external commands and shared lifecycle behavior.
fluentui-alerts-manager
Persistent inline alerts with external commands and shared lifecycle behavior.
router-core
Framework-independent tab selection and panel navigation policies.
react-routing
Provider-free React bindings for route tabs and panels.
react-router
Route tabs and panels for React Router data routers.
tanstack-router
Typed route tabs and panels for TanStack Router.
Contribute an adapter
We welcome bindings for other frameworks and adapters for other component libraries. Reuse the core behavior and connect it to the conventions of the tools you use.
Have an integration in mind? Open an issue to discuss it, or read the contributing guide to get started.