Reference

Packages

What each package provides, which kit includes it, and the roadmap.

Every app starts with @kitr/core and the kitr CLI. Everything else, the router included, is added with kitr add <name>. "Client" packages are refused in server-only projects; the rest work anywhere.

Capabilities

Name Package Scope Needs Provides
react @kitr/react client <KitrProvider>, useApp(), useService(), useConfig(). Added by router.
router @kitr/router client react TanStack Router, createKitrRouter, requireAuth(), can(), default pending/error/404 routes, app/router.tsx and app/client.tsx. Every UI platform needs it.
query @kitr/query client TanStack Query, defineQuery/defineMutation/defineSubscription, cache effects, useSubscription, a provider with sane defaults (30s stale, no retry on 4xx).
http @kitr/http client query ky with bearer auth, refresh-once on 401, kitr/Adonis error normalisation; httpQuery/httpMutation contracts.
forms @kitr/forms client React Hook Form, useSchemaForm(schema) for any Standard Schema library, <Form> that maps server fieldErrors, headless <FormField>.
table @kitr/table client TanStack Table v9 (feature-sliced), dataTableFeatures, useUrlTableState for shareable sort/page/filter URLs.
state @kitr/state client Zustand, createKitrStore returning [useStore, StoreProvider, store] with per-request stores on the server.
tailwind @kitr/tailwind client Tailwind v4 via Vite, cn(), the preset that exposes kitr tokens as @theme so bg-background and friends work.
theme @kitr/theme client Design tokens (defineTokens, oklch defaults with a dark set, app/styles/tokens.css), ThemeProvider/useTheme (system/light/dark, cookie for SSR, meta[name=theme-color]), toast over sonner, cva/clsx, and the registry settings kitr ui add reads from config/theme.ts.
auth @kitr/auth client createAuth(adapter) with token, Better Auth and custom adapters, defineAbilities, router guards, useAuth/useCan; kitr/auth/server middleware for the API.
logger @kitr/logger any Structured logger, levels, children, request ids, pretty in dev and JSON in production.
server @kitr/server any logger h3 server with the kitr app lifecycle, request-scoped container, health route, graceful shutdown. Standalone via srvx, or a fetch handler inside Start. kitr/server/platform is the server() platform factory.
api @kitr/api any server Adonis-style router (groups, resources, middleware) in server/routes.ts, controllers in server/controllers/ with static validation, typed client with no codegen, OpenAPI.
actions @kitr/actions client server defineAction over Start server functions: input schema, middleware, one error shape, cache effects, .query()/.mutation() for TanStack Query.
seo @kitr/seo client seo() head tags, jsonLd(), ssrRoute(), cacheHeaders(), robotsTxt(); config/seo.ts drives the web platform's prerender list and sitemap.
realtime @kitr/realtime any server Typed channels over one of three transports chosen in config/realtime.ts: ws (partysocket client, crossws server), socket.io (rooms), sse (EventSource plus a POST control channel). Events apply cache effects; kitr/realtime/react has useChannel.
db @kitr/db any server defineDb({ connect, disconnect }) so any ORM joins the lifecycle and is available as ctx.db.
testing @kitr/testing any Vitest config, createTestApp, createTestClient(server); kitr/testing/react for renderWithKitr.
mocks @kitr/mocks client MSW handlers from kitr route tables and contracts, for dev without a backend and for tests.
i18n @kitr/i18n client react-i18next, typed keys from your resource files, locale detection.
analytics @kitr/analytics client page/track/identify behind one API with Google Analytics, Plausible, PostHog and console adapters; page views from the router; queue-until-consent; typed event map.
monitoring @kitr/monitoring any captureException, breadcrumbs, user context behind one API; Sentry and console reporters; window handlers, an error boundary, reportErrors h3 middleware. Drops expected 4xx by default.
offline @kitr/offline client query, storage Persists successful queries and paused mutations to the app's storage driver, restores them before the first render and replays mutations on reconnect; useOffline() for { online, pending, restored }.
flags @kitr/flags any defineFlags with typed defaults, ordered providers (env, percentage rollout, OpenFeature for any vendor), per-request resolveFlags on the server embedded with <FlagsScript />, useFlag() in components.
consent @kitr/consent client storage One consent record by category in a cookie the server can read; analytics and (optionally) monitoring wait for their category; useConsent() drives the banner.
secure-storage @kitr/secure-storage any storage Secrets in the OS vault (Keychain, Keystore, safeStorage) with an AES-GCM web fallback; defineSecureItem for typed, validated items; useSecureItem().
files @kitr/files client platform open/pick/save with native dialogs on desktop and mobile, the File System Access API in the browser and a download fallback; useFileDialogs(), useDropFiles().
notifications @kitr/notifications client platform Permission, show, schedule, cancel and a tap listener that carries the page to open; web Notification API or the platform's driver.
native @kitr/native client platform Clipboard, share sheet, haptics, geolocation, camera and biometrics, each a separate capability with a web driver and a supported flag; useClipboard(), useShare(), useGeolocation().
updater @kitr/updater client platform One check/apply state machine over the service worker on the web and the platform updaters on desktop and mobile; useUpdate() for the banner.
cache @kitr/cache any server remember, tags and cached() over a CacheDriver (in-memory shipped, Redis-shaped interface), with in-flight de-duplication.
shield @kitr/shield any server Security headers, CORS, per-IP rate limiting with RateLimit-* headers and double-submit CSRF as h3 middlewares; shield(server) reads config/shield.ts.
mail @kitr/mail any server React email templates (defineMail), log, Resend and SMTP transports, text alternatives, and /_kitr/mail previews in development.
jobs @kitr/jobs any server defineJob with a payload schema, retries with backoff, timeouts and cron or interval schedules; an in-process worker over a JobsDriver (in-memory shipped).
uploads @kitr/uploads any Client upload() with progress and typed errors plus useUpload(); server receive()/mount() that parses multipart per size and type rules into a disk or custom driver.
platform @kitr/platform client One API for where the app runs: platform(), isNative(), perPlatform(), and the hooks usePlatform, useOnline, useAppState, useBackButton, useDeepLink, useSafeArea. A driver registry the desktop and mobile packages fill; the browser is the default driver.
storage @kitr/storage any defineStorage (typed local/session items with schema, version+migrate, ttl, cross-tab sync) and defineCookie readable on both sides; useStorage/useCookie hydration-safe hooks; cookies(event) on the server. Native drivers (Tauri store, Electron IPC, Capacitor Preferences) come from the platform packages.
devtools @kitr/devtools client The development overlay: App, Router, Query, Auth, Storage, Platform, Errors, Analytics and Log panels, a command palette, and a hub any package logs to. Providers add panels with a devtools() method. Dropped from production builds by the Vite plugin.

Always present: @kitr/core (app, container, providers, config, env, errors, contracts, validation, the definePlatform contract), @kitr/vite in projects with a UI platform, @kitr/cli through the kitr binary.

Platforms

Platforms are packages too, added with kitr add <type> <name> and configured in kitrrc.ts under platforms. See platforms.md.

Type Package Entry points Needs
web @kitr/web kitr/web (web()), kitr/web/client (useInstallPrompt, useServiceWorker), kitr/web/vite router
server @kitr/server kitr/server (server() beside createServer), kitr/server/platform server
desktop @kitr/desktop kitr/desktop (desktop()), kitr/desktop/client, kitr/desktop/tauri, kitr/desktop/electron, kitr/desktop/electron-main, kitr/desktop/electron-preload, kitr/desktop/provider router, platform, storage
mobile @kitr/mobile kitr/mobile (mobile()), kitr/mobile/client, kitr/mobile/provider router, platform, storage

Devtools

kitr add devtools (in every React kit by default) mounts a bottom panel in development: ctrl/cmd+shift+K toggles it, ctrl/cmd+shift+P opens a command palette with every package's actions. Each package contributes its own panel through the provider's devtools(app) method, and logs through getDevtools(app)?.log(channel, label, data), which is null in production. Out of the box: App (mode, providers, container, config, env), Router (location, matches, loader data, navigation log), Query (cache with invalidate/refetch/remove), Auth (session, sign out), Storage (local/session/cookies with remove), Platform (type, OS, drivers, app state), Errors (captured exceptions and breadcrumbs), Analytics (events, enable/disable) and Log (http requests, logger records, every channel). The kitr Vite plugin leaves the provider out of production builds, so nothing of it ships.

Kits

Kit Platforms Packages
blank site: web({ mode: 'spa' }) router, query
app site: web({ mode: 'spa' }) router, query, http, forms, table, state, tailwind, theme, auth, storage, mocks, testing, devtools, plus eleven registry components (including icon, Hugeicons stroke-rounded)
fullstack site: web({ mode: 'ssr' }), api: server() the app kit plus logger, server, seo, actions, api, realtime
server api: server() logger, server, api, db, realtime, testing. No React.
saas site (ssr), api the fullstack set with analytics and monitoring; sign-in, guarded shell, projects CRUD, tests
site site (ssr), api query, forms, tailwind, theme, i18n, storage, analytics, seo, api, testing, devtools; prerendered pages, blog, newsletter
realtime site (ssr), api query, forms, tailwind, theme, storage, seo, api, realtime, testing, devtools; chat over typed channels
desktop site: web({ mode: 'spa' }), app: desktop({ shell: 'electron' }) the app kit plus platform; native dialogs over typed IPC
mobile site: web({ mode: 'spa', pwa: true }), phone: mobile() the app kit plus platform; installable PWA and the Capacitor shell

kitr new <dir> --platform admin=web,api=server --mode spa --runtime bun replaces a kit's platforms; --shell, --targets, --pwa and --port set the first platform's options.

Roadmap

Later: local-db, payments, better-auth, ai, push, sync, search, media, admin, workflow, audit, tenancy, cms, graphql, commerce. Each lands as a package with a recipe, docs and a make:* command where one fits.