Skip to content

briannadoubt/Frick

Frick

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.

Quickstart

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 server

pnpm 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 profile

Where to go next

Tech stack

  • 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/swift and apps/ios/FrickDemo (optional).
  • JDK 17 + Android SDK 37 (AGP 9.2.x, Kotlin 2.3.x) for apps/android/frick and apps/android/app (optional).
  • SQLite (via node:sqlite on 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.

Status

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.

License

Apache License 2.0 — see LICENSE.

About

Pre-1.0 fullstack realtime framework: schema/protocol, Node sync server, TS/React/Swift/Kotlin SDKs

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors