Product
What Client OS is
Client OS is a codebase you clone and build on, not a service you sign up for. It gives you the parts every web product needs, already connected, plus a real example of the patterns applied.
Who it is for
Developers starting a new SaaS or internal tool on TypeScript who want auth, a typed API, a frontend, a database layer and a deploy path ready before they write product code.
Teams that want one workspace for the API, the web app, a CLI and a desktop shell, sharing types and packages instead of copying them.
The scaffold
apps/api is a Hono app with OpenAPI route definitions, auth and rate-limit middleware and org-scoped database access. apps/web is a Next.js 16 App Router app with React 19: a login page and a signed-in dashboard shell.
apps/cli is the `client` command-line tool, with build pipelines for a single-file binary and an npm bundle. apps/desktop is a Tauri 2 shell with a placeholder frontend and a bundled sidecar. apps/e2e holds Playwright health and auth smoke tests.
Organizations, roles and service accounts
Every user, service account and record belongs to an Organization. An Org member holds one Role: org:admin, org:contributor or org:viewer, plus ci:agent for automation.
Service accounts authenticate with a PAT. Audit events record who did what to which resource, including denied attempts. Org-scoping is checked in the application layer, not with Postgres row-level security.
A worked example: clientos
Client OS ships with clientos, a personal consulting CRM built on the scaffold, so you can see the patterns applied to real resources: clients, contacts, projects, tasks, promises, invoices, contracts and more, in a Postgres schema of 39 tables.
Its API routes live under /api/clientos, its pages under the web dashboard, and its commands under `client clientos`. Keep it as a reference, or remove it and build your own domain in its place.
At a glance
- Runtime
- Node.js 22 or later, ESM throughout
- Language
- TypeScript 5, strict mode
- Package manager
- pnpm workspaces
- Backend
- Hono + OpenAPI 3.1
- Frontend
- Next.js 16 App Router + React 19
- Database
- PostgreSQL with Drizzle ORM
- Auth
- Supabase Auth (JWT) and service-account PATs
- Testing
- Vitest and Playwright
- Desktop
- Tauri 2 shell (placeholder frontend)
- License
- MIT
Skip the setup week
Clone it, run five commands, and start on the part that is actually your product.