Work / Flagship project

Kora.js: apps that work anywhere

An offline-first application framework I built after pharmacies asked for software that works online and offline. It’s one of the most ambitious things I’ve built.

Role

Creator

Since

2026

Status

Open source, in active development

Site

korajs.dev

Why I built it

While I was building Ngoane’s products, pharmacies kept asking for software that worked both online and offline. Not simple sync: networks were unstable, and some pharmacies had several branches that wanted to share one product and one database.

Building that from existing tools and libraries proved very hard. I wondered why there was no simple framework for it, the way Next.js exists for web apps. So I decided to build one, with the help of AI.

Kora.js website hero: "Apps that work anywhere", the offline-first framework with local SQLite storage, conflict resolution and multi-device sync
The Kora.js site at korajs.dev.

What Kora.js does

The whole data plane, handled

  • Offline by defaultEvery code path works without a network. Connectivity enables sync; it never gates functionality.
  • Zero sync codeDefine a schema and build the UI. Storage, conflict resolution and sync are handled.
  • Three-tier merge engineLast-write-wins and CRDTs by default, declarative constraints when rules matter, custom resolvers when needed. Every merge decision is traceable.
  • A real database in the browserSQLite compiled to WebAssembly, persisted with OPFS, running in a worker. IndexedDB and native SQLite adapters included.
  • Type-safe by designTypeScript inference from schema to queries, mutations and hooks. Works with React, Vue and Svelte.
  • Two commands to deploynpx create-kora-app scaffolds an app; kora deploy ships the sync server.

Testing it on real apps

Built with Kora.js

In use · Bozoma Innovation Hub

Bozoma Learn

An offline-first LMS that runs both self-paced and cohort-based programs, built on Kora.js for the Bozoma Innovation Hub model.

learn.bozomainnovationhub.com

Test app · In development

KoraForms

Forms that collect responses without internet. Responses save locally and sync automatically.

forms.korajs.dev

Test app · In development

KoraDocs

Documents you write offline and co-edit when a connection returns, with the local copy as the source of truth.

docs.korajs.dev

KoraDocs editor: a clinic's patient intake protocol saved locally, with a comment thread and a "Working offline" note saying edits stay on the device until sync resumes
KoraDocs: every keystroke saves on the device first, and sync catches up when the network returns.
KoraForms homepage: "Build forms that work anywhere", with responses saved locally and synced automatically
KoraForms: forms that collect responses without internet.

Engineering

  • More than 3,300 automated tests.
  • Sync sends compact binary deltas in causal order and resumes from the last acknowledgment if a connection drops.
  • Merge decisions can be inspected in DevTools.

What I’m learning

Kora.js taught me the power a builder has. I came across a problem people were discussing, felt I had the power to build the solution, and took it on.

I’ve had to learn a lot, and I’m still learning and building. AI has played a tremendous role: coding agents write most of the code, and I’ve learned how to get the most out of any AI coding tool.

Building for unreliable networks?

Try Kora.js, or tell me what you’re building.

Share with