Skip to content

API Reference

Kora.js is organized as a monorepo of focused packages. Each package owns a specific layer of the offline-first stack.

Which packages do I need?

Most developers need only two packages:

PackagePurpose
koraMeta-package that re-exports everything from core, store, merge, and sync
@korajs/reactReact hooks and bindings

The kora meta-package gives you createApp, defineSchema, t, and all the primitives you need to build an offline-first application. The @korajs/react package adds reactive hooks for your UI layer.

If you are building a self-hosted sync server, you also need @korajs/server.

Package architecture

kora                        Meta-package (re-exports core, store, merge, sync)
  @korajs/core                Schema, operations, clocks, types
  @korajs/store               Local storage (SQLite WASM, IndexedDB)
  @korajs/merge               Three-tier conflict resolution
  @korajs/sync                Sync protocol and transports
@korajs/server                Self-hosted sync server
@korajs/auth                  Authentication, sessions, MFA, RBAC
@korajs/react                 React hooks and bindings (incl. presence)
@korajs/devtools              Browser DevTools extension
@korajs/test                  Testing harness for offline-first apps
@korajs/tauri                 Native SQLite for Tauri desktop apps
@korajs/cli                   CLI tooling, scaffolding, and deployment

Dependency graph

@korajs/core       -> (no @kora dependencies)
@korajs/store      -> @korajs/core
@korajs/merge      -> @korajs/core
@korajs/sync       -> @korajs/core, @korajs/merge
@korajs/server     -> @korajs/core, @korajs/sync
@korajs/react      -> @korajs/core, @korajs/store, @korajs/sync
@korajs/devtools   -> @korajs/core
@korajs/cli        -> (all packages)

Reference pages

PageContents
CoredefineSchema, t type builders, HybridLogicalClock, Operation, state machines, migration rollbacks, protobuf codegen
StoreCollection methods (insert, update, delete, where, subscribe), state machine validation, bloom filter subscriptions
MergeMergeEngine, strategies, constraint checking, referential integrity, state machine merge resolution
SyncSyncEngine, transports, E2E encryption, diagnostics/metrics, awareness/presence, scope filtering
ServercreateKoraServer, server stores (Memory, Postgres, SQLite), auth providers, awareness relay
AuthAuthClient, BuiltInAuthRoutes, TokenManager, sessions, MFA, orgs, RBAC, passkeys
ReactKoraProvider, useQuery, useMutation, useSyncStatus, usePresence, useCollaborators, useRichText
DevToolsInstrumenter, EventBuffer, MessageBridge, filtering, panel state
TestcreateTestNetwork, TestDevice, TestServer, expectConverged, ChaosTransport
CLIkora create, kora dev, kora migrate, kora generate, kora deploy

Imports

The kora meta-package re-exports the most commonly used symbols:

typescript
// Most developers only need this
import { createApp, defineSchema, t } from 'korajs'
import { KoraProvider, useQuery, useMutation, useSyncStatus } from '@korajs/react'

For advanced use cases, import directly from the specific package:

typescript
import { HybridLogicalClock, createOperation } from '@korajs/core'
import { Store } from '@korajs/store'
import { MergeEngine } from '@korajs/merge'
import { SyncEngine, WebSocketTransport } from '@korajs/sync'
import { createKoraServer } from '@korajs/server'