Kring cover
← Work 25 / 51 In progress 2026 Solo product designer · developer

Kring

Local-first writing notebook for source-heavy work. Markdown notes, citation graphs, and long-form drafting in one offline app.

I drafted a long source-heavy document in Google Docs and lost a week to broken citations when the file ballooned past 80 pages. The second draft lived in Obsidian, which fixed the writing but moved the citation graph into a separate Zotero database that did not talk to my notes the way I needed. Kring is the answer I am building for myself: a local-first writing notebook where the markdown, citations, and outline share one SQLite file on my laptop.

The decision I made early was to stop pretending a source-heavy writer is the same user as a software developer. The note model is plain markdown plus a sidecar YAML block for source keys — no frontmatter gymnastics, no plugin manifest. A note knows the papers it cites because the citation row in SQLite says so, not because a wikilink in the body parses correctly. That means the citation graph is queryable without re-rendering the document, and “show me every claim that leans on Folbre 2020” is one SQL call.

Kring citation graph view with paper nodes and claim edges laid out across a dark canvas.
The citation graph. Each node is a source in the bibliography; each edge is a claim in a draft that depends on that source. Orphaned claims surface in red.

The interface is built in Astro with a Tauri shell wrapping the same UI the browser version ships. That means the write path is one TypeScript codebase. The desktop build adds the SQLite handle, file dialogs, and a project picker; the web build runs against an in-memory DB with a JSON export so the project file is portable between the two. The decision to keep SQLite as the source of truth and markdown as a rendered view (not the other way around) is the one I would defend hardest in review.

What is shipped so far: the project file format, the markdown editor with citation autocomplete, the bibliography importer for BibTeX and RIS, and the citation graph view. What is still in flight: PDF annotation import (so highlights from a PDF reader land as claims), the outline-to-chapters compiler for long-form drafting, and the export pipeline that emits a clean DOCX with a real bibliography. My own full-length manuscript is the forcing function — if Kring cannot produce it, the product is not finished.

The next milestone is a private beta of three writers who are also drowning in sources. If it survives two months of long-form drafting without someone reverting to Word, the app is real. If not, the SQLite schema still pays for itself as the citation layer behind my portfolio writing.