explaingit

foambubble/foam

17,117TypeScriptAudience · generalComplexity · 2/5Setup · easy

TLDR

Foam is a personal knowledge management system for VS Code that turns plain Markdown files into a linked network of notes with backlinks, a graph view, daily notes, and tag explorer, all stored in files you fully own.

Mindmap

mindmap
  root((foam))
    What it does
      Linked Markdown notes
      Graph visualization
      Backlinks panel
      Daily notes
    Features
      Wikilinks
      Tag explorer
      Note templates
      Orphan detection
    Storage
      Plain Markdown files
      GitHub repository
      GitHub Pages publish
    Audience
      Researchers
      Writers
      Developers
      PMs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build a personal Zettelkasten or second-brain note system in VS Code where ideas link to each other and you can browse a visual graph of connections.

USE CASE 2

Keep a developer wiki or project journal as linked Markdown files on GitHub, browsable both in VS Code and directly on github.com.

USE CASE 3

Publish a collection of linked notes as a public website using GitHub Pages, with no extra tooling beyond VS Code and Foam.

USE CASE 4

Use daily notes and custom templates to build a personal diary or meeting-notes system that links back to topic notes automatically.

Tech stack

TypeScriptVS Code

Getting it running

Difficulty · easy Time to first run · 30min

Requires VS Code and installing the recommended extension pack from the foam-template, the project is still alpha-grade.

In plain English

Foam is a personal knowledge management system that lives inside Visual Studio Code. The basic idea is to keep all your notes as plain Markdown files in a folder you own, typically a GitHub repository, and use Foam to turn that pile of files into a connected, browsable network of ideas. It is built for people who want a second brain or Zettelkasten-style note system, while staying in plain files they fully control. You write each thought as a small Markdown document and link notes to each other using wiki-style double-bracket links such as wikilink or wikilink with alias. Foam adds editor features on top of that, including link autocompletion, automatic link updates when you rename a file, a graph visualization showing how your notes connect, a backlinks panel showing what links into the current note, a tag explorer with hierarchical tags, daily notes, custom note templates, embedding the contents of one note into another, and dedicated panels for orphan notes (no links in or out) and placeholders (links pointing at notes that do not exist yet). Because everything is just Markdown in a folder, the same notes also render and navigate on GitHub itself, and you can publish them with GitHub Pages if you want a public site. To get started, you create a workspace from the official foam-template GitHub repo, open it in VS Code, and install the recommended extensions. The codebase is TypeScript and ships as a VS Code extension. The README warns the project is still alpha-grade work in progress.

Copy-paste prompts

Prompt 1
I just cloned the foam-template repo and opened it in VS Code. How do I create my first linked note, connect it to another note with a wikilink, and see the connection in the graph view?
Prompt 2
Show me how to set up hierarchical tags in Foam so I can browse all notes tagged project/work in the tag explorer panel.
Prompt 3
How do I create a daily note template in Foam that automatically includes a link to yesterday's note and a section for tasks and meetings?
Prompt 4
I want to publish my Foam notes as a public website on GitHub Pages. What steps do I follow after setting up the foam-template?
Prompt 5
How do I find all orphan notes in Foam, notes with no links in or out, and quickly connect them to relevant existing notes?
Open on GitHub → Explain another repo

← foambubble on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.