avelino/outl

Git-backed storage backend with native time-travel

Open

#1 aberto em 24 de mai. de 2026

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Rust (1 fork)github user discovery
help wantedroadmap

Métricas do repositório

Stars
 (10 stars)
Métricas de merge de PR
 (Métricas PR pendentes)

Description

What we want

A storage backend for outl where every change to a workspace becomes part of an addressable, navigable history — not just a write-ahead log.

The default sqlite backend is correct and boring. It works. But it treats history as a stream of ops, not as something users can browse, branch from, or roll back to.

Why this matters

Outliner users routinely want to ask questions the current backend can't answer well:

  • "What did this page look like a month ago, before I rewrote the section?"
  • "Show me what changed in this workspace last week."
  • "Let me try a big restructure in a branch I can throw away if it doesn't work."
  • "Audit who changed what, when."

Roam Research charges for version history as a paid tier. Logseq has no first-class history. We can make this a built-in, free, better feature — but only if the storage layer treats history as the primary data model.

What success looks like

  • A user opens any page and asks for its state at any past timestamp; outl reconstructs it.
  • A user runs outl branch try-refactor, makes changes, and either merges or discards them.
  • A user runs outl log and sees a navigable history of the workspace.
  • Existing workspaces migrate cleanly from sqlite to the new backend without losing data.
  • Performance for normal day-to-day use is indistinguishable from sqlite.

Out of scope (for now)

  • Distributed sync — that's the iroh-based peer sync, tracked separately.
  • A web UI for browsing history — focus is the data model and CLI/TUI first.

Notes

The Storage trait in outl-core is intentionally designed so this backend can be added without touching the CRDT or markdown layers — a parallel implementation, not a refactor.

Guia do colaborador