whatisgithub

What is foam?

foambubble/foam — explained in plain English

Analysis updated 2026-06-24

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

In one sentence

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

What do people build with it?

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.

What is it built with?

TypeScriptVS Code

How does it compare?

foambubble/foamclauderic/dnd-kitsindresorhus/type-fest
Stars17,11717,10917,132
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyeasyeasyeasy
Complexity2/53/52/5
Audiencegeneraldeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get 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.

So what is it?

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?

Frequently asked questions

What is foam?

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.

What language is foam written in?

Mainly TypeScript. The stack also includes TypeScript, VS Code.

How hard is foam to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is foam for?

Mainly general.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.