One way to build everything.

kitr is an opinionated TypeScript and React framework for apps on every platform, with the tools already chosen and wired. You and your coding agents spend less time deciding what to use and finding where things go, and more time building.

kitr new my-app --kit app

First time? Run npm i -g kitr once. Inside a project, the global kitr runs your project's own version.

What you get

One app. As many platforms as you need.

Each platform is one line in your config. Toggle one to see the file and the commands change.

Platforms in this project
// kitrrc.ts
import { defineKitrConfig } from 'kitr/app'
import { desktop } from '@kitr/desktop'
import { mobile } from '@kitr/mobile'
import { server } from '@kitr/server'
import { web } from '@kitr/web'

export default defineKitrConfig({
  platforms: {
    site: web({ mode: 'ssr' }),
    api: server({ runtime: 'node' }),
    app: desktop({ title: 'Acme' }),
    phone: mobile({ appId: 'com.acme.app' }),
  },
})
$ kitr add web site --mode ssr
$ kitr add server api
$ kitr add desktop app
$ kitr add mobile phone
$ kitr dev
✓ site http://localhost:3000
✓ api http://localhost:3001
✓ app Electron window
✓ phone live reload on your phone

Add what you need, one command at a time.

Browse all 46 packages →
No prompts. Agents and CI run every command.
~/code $ kitr new my-app --kit app
✓ created my-app from the app kit
  web · query · tailwind · theme · testing
✓ wrote AGENTS.md
→ cd my-app && npm run dev

Coming from…

What stays the same and what changes.

your first app, five minutes from now

Install the CLI once, pick a kit, and add the rest as you need it.

kitr new my-app --kit app

First time? Run npm i -g kitr once. Inside a project, the global kitr runs your project's own version.

Read the getting started guide