Puter is a full-stack, self-hosted 'internet computer' — a browser-based desktop environment (file manager, app launcher, AI services, static-site hosting, serverless workers) backed by a Node.js kernel. The repo is a monorepo of five interlocking sub-packages: a TypeScript backend kernel (`src/backend`), a browser GUI (`src/gui`), a published JavaScript SDK (`src/puter-js`), a CLI (`src/cli`), and a Cloudflare-Worker port (`src/worker`) plus an MCP connector (`src/mcp-connector`). The kernel is the centerpiece: it layers clients (MySQL/Postgres/SQLite, DynamoDB, S3, Redis, email, alarms), stores (user, app, FS entry, session, share, permission, group, KV, OIDC, notification, subdomain), services (auth, FS, metering, permission, ACL, broadcast, notification, OIDC, app-icon, health), controllers (REST + WebDAV + WISP + Peer endpoints), and drivers (AI chat/TTS/STT/image/video/OCR, KV, apps, subdomains, notifications, workers) behind a custom `PuterServer` that wires them together with ordered peer-dependency construction. Configuration is a three-tier deep-merge (config.default.json → config.json → PUTER_CONFIG_PATH) computed at startup. The backend is well-tested with vitest unit, integration, and benchmark suites; the SDK ships with Playwright e2e tests. The GUI is a large, jQuery-based desktop UI with its own webpack build and a component system. Notable engineering: a type-safe permission/ACL system with rewriters and implicators, a metering/subscription model in microcents, a multi-engine database abstraction with ordered migrations, a driver pattern with per-operation cost tables, a token v1→v2 silent-migration path, a reauth coordinator with shared in-flight promises, and a worker-types package that provides template-literal route-param inference for the worker runtime. The codebase is actively maintained (June 2026), uses current Node 24 / TypeScript 5.9 / Express 5 tooling, and has CI for backend tests, docs builds, release-please, and Docker image publishing.