Help Center · Features

Every feature, step by step

A complete tour of everything Ledger does, in plain English with numbered steps. Use the jump list below, or read straight through. Everything here works in the free local tier with no account.

On this page: Doc tree & spaces · Search · Reading a page · Editor & live preview · Wiki-links & backlinks · Links / graph view · Version history, diff & restore · Templates · Tags · Governance · Roles & permissions · Published portals · Import vault · Export · No-secrets posture & the scanner

Doc tree & spaces

The left rail — the "spine" — is your document tree. Pages are grouped into spaces, which are simply their folders. A page's folder comes from its path: a page at Runbooks/Restore Internet.md lives in the Runbooks space. Pages with no folder appear under (root).

To create a space: there's no separate "new folder" action — just give a new page a folder name. Click + New doc, type a title, then type the folder name (e.g. Network); the space is created automatically. Use the same folder name on other pages to add them to the same space.

The search box in the top bar searches as you type across every page. It matches against:

  1. Click the search box (or just start typing) and enter one or more words. All words must match (it's an AND search).
  2. Results replace the tree in the left rail, showing the title, the path, and a snippet of body text with your terms highlighted.
  3. Click a result to open that page.
  4. Clear the box to return to the normal doc tree.

Tip: clicking a tag in the tag cloud runs a search for that tag.

Reading a page

Open a page and you're on the Preview tab by default. You'll see:

The renderer supports: headings (# through ####), bold and italic, inline code and fenced code blocks, tables, ordered and unordered lists, task lists (- [ ] / - [x] render as ☐ / ☑), blockquotes, horizontal rules, ordinary links (open in a new tab), and [[wiki-links]]. Fenced ```mermaid blocks are shown as a code block (they are not executed into a diagram). The renderer escapes HTML, so pasted Markdown can't inject scripts.

Markdown editor & live preview

The Edit tab is a split-pane editor: raw Markdown on the left, live rendered preview on the right that updates as you type. (The Edit tab only appears for roles that can edit — Admin and Editor. See Roles.)

  1. Open a page and click the Edit tab.
  2. Type Markdown in the left pane; watch the right pane update live.
  3. Set the page's tags in the tags box at the bottom (comma-separated).
  4. Save with the Save button or press Ctrl+S (Cmd+S on Mac).

What saving does: it snapshots the previous version into history, writes your new content, and (because the content changed) re-opens approval — an edited page is no longer "approved" until a Reviewer signs off again. The editor footer reminds you that pages are plain Markdown with [[wiki-links]] and Obsidian-compatible YAML frontmatter.

The secret scanner runs on save. If your page looks like it contains a pasted password, key, or seed phrase, Ledger pops a warning and asks you to confirm before saving — see the no-secrets posture.

You can also rename a page: click the title at the top of the page and type a new one (it saves when you click away).

Type [[Page Title]] anywhere in a page body to link to another page. Use [[Page Title|custom text]] to show different link text. Ledger resolves the target against your pages' titles (and against bare filenames, so [[Core Firewall]] matches Assets/Core Firewall.md).

This is fully Obsidian-compatible: the same [[wiki-links]] work in Obsidian, so links and backlinks survive a round-trip in either direction.

The Links tab on any page is the navigable version of Obsidian's graph — "what does this page reference, and what depends on it?"

  1. Open a page and click the Links tab.
  2. → Links out lists the pages this page references (its resolved wiki-links).
  3. ← Backlinks lists the pages that reference this one.
  4. Each entry is a clickable chip — click to jump to that page.
  5. At the bottom is a small vault connectivity summary: the total number of pages and resolved links across your whole KB.

This is the practical answer to "if I change this firewall page, what else might be affected?" — the backlinks tell you what depends on it.

Version history, diff & restore

Every time you save a change, Ledger snapshots the prior version. The History tab lists those snapshots (up to the last 30 per page), newest first.

  1. Open a page and click the History tab.
  2. Each entry shows when that version was saved.
  3. Click View diff to see a line-level comparison between that old version and the current one — added lines are marked +, removed lines -, unchanged lines are shown for context. Click Back to history to return.
  4. Click Restore to roll the page back to that version. The current version is also snapshotted into history first, so a restore is never destructive — you can always undo it by restoring again.

This local history is per-device and lives in your browser. The hosted/cloud tier adds full git history and pull-request review on top; the in-browser history is the always-available baseline.

Templates

Click Templates in the top bar to start a new page from a real IT-doc starter. The six built-in templates are:

TemplateDefault space
Server / VM asset pageAssets
Network / config noteNetwork
Runbook / SOPRunbooks
Credential reference (NO secrets)Runbooks
SaaS / application pageAssets
Onboarding / offboarding procedureRunbooks
  1. Click Templates. A prompt lists the templates with numbers.
  2. Enter the number of the template you want.
  3. Enter a title for the new page.
  4. Ledger creates the page (pre-filled with the template's structure and tags) and drops you into the Edit tab to fill it in.

The Credential reference template deliberately contains no password field — it's structured to link a vault item instead, modelling the no-secrets pattern.

Tags

Tags are short labels for organizing and finding pages across spaces. They live either in the page's frontmatter (tags: asset, firewall) or are set inline in the editor.

Governance: ownership, review status & approval

This is the heart of what Ledger adds over a personal Obsidian vault: it tells you whether a document can be trusted. Each page has a governance bar just under the title.

Governance reads two standard frontmatter fields:

From reviewed_on, Ledger computes a review status:

StatusMeaning
reviewed (fresh)Reviewed within the last 90 days.
needs review (stale)It has a reviewed_on date, but it's more than 90 days old.
never reviewedNo valid reviewed_on date is set.

The governance bar also shows the approval state (approved / unapproved) and offers two role-gated actions:

Together these answer an auditor's real questions: who owns this, when was it last reviewed, and has anyone signed off on the current version?

Roles & permissions

Ledger has five roles. In the free local tier, the role picker in the top bar (🔑 role:) lets you switch which role you're "viewing as" so you can see exactly what each role can and can't do. In the cloud tier, roles are assigned to real people per space and enforced server-side; the local picker demonstrates the same model on one device.

RoleEdit / DeleteMark reviewedApprovePublish portalRead
AdminYesYesYesYesYes
EditorYesYesNoNoYes
ReviewerNoNoYesNoYes
ViewerNoNoNoNoYes
Portal (read-only)NoNoNoNoYes

When you switch to a read-only role (Viewer or Portal), the Edit tab, Delete, Mark-reviewed, Approve, and Publish actions disappear — you can read but not change anything. Switch back to Admin to regain full control.

Note: in the local tier this is a demonstration of the permission model on a single device — switching roles is not a security boundary by itself (anyone at the keyboard can switch back). Real, enforced, per-person, per-space permissions with SSO and an audit trail are the cloud tier.

Read-only published portals

A published portal is a single, self-contained HTML file containing a whole space, rendered read-only. You hand it to an auditor or a non-editor and they open it in any browser — no app, no account, no editing, and no way to change anything.

  1. Make sure your role is Admin (only Admin can publish).
  2. In the left rail, hover the space (folder) header and click Publish ↗.
  3. Ledger generates and downloads an HTML file named like <company>-<space>-portal.html.
  4. Open it to verify, then share the file (email, file share, etc.).

The portal includes: a banner marking it READ-ONLY, a per-page navigation list, each page's rendered Markdown, and review stamps ("Last reviewed … · owner …") where present. It carries no secret material (because Ledger stores none) and has no editing controls. It's a point-in-time snapshot — re-publish to share an updated version.

Import an Obsidian vault

Click Import vault to bring existing Markdown into Ledger. It accepts either:

  1. Click Import vault.
  2. Paste your Markdown into the box.
  3. Click Import. Ledger reports how many pages were added.

Frontmatter, folder paths (which become spaces), tags, and [[wiki-links]] all carry over. Import adds pages — it doesn't wipe what's already there. For a continuous, two-way connection to a folder of files on disk (rather than a one-time paste), use Obsidian vault sync instead.

Export

Your data is always portable — it's just Markdown. Two export options:

There's nothing proprietary to "get out of" — Ledger's source of truth is plain Markdown. Export is also your backup and your exit. See Exporting and leaving.

The no-secrets posture & the save-time scanner

Ledger stores zero passwords or secrets by design. This is a deliberate security stance: a system that holds no credentials can't leak any if it's breached.

The pattern: for each credential, make a credential reference page (there's a template) that links the item in your password manager by URL or ID — for example vault://provider/item-id or a Bitwarden/1Password item link. Never paste the actual password, API key, or seed.

The save-time scanner: when you save a page, Ledger scans it for things that look like pasted secrets — password: …, secret: …, api_key: …, provider keys like sk-…, PEM private-key blocks, and seed-phrase-like strings. If it finds one, it warns you, names what it found, and asks you to confirm before saving. It's a guardrail, not a vault: you can override it, but the intended action is to remove the secret and link a vault item instead.

If your page got flagged but doesn't really contain a secret (e.g. the word "password" appears in a sentence with a colon), you can confirm and save anyway — the scanner is intentionally cautious. See "My secret got flagged".

Related topics