Synora

Block-based notes: fast, offline, on mobile and desktop.

Year
2026
Type
Mobile & desktop app
Role
Design & development
Status
In development

6platforms, one codebase

  • Flutter
  • Dart
  • SQLite
  • Firebase
  • WebCrypto

Private source code

Context

Synora starts from a simple idea: the flexibility of Notion, reimagined for a phone. Fast, offline and beautiful by default. Every idea is a block: text, to-dos, code, databases and more.

What I built

One Flutter codebase targeting Android, iOS, Linux, macOS, Windows and the web.

  • Block editor: Markdown shortcuts as you type (# followed by a space becomes a heading), a keyboard-navigable “/” menu that flips above the cursor when space runs out, and a tree of pages and sub-pages.
  • Databases: four native views designed for mobile (table, kanban board, calendar and timeline), with a date column type.
  • Shared workspaces: email invitations, owner, admin, editor and viewer roles, real-time sync.
  • Browser extension (Manifest V3) to create and edit notes from the browser, with no SDK or bundler: only Firebase’s REST API and WebCrypto.

Technical highlights

  • Offline-first: local SQLite storage with schema migrations. Only page metadata loads at startup, blocks load when a page opens, and long pages use virtualized lists.
  • Conflict-free sync: a block-level CRDT (LWW-Element-Set) with fractional-index positions, so offline edits merge cleanly.
  • End-to-end encryption: AES-256, reproduced byte for byte between the Dart app and the WebCrypto extension. A note encrypted on the phone decrypts in the browser, and vice versa.
  • Resilience: every network operation is isolated, so a sync error never breaks local state.
  • Tests: collaborative model serialization, the database schema, the “/” menu, and the CRDT’s merge and reorder math.

What’s next

An AI block is being integrated, backed by a local model through llama.cpp. Synora’s marketing site, built with Astro, is waiting for its demo videos before going live.

Got a similar project? Let's talk.

Start a project