CASE STUDY · Jomnota

Jomnota

A team wiki that works offline and syncs notes directly between devices without a central server.

Kind Rumahdigital Lab
Package Rumah
Role Design & build
Stack
NuxtNodeIrohSQLiteDocker Compose

The problem

Our team wiki lived in Git. People wrote useful notes but often forgot to push them, so other developers could not see the update. Over time, implementation details and working practices moved back into private notes and people’s memory.

We built Jomnota in one day to test a narrow idea: would the wiki stay current if saving a note was the only required step?

Requirements

  • Save and edit notes without a network connection.
  • Sync across changing networks without relying on fixed IP addresses.
  • Avoid a central application server.
  • Keep the note format simple enough for a one-day prototype.

What we built

Jomnota is a Nuxt client backed by a local Node/Nitro service and SQLite database. Each device stores its own notes. When another paired device is reachable, Iroh syncs changes directly between them.

Pairing uses a ticket copied from one device to another. Notes use last-write-wins conflict handling based on updatedAt, while deleted notes are retained as tombstones so the deletion can sync. Server-sent events update the interface when remote changes arrive.

The app runs as one Docker Compose service, with its .data directory stored in a named volume.

Technical choices

  • Local database, thin browser client. The browser talks to a Node service on the same device. SQLite remains available when the internet is not.
  • Device identity instead of IP address. Iroh can reconnect peers after a laptop moves between home, mobile and public networks.
  • Flat notes. A note has a title and body. There are no folders or markup in this prototype.

Result

Saving locally removed the step the team kept missing. Notes now sync whenever a paired device becomes reachable, with no separate push command.

Jomnota remains a small prototype, not a product. We have not measured onboarding time or tested it with a large team, so we do not make claims about either.

← Back to case studies

HAVE A PROJECT?

Tell us what you need built.