alternative · 01

a Roam Research
alternative,
honestly.

A note-taking tool for networked thought — bi-directional links, daily notes, block references.

license · Proprietary, paid · runtime · Cloud + Electron desktop wrapper
credit where credit is due

what Roam Research got right.

We're not here to bash. Roam Research earned its users by nailing things outl stands on the shoulders of.

  • Block-level addressability with ((uid)) references — copy a thought once, see it everywhere.
  • Daily notes that anchor everything to a date by default.
  • [[Wiki-links]] with automatic backlinks made the graph navigable.
  • The UX of an outliner where every bullet is a first-class node.
where it breaks

where it breaks for an outliner power-user.

01

Your data lives on their servers.

Workspaces are stored in a central Roam database. Export gives you JSON. The moment Roam decides to throttle, raise prices, change export format, or shut down, your notes are stranded. Local-first is not on the roadmap.

02

No real offline merge.

Two devices edit the same block while disconnected? The one that reconnects last wins. The other device's changes silently vanish — no conflict surfaced, no merge prompt, no history of what was lost. "Sync" is just last-write.

03

Closed source, paid subscription.

You can't read the code. You can't host it. You can't fork it if the company pivots. You pay a recurring fee to write your own notes.

04

No interop with other markdown tools.

There's no .md on disk to open in VS Code, Obsidian or grep. The format is JSON in their database; export is a one-way street.

the scenario Roam Research loses

you edit on a flight.

with roam research

You write 200 blocks on your laptop offline. Your phone has the same workspace open, you tap a single block to fix a typo. When you land, both devices try to sync. Roam's server sees two write streams. The newer wall-clock timestamp wins — and on a phone with a slightly drifted clock, that's often the laptop's 200-block session getting partially overwritten. There's no UI for it. You find out 3 days later when you can't find a block.

with outl

outl's tree-CRDT (Kleppmann 2022) sorts both edit streams by HLC, applies them deterministically, and converges to the same tree on both devices — with no data loss and no server in the middle.

head to head

Roam Research vs outl

feature Roam Research outl
open source MIT
ships as a native binary ✕ electron ✓ rust
clean markdown (no UUIDs) n/a (no .md)
tree-CRDT sync (provably correct) ✓ algorithm · sync transport phase 2
code blocks that execute (5 langs) ✓ python, lisp, js, lua, rust
TUI / terminal editor ✓ vim keys + slash commands
migrating today

coming from Roam Research?
one command.

import
$ outl import roam ~/backup.json ~/notes