TL;DR:

  • Obsidian’s local-first, Markdown-based model means your notes are permanent and portable — not locked in a vendor
  • The Dataview plugin turns your notes into a queryable database: pull a list of every ADR, sprint retrospective, or bug post-mortem with a single query
  • Git sync gives you version-controlled notes without paying for Obsidian Sync; works on any device

Obsidian for developers is worth serious attention not because it’s fashionable but because it solves a real problem: engineering knowledge decays. Decisions get made, context gets lost, and the person who knew why something was built a certain way leaves the company. A well-structured Obsidian vault is a hedge against that entropy.

Why Developers Specifically

Most note-taking tools are designed for writing prose. Obsidian’s foundation — plain Markdown files in a local folder — suits developers for specific reasons.

Your notes are files. An Obsidian vault is a folder of .md files. You can open them in any editor, diff them with git, search them with ripgrep, and back them up the same way you back up code. There’s no export process, no API dependency, no risk that a pricing change makes your notes inaccessible. You own the files.

Code blocks are first-class. Fenced code blocks render with syntax highlighting. You can paste a shell script, SQL query, or TypeScript snippet and it renders cleanly. Links between notes let you connect a code pattern note to every architecture decision that references it.

Bidirectional linking scales to a team’s shared context. When you write an ADR (Architecture Decision Record) and link it to the notes about the feature it affects, you build a graph of decisions that’s navigable. Confluence and Notion store this information too, but the linking model in Obsidian makes the connections explicit and bidirectional.

Essential Plugins for Developer Workflows

Dataview is the plugin that changes how you use Obsidian. It treats your vault as a database: you write SQL-like queries in notes and they render as live tables, task lists, or calendar views drawn from metadata across your vault.

TABLE status, date, author
FROM "adrs"
WHERE status = "accepted"
SORT date DESC

This query, embedded in a note, renders a live table of every accepted ADR in your adrs/ folder. Add status: draft to an ADR’s frontmatter and it disappears from the accepted list, appears in the draft list. No manual maintenance.

Templater replaces Obsidian’s basic template system. You define templates with dynamic fields (current date, note title, custom prompts) and trigger them from a hotkey. An ADR template might look like:

---
status: draft
date: <% tp.date.now() %>
author: <% tp.user.name %>
---
## Context
## Decision
## Consequences

One keypress creates a new ADR with all metadata pre-filled.

Obsidian Git syncs your vault to a git repository automatically — configurable interval, with commit messages that include timestamps. You get version history, easy sharing with teammates who clone the repo, and zero monthly fees. This is the right sync solution for most developers.

Organising Architecture Decisions

The ADR pattern fits Obsidian naturally. Each decision gets its own file in an adrs/ folder, linked to the features and systems it affects. Use frontmatter for structured metadata; use prose for context and reasoning that’s too nuanced for a table.

A minimal vault structure for a development team:

vault/
  adrs/           # Architecture Decision Records
  runbooks/       # Operational procedures
  incidents/      # Post-mortems and RCAs
  projects/       # Per-project notes and context
  snippets/       # Reusable code patterns
  people/         # Contact notes, working preferences

The key discipline: every ADR should link to at least one project or system note, and every project note should link to its relevant ADRs. Dataview makes this linkage queryable; Obsidian’s graph view makes it visually navigable.

Obsidian vs Notion vs Confluence

FeatureObsidianNotionConfluence
Data portabilityMarkdown filesExport onlyExport only
Offline accessFullLimitedLimited
Code block supportExcellentGoodAdequate
Real-time collaborationNo (Git sync only)YesYes
SearchFull-text + DataviewFull-textFull-text
Cost (personal)FreeFree tier limited~$5/user/mo
Cost (team)Free + optional sync$8–15/user/mo$5–10/user/mo

Obsidian’s gap is real-time collaboration. Multiple people can’t edit the same note simultaneously the way they can in Notion or Confluence. For team knowledge bases that require active concurrent editing, this is a genuine limitation.

The counter-argument: most engineering documentation doesn’t need real-time collaboration. ADRs, runbooks, and post-mortems are written by one person and reviewed asynchronously. Git’s merge model handles the edge cases.

The Bottom Line

Obsidian is the right choice for developers who want a knowledge base that’s durable, portable, and as queryable as a database with the Dataview plugin. It’s not the right choice for teams that need Google Docs-style real-time collaboration. Set up Git sync, add Dataview and Templater, build your ADR template, and you’ve got a knowledge management system that’ll outlast any SaaS subscription.