Offline by Default
Every code path works without a network connection. Connectivity enables sync, it never gates functionality. Built for the real world, where networks fail.
The offline-first framework. Local SQLite storage, automatic conflict resolution, and multi-device sync, with zero distributed-systems code.

No boilerplate, no sync plumbing, no distributed-systems reading list. Scaffold, run, and you have an app with local persistence, reactive queries, and an optional sync server.
npx create-kora-app my-app
cd my-app
npm run devYour data layer is just a schema. Everything else is inferred:
import { createApp, defineSchema, t } from 'korajs'
const app = createApp({
schema: defineSchema({
version: 1,
collections: {
todos: {
fields: {
title: t.string(),
completed: t.boolean().default(false),
createdAt: t.timestamp().auto(),
},
},
},
}),
sync: { url: 'wss://your-server.com/kora' }, // optional: one line for multi-device sync
})
await app.ready
await app.todos.insert({ title: 'Works on a plane' })
app.todos
.where({ completed: false })
.orderBy('createdAt')
.subscribe((todos) => render(todos)) // reactive: fires now and on every changeKora treats offline as the normal state, not the error state. Writes land in local SQLite instantly and queue durably, surviving page refreshes. When a connection appears, sync sends compact binary deltas of only the operations the other side is missing, in causal order, and resumes from the last acknowledgment if the connection drops mid-sync. Concurrent edits from different devices converge deterministically through a merge engine whose every decision can be inspected in DevTools.
That makes Kora a fit wherever connectivity is expensive, intermittent, or hostile: field data collection, point of sale, clinics, warehouses, and any app whose users ride elevators, board planes, or live beyond reliable coverage.