Skip to content
Developer Codex
Concepts

Local-First Storage

Your stories stay on your machine. That’s the design choice, not a limitation.

Inklings stores everything locally — page content, structure, tags, types, properties, attachments — in a workspace file that lives in a folder on your computer. No account required to start writing. No internet connection required to keep writing. No service outage that takes your world offline with it.

This guide explains how local-first storage works, what it means for your workflow, and what tradeoffs it involves.

Each workspace in Inklings corresponds to a single SQLite database file (inklings.db) stored in a folder you chose when creating the workspace. Everything for that workspace lives in that file: every page, every block of content, every tag, every type definition, every backlink relationship.

The folder path is visible in workspace settings. If you want to know where your data is, you can navigate there in Finder or Explorer and see the file directly. It’s yours — not a proprietary format locked to a service, not something stored on someone else’s server.

There is no save button. There is no “save dialog.” There is no version of your content that exists only in memory, unsaved, ready to be lost if the app crashes.

Inklings saves continuously as you type. Every edit to every block is written to the local database. Navigate away from a page, close the app, or pull the power cord — your content is as current as your last keystroke. The save indicator in the editor shows “Saved” when the last edit has been written to disk. You don’t need to watch it; it’s there for reassurance.

This isn’t just convenient — it changes the psychological relationship with the tool. You don’t have to think about saving. You don’t have to develop habits around it. You write, and the writing persists.

Block content in Inklings isn’t stored as simple text. It uses a change-tracking format that preserves your full edit history — every edit is recorded as a sequence of operations. You never interact with this directly; it works behind the scenes.

What this means for you:

Undo history persists across sessions. If you make a change, close the app, and open it again tomorrow, you can still undo that change. The undo history is stored in the workspace file, not in application memory. It doesn’t disappear when you quit.

Edit history is granular. The system records the structure of your edits, not just before/after snapshots. This is the foundation for features like the event log, which tracks what happened to your workspace over time.

This is an internal implementation detail — you interact with it through the normal editor, undo/redo, and history features. You don’t need to know the mechanics; you benefit from them.

Inklings provides named bookmarks — timestamped anchors you can create at significant moments in your workspace’s history. Name a bookmark “Before the big restructure” or “Draft 1 complete” and create it at the moment that matters.

Bookmarks are anchors in the event log timeline. The history of your workspace (page creates, edits, deletes, renames) accumulates in an event log. Bookmarks mark points in that log with names you can refer to later.

This is not a file-based checkpoint system. Bookmarks don’t create backup files or duplicate your database. They mark time, not state. But combined with persistent undo history, they give you meaningful waypoints for understanding how your workspace has evolved.

Local-first means you’re responsible for your own backups. Inklings doesn’t automatically sync to a cloud backup service (sync is a separate, opt-in feature). If your drive fails and you haven’t backed up your workspace, that data is gone.

The options available to you:

Time Machine (macOS): If Time Machine is configured, it backs up your workspace database automatically whenever Time Machine runs. This is the lowest-effort backup strategy.

Manual copies: The workspace database is a single file. Copy it to an external drive or cloud storage folder manually at intervals that match your risk tolerance.

Cloud storage folder: Set your workspace’s folder path inside a Dropbox, OneDrive, or iCloud Drive folder. The cloud storage service handles syncing the file to its servers automatically. Be aware that Inklings must not be running while cloud sync is copying the file, as this can corrupt a workspace file mid-write. Most cloud storage services are smart enough to avoid this, but it’s worth knowing.

The honest assessment: local-first puts control in your hands, and control comes with responsibility. Back up your work. The data is yours, which means the responsibility for protecting it is also yours.

Because your workspace is a standard SQLite file, it’s portable. You can copy it to another machine, open it in Inklings there, and continue working. You can share a workspace with a collaborator by copying the database file. You can archive a completed project by moving the folder somewhere safe.

No export step required. No import required on the receiving end. The file is the workspace.

This portability extends to the future. SQLite is one of the most stable and widely deployed database formats in the world. The file format has been stable for decades and is designed to remain readable for decades more. Your worldbuilding notes are not locked to a startup’s continued existence.

Was this page helpful?