On this page

A Zettelkasten is a network of short, densely linked notes. Most static site generators treat it as a special case. Wire treats it as a content site with different rules: the same philosophy that drives all of Wire's supported use cases, from blogs to knowledge bases to landing page sites. Override the rules that conflict with short notes, keep the 88 that enforce quality.

The Problem with PKM Tools

The personal knowledge management space has consolidated around Markdown-based, locally stored systems. Obsidian dominates the Zettelkasten workflow in 2026, with bidirectional [[double bracket]] linking and graph visualization as its defining features over Notion (collaboration-first) and plain Markdown files (portability-first), according to a March 2026 technical comparison at dasroot.net.

The problem is not the format. It is the absence of enforcement. Obsidian Publish costs $8/month and gives you a proprietary renderer. Digital garden tools like Quartz or Foam generate static sites but enforce nothing. Your Zettelkasten grows to 500 notes and half of them have broken links, no citations, and titles that say "Untitled 47." Nobody catches it because these tools have no build gates. The garden becomes a junkyard.

The Zettelkasten method requires atomic notes (one idea per note), dense linking (every note connects to 3-5 others), and citation trails (where did this idea come from). Most tools support the format. None enforce the method.

Vendor lock-in compounds the problem. Matthew C. Anderson, a practitioner who cycled through OneNote, Evernote, and Notion before settling on Obsidian, documented his 2026 migration with a direct observation: "Most tools in this space force a trade-off: simplicity in exchange for vendor lock-in. Obsidian lets me push toward more advanced workflows without giving up control of my data." Users who invest heavily in a proprietary format eventually hit a portability wall. Plain Markdown files stored locally eliminate that wall entirely, and they are exactly the format Wire operates on.

How Wire Fits

Wire's build gates enforce exactly what the Zettelkasten method requires. Link validation checks every internal link at build time. Broken links trigger BUILD REFUSED, keeping your link network intact. Citation enforcement works through _style.md, which prepends to every prompt and teaches the AI to add inline citations for factual claims. The crosslink command adds internal links between related notes automatically, reading the full site directory and connecting notes that reference the same concepts. Wire also generates search_index.json so you can search your Zettelkasten on the published site.

Anderson's framing applies directly: "There's something deeply reassuring about being able to view, read, and edit your notes in any text editor. It makes the system feel safe and durable." Wire is a workflow layer on top of that durability. The notes stay with you. The pipeline enforces quality.

What to Customize

Override Thin Content

Zettelkasten notes are short by design. Wire's default thin content threshold is 200 words. A good Zettel is 100-300 words. You have two options.

Override per-page in frontmatter:

_overruled:
  - RULE-38

Or write a section styleguide that instructs the AI to write denser notes. 200 words of substance passes RULE-38 without overrides. 200 words of fluff does not. The rule measures word count, but the real fix is density.

Prompt Overrides

Create docs/zettelkasten/_styleguide.md to teach the AI your conventions: atomic notes with one idea per page stated in the title, 3-5 internal links per note (the Zettelkasten linking standard), at least one external citation per note, and paragraphs kept to 2-3 sentences. Zettelkasten notes are not essays.

Create docs/zettelkasten/_content_create.md to enforce structure: the title states the claim, the body provides evidence, links connect to related notes. No "Introduction" or "Conclusion" sections. A Zettel is a single thought. Use frontmatter tags for topic clusters.

wire.yml

A Zettelkasten is not hierarchical, so use a flat nav structure:

nav:
  - index.md
  - Notes:
    - Overview: notes/index.md

Individual notes live as docs/notes/atomic-note-title/index.md. The index page uses :::recent 100 to show all notes by creation date. Navigation happens through links, not menus.

Components

Use :::cards on the index page for a visual grid instead of a list. Use :::tabs to organize notes by tag cluster on overview pages.

What Wire Gives You

Full-text search via search_index.json. An llms.txt file that lets AI assistants consume your entire Zettelkasten. RSS feed for new notes. Sitemap for search engines. JSON-LD Article schema on every note. All internal links validated on every build.

The llms.txt output is worth noting separately. A Zettelkasten built on plain Markdown is already in the format AI tools can consume directly. Wire structures and validates that content so it is machine-readable without additional processing. This is the same architecture described in the Replace RAG with Static Content use case: a Wire site as a structured knowledge source for AI agents, without building a retrieval pipeline from scratch.

Limitations

Wire does not support [[wikilinks]] syntax. Use standard markdown links: Note Title. Wire does not render backlinks automatically (showing "notes that link to this note"). You can build this with the search index, but it requires custom JavaScript. Wire does not support graph visualization of your note network. If graph view is a requirement, Obsidian remains the better local editing environment. Wire handles the publishing and quality enforcement layer on top.

Quick Start

pip install wire

Create wire.yml with a flat notes/ section, then:

## Create your first note
## docs/notes/my-first-idea/index.md

python -m wire.chief create notes/my-first-idea
python -m wire.chief crosslink notes
python -m wire.build --serve

The crosslink step is what separates a Wire-published Zettelkasten from a static site generator output. It reads your full note directory and adds links between notes that reference the same concepts, enforcing the dense linking the method requires without manual curation. See all Wire use cases for more patterns.

For sites with hundreds of notes, run wire.chief audit notes periodically to catch thin content, broken links, and orphaned notes before they accumulate. The Internal Knowledge Base without Wiki Rot use case covers the same enforcement pattern at team scale, if your Zettelkasten is growing into shared documentation.