Foam

Foam is a personal knowledge management and sharing system inspired by Roam Research, built on Visual Studio Code and GitHub.

You can use Foam for organising your research, keeping re-discoverable notes, writing long-form content and, optionally, publishing it to the web.

Foam is free, open source, and extremely extensible to suit your personal workflow. You own the information you create with Foam, and you’re free to share it, and collaborate on it with anyone you want.

New! Join Foam community Discord for users and contributors!

Star Use this template

Table of Contents

How do I use Foam?

Foam is a tool that supports creating relationships between thoughts and information to help you think better.

Whether you want to build a Second Brain or a Zettelkasten, write a book, or just get better at long-term learning, Foam can help you organise your thoughts if you follow these simple rules:

  1. Create a single Foam workspace for all your knowledge and research following the Getting started guide.
  2. Write your thoughts in markdown documents (I like to call them Bubbles, but that might be more than a little twee). These documents should be atomic: Put things that belong together into a single document, and limit its content to that single topic. (source)
  3. Use Foam’s shortcuts and autocompletions to link your thoughts together with [[wikilinks]], and navigate between them to explore your knowledge graph.
  4. Get an overview of your Foam workspace using a [graph-visualization] (⚠️ WIP), and discover relationships between your thoughts with the use of [backlinking].

Foam is a like a bathtub: What you get out of it depends on what you put into it.

What’s in a Foam?

Like the soapy suds it’s named after, Foam is mostly air.

  1. The editing experience of Foam is powered by VS Code, enhanced by workspace settings that glue together [recommended-extensions] and preferences optimised for writing and navigating information.
  2. To back up, collaborate on and share your content between devices, Foam pairs well with GitHub.
  3. To publish your content, you can set it up to publish to GitHub Pages, or to any website hosting platform like Netlify or Vercel.

Fun fact: This documentation was researched, written and published using Foam.

Getting started

⚠️ Foam is still in preview. Expect the experience to be a little rough.

These instructions assume you have a GitHub account, and you have Visual Studio Code installed.

  1. Use the foam-template project to generate a new repository. If you’re logged into GitHub, you can just hit this button:

    Use this template

    If you want to keep your thoughts to yourself, remember to set the repository private, or if you don’t want to use GitHub to host your workspace at all, choose Download as ZIP instead of Use this template.

  2. Clone the repository locally and open it in VS Code.

    Open the repository as a folder using the File > Open... menu item. In VS Code, “open workspace” refers to multi-root workspaces.

  3. When prompted to install recommended extensions, click Install all (or Show Recommendations if you want to review and install them one by one)

After setting up the repository, open .vscode/settings.json and edit, add or remove any settings you’d like for your Foam workspace.

To learn more about how to use Foam, read the [recipes].

Getting stuck in the setup? Read the [frequently-asked-questions].

Check our issues on GitHub if you get stuck on something, and create a new one if something doesn’t seem right!

Features

Foam doesn’t have features in the traditional sense. Out of the box, you have access to all features of VS Code and all the [recommended-extensions] you choose to install, but it’s up to you to discover what you can do with it!

Short video of Foam in use

Head over to [recipes] for some useful patterns and ideas!

Call To Adventure

The goal of Foam is to be your personal companion on your quest for knowledge.

It’s currently about “10% ready” relative to all the features I’ve thought of, but I’ve only thought of ~1% of the features it could have, and I’m excited to learn from others.

I am using it as my personal thinking tool. By making it public, I hope to learn from others not only how to improve Foam, but also to improve how I learn and manage information.

If that sounds like something you’re interested in, I’d love to have you along on the journey.

Thanks and attribution

Jani Eväkallio
Jani Eväkallio

💻 📖
Joe Previte
Joe Previte

💻 📖
Riccardo
Riccardo

💻 📖
Janne Ojanaho
Janne Ojanaho

💻 📖
Paul Shen
Paul Shen

📖
coffenbacher
coffenbacher

📖
Mathieu Dutour
Mathieu Dutour

📖
Michael Hansen
Michael Hansen

📖
David Nadlinger
David Nadlinger

📖
Fernando
Fernando

📖
Juan Gonzalez
Juan Gonzalez

📖
Louie Christie
Louie Christie

📖
Sandro
Sandro

📖
Simon Knott
Simon Knott

📖
Steven
Steven

📖
Tim
Tim

📖
Saurav Khdoolia
Saurav Khdoolia

📖
Ankit Tiwari
Ankit Tiwari

📖 ⚠️ 💻
Ayush Baweja
Ayush Baweja

📖
TaiChi-IO
TaiChi-IO

📖
Juan F Gonzalez
Juan F Gonzalez

📖
Sanket Dasgupta
Sanket Dasgupta

📖 💻
Nicholas Stafie
Nicholas Stafie

📖
Francis Hamel
Francis Hamel

💻
digiguru
digiguru

💻 📖
CHIRAG SINGHAL
CHIRAG SINGHAL

💻
Jonathan Carter
Jonathan Carter

📖
Julian Elve
Julian Elve

📖
Thomas Koppelaar
Thomas Koppelaar

💬 💻 📓
Akshay
Akshay

💻
John Lindquist
John Lindquist

📖
Ashwin Ramaswami
Ashwin Ramaswami

📖
Claudio Canales
Claudio Canales

📖
vitaly-pevgonen
vitaly-pevgonen

📖
Dmitry Shemetov
Dmitry Shemetov

📖
hooncp
hooncp

📖
Martin Laws
Martin Laws

📖
Sean K Smith
Sean K Smith

💻
Kevin Neely
Kevin Neely

📖
Arief Rahmansyah
Arief Rahmansyah

📖
Vishesh Handa
Vishesh Handa

📖
Hitesh Kumar
Hitesh Kumar

📖
Spencer Woo
Spencer Woo

📖
ingalless
ingalless

💻 📖
José Duarte
José Duarte

💻 📖
Yenly
Yenly

📖
hikerpig
hikerpig

💻
Sigfried Gold
Sigfried Gold

📖
Tristan Sokol
Tristan Sokol

💻
Danil Rodin
Danil Rodin

📖
Scott Williams
Scott Williams

📖
jackiexiao
jackiexiao

📖
John B Nelson
John B Nelson

📖
Asif Mehedi
Asif Mehedi

📖
Tan Li
Tan Li

💻
Shauna Gordon
Shauna Gordon

📖
Mike Cluck
Mike Cluck

💻
Brandon Pugh
Brandon Pugh

💻
Max Davitt
Max Davitt

📖
Brian Anglin
Brian Anglin

📖
elswork
elswork

📖
léon h
léon h

💻
Nikhil Nygaard
Nikhil Nygaard

📖
Mark Dixon
Mark Dixon

💻
Joel James
Joel James

💻
Hashiguchi Ryo
Hashiguchi Ryo

📖
Michael Overmeyer
Michael Overmeyer

💻
Derrick Qin
Derrick Qin

📖
Omar López
Omar López

📖
Robin King
Robin King

💻
Dheepak
Dheepak

📖
Daniel VG
Daniel VG

📖
Barabas
Barabas

💻
Engincan VESKE
Engincan VESKE

📖
Paul de Raaij
Paul de Raaij

💻
Scott Bronson
Scott Bronson

📖
Rafael Riedel
Rafael Riedel

📖
Pearcekieser
Pearcekieser

📖
Owen Young
Owen Young

📖 🖋
Prashanth Subrahmanyam
Prashanth Subrahmanyam

📖
Jonas SPRENGER
Jonas SPRENGER

💻
Paul
Paul

📖
Ikko Ashimine
Ikko Ashimine

📖
memeplex
memeplex

💻
AndreiD049
AndreiD049

💻
Yan
Yan

📖
Jim Tittsler
Jim Tittsler

📖
Malcolm Mielle
Malcolm Mielle

📖
Veesar
Veesar

📖
bentongxyz
bentongxyz

💻
Brian DeVries
Brian DeVries

💻
Clifford Fajardo
Clifford Fajardo

🔧
Chris Usick
Chris Usick

💻
Joe DeCock
Joe DeCock

💻
Drew Tyler
Drew Tyler

📖
Lauviah0622
Lauviah0622

💻
Josh Dover
Josh Dover

💻
Phil Helm
Phil Helm

📖
Larry Li
Larry Li

💻
Joe Taber
Joe Taber

📖
Woosuk Park
Woosuk Park

📖
Daniel Murphy
Daniel Murphy

💻
Dominic D
Dominic D

💻
luca
luca

📖
Lloyd Jackman
Lloyd Jackman

📖
sn3akiwhizper
sn3akiwhizper

📖
jonathan berger
jonathan berger

📖
Daniel Wang
Daniel Wang

💻
Liu YongLiang
Liu YongLiang

📖
Scott Akerman
Scott Akerman

💻
Jim Graham
Jim Graham

💻
Zhizhen He
Zhizhen He

🔧
Tony Cheneau
Tony Cheneau

📖
Nicholas Latham
Nicholas Latham

💻
Tomochika Hara
Tomochika Hara

📖
Daniel Carosone
Daniel Carosone

📖
Miguel Angel Bruni Montero
Miguel Angel Bruni Montero

💻

Foam was inspired by Roam Research and the Zettelkasten methodology

Foam wouldn’t be possible without Visual Studio Code and GitHub, and relies heavily on our fantastic open source [recommended-extensions] and all their contributors!

License

Foam is licensed under the MIT license.