Frick is a fullstack realtime framework: one versioned schema drives a Node sync server, a TypeScript client runtime (with React bindings), and reusable Swift and Kotlin client SDKs. Objects, streams, presence, signals, projections, jobs, blobs, and cross-user sharing grants are all first-class framework primitives; the wire format is a compact MessagePack frame protocol; and DTOs for every supported client language are generated from the same canonical schema AST.
pnpm install
pnpm cli init my-app # scaffolds package.json, schema.ts, server.ts
cd my-app
pnpm install # if you passed --no-install
pnpm dev # boots the scaffolded Frick serverpnpm cli init is the development invocation. The CLI package now builds a
standalone frick bin (pnpm --filter @fricken/cli build, then pnpm exec frick ... inside the workspace), but publishing that bin to npm is still release
work. See apps/cli/README.md for the full CLI surface.
To explore the repo itself instead of scaffolding a fresh app:
pnpm install
pnpm schema:generate # regenerate Swift + Kotlin DTOs from the foundation schema
pnpm server # http://127.0.0.1:4099
pnpm web # http://127.0.0.1:5173
pnpm cli dashboard # Fricken Dashboard at http://127.0.0.1:4299
pnpm cli dev --profile redpanda --dry-run # print the Redpanda/Kafka local profiledocs/onboarding.md— "what is Frick" plus a 15-minute hands-on tutorial.docs/schema-author-tutorial.md— add an object type end-to-end, regenerate native DTOs, lint for breaking changes.docs/authoring.md— full app authoring reference (init flags, scaffold commands, server wiring).docs/operations.md— runtime modes, environment variables, admin routes, shutdown contract.docs/status.md— current stable surfaces, known limitations, and quality gates.docs/threat-model.md— trust boundaries and the auth/permissions story.docs/push-adapters.md— wire up the APNs and FCM adapters, set per-tenant credentials via the CLI, and read back delivery telemetry.docs/push-receive.md— typedFrickPushPayload+FrickDeepLinkRouterfor iOS / Android / web push receive.docs/horizontal-scale.md— running multiple server nodes behind a load balancer; cluster-bus contract + Redis adapter skeleton.docs/cross-platform-client-contract.md— what every client SDK must implement.docs/versioning.md— schema-identity stability, when to bump revision vs hash, breaking-change policy.AGENTS.md— repo-specific guidance for AI agents and automation.CONTRIBUTING.md— how to run tests, commit conventions, PR expectations.
- Node 24+ and pnpm 10+ for the workspace, server, and CLI.
- TypeScript 5.9+ across
packages/protocol,packages/core,packages/react, and the apps. - Swift 5.10+ / Xcode 16+ for
packages/swiftandapps/ios/FrickDemo(optional). - JDK 17 + Android SDK 37 (AGP 9.2.x, Kotlin 2.3.x) for
apps/android/frickandapps/android/app(optional). - SQLite (via
node:sqliteon the server, system SQLite on iOS/Android) for the active durable and cache stores. A standalone Postgres schema/migration runner exists while the runtime store port is under active development.
The TypeScript stack is required; Swift and Android tooling are only needed if you're working on the native client SDKs or demo apps.
Pre-1.0. The schema identity (schemaId, schemaVersion, schemaRevision, schemaHash) and the structured error envelope are stable enough for clients and servers to rely on. Storage layout, admin/inspection routes, and the CLI surface may still shift between minor versions. Local SQLite databases should be considered disposable while the framework is in cutover posture. See docs/status.md for the current support boundaries and known limitations.
Apache License 2.0 — see LICENSE.