# Foam πŸ‘€*This is an early stage project under rapid development. For updates join the [Foam community Discord](https://foambubble.github.io/join-discord/g)! πŸ’¬* [![All Contributors](https://img.shields.io/badge/all_contributors-117-orange.svg?style=flat-square)](#contributors-) [![Visual Studio Marketplace Installs](https://img.shields.io/visual-studio-marketplace/i/foam.foam-vscode?label=VS%20Code%20Installs)](https://marketplace.visualstudio.com/items?itemName=foam.foam-vscode) [![Discord Chat](https://img.shields.io/discord/729975036148056075?color=748AD9&label=discord%20chat&style=flat-square)](https://foambubble.github.io/join-discord/g) **Foam** is a personal knowledge management and sharing system inspired by [Roam Research](https://roamresearch.com/), built on [Visual Studio Code](https://code.visualstudio.com/) and [GitHub](https://github.com/). 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. ## Features ### Graph Visualization See how your notes are connected via a [graph](https://foambubble.github.io/foam/user/features/graph-visualization) with the `Foam: Show Graph` command. ![Graph Visualization](./assets/screenshots/feature-show-graph.gif) ### Link Autocompletion Foam helps you create the connections between your notes, and your placeholders as well. ![Link Autocompletion](./assets/screenshots/feature-link-autocompletion.gif) ### Sync links on file rename Foam updates the links to renamed files, so your notes stay consistent. ![Sync links on file rename](./assets/screenshots/feature-link-sync.gif) ### Unique identifiers across directories Foam supports files with the same name in multiple directories. It will use the minimum identifier required, and even report and help you fix existing ambiguous wikilinks. ![Unique identifier autocompletion](./assets/screenshots/feature-unique-wikilink-completion.gif) ![Wikilink diagnostic](./assets/screenshots/feature-wikilink-diagnostics.gif) ### Link Preview and Navigation ![Link Preview and Navigation](./assets/screenshots/feature-navigation.gif) ### Go to definition, Peek References See where a note is being referenced in your knowledge base. ![Go to Definition, Peek References](./assets/screenshots/feature-definition-references.gif) ### Navigation in Preview Navigate your rendered notes in the VS Code preview panel. ![Navigation in Preview](./assets/screenshots/feature-preview-navigation.gif) ### Note embed Embed the content from other notes. ![Note Embed](./assets/screenshots/feature-note-embed.gif) ### Support for sections Foam supports autocompletion, navigation, embedding and diagnostics for note sections. Just use the standard wiki syntax of `[[resource#Section Title]]`. ### Link Alias Foam supports link aliasing, so you can have a `[[wikilink]]`, or a `[[wikilink|alias]]`. ### Templates Use [custom templates](https://foambubble.github.io/foam/user/features/note-templates) to have avoid repetitve work on your notes. ![Templates](./assets/screenshots/feature-templates.gif) ### Backlinks Panel Quickly check which notes are referencing the currently active note. See for each occurrence the context in which it lives, as well as a preview of the note. ![Backlinks Panel](./assets/screenshots/feature-backlinks-panel.gif) ### Tag Explorer Panel Tag your notes and navigate them with the [Tag Explorer](https://foambubble.github.io/foam/user/features/tags). Foam also supports hierarchical tags. ![Tag Explorer Panel](./assets/screenshots/feature-tags-panel.gif) ### Orphans and Placeholder Panels Orphans are notes that have no inbound nor outbound links. Placeholders are dangling links, or notes without content. Keep them under control, and your knowledge base in a better state, by using this panel. ![Orphans and Placeholder Panels](./assets/screenshots/feature-placeholder-orphan-panel.gif) ### Syntax highlight Foam highlights wikilinks and placeholder differently, to help you visualize your knowledge base. ![Syntax Highlight](./assets/screenshots/feature-syntax-highlight.png) ### Daily note Create a journal with [daily notes](https://foambubble.github.io/foam/user/features/daily-notes). ![Daily Note](./assets/screenshots/feature-daily-note.gif) ### Generate references for your wikilinks Create markdown [references](https://foambubble.github.io/foam/user/features/link-reference-definitions) for `[[wikilinks]]`, to use your notes in a non-Foam workspace. With references you can also make your notes navigable both in GitHub UI as well as GitHub Pages. ![Generate references](./assets/screenshots/feature-definitions-generation.gif) ### Commands - Explore your knowledge base with the `Foam: Open Random Note` command - Access your daily note with the `Foam: Open Daily Note` command - Create a new note with the `Foam: Create New Note` command - This becomes very powerful when combined with [note templates](https://foambubble.github.io/foam/user/features/note-templates) and the `Foam: Create New Note from Template` command - See your workspace as a connected graph with the `Foam: Show Graph` command ## Recipes People use Foam in different ways for different use cases, check out the [recipes](https://foambubble.github.io/foam/user/recipes/recipes) page for inspiration! ## Getting started Whether you want to build a [Second Brain](https://www.buildingasecondbrain.com/) or a [Zettelkasten](https://zettelkasten.de/posts/overview/), 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](https://zettelkasten.de/posts/overview/#principles)) 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 the [[Graph Visualisation]], and discover relationships between your thoughts with the use of [[Backlinking]]. You can also use our Foam template: 1. Log in on your GitHub account. 2. [Create a GitHub repository from foam-template](https://github.com/foambubble/foam-template/generate). If you want to keep your thoughts to yourself, remember to set the repository private. 3. Clone the repository and open it in VS Code. 4. When prompted to install recommended extensions, click **Install all** (or **Show Recommendations** if you want to review and install them one by one). This will also install `Foam`, but if you already have it installed, that's ok, just make sure you're up to date on the latest version. ## Requirements High tolerance for alpha-grade software. Foam is still a Work in Progress. Rest assured it will never lock you in, nor compromise your files, but sometimes some features might break ;) ## Known Issues See the [issues](https://github.com/foambubble/foam/issues/) on our GitHub repo ;) ## Release Notes See the [CHANGELOG](./packages/foam-vscode/CHANGELOG.md). ## Learn more **Head over to the πŸ‘‰[Published version of this Foam workspace](https://foambubble.github.io/foam#whats-in-a-foam)** to see Foam in action and read the rest of the documentation! Quick links to next documentation sections - [What's in a Foam?](https://foambubble.github.io/foam#whats-in-a-foam) - [Getting started](https://foambubble.github.io/foam#getting-started) - [Features](https://foambubble.github.io/foam#features) - [Call To Adventure](https://foambubble.github.io/foam#call-to-adventure) - [Thanks and attribution](https://foambubble.github.io/foam#thanks-and-attribution) You can also browse the [docs folder](https://github.com/foambubble/foam/tree/master/docs). ## License Foam is licensed under the [MIT license](LICENSE). [//begin]: # "Autogenerated link references for markdown compatibility" [Backlinking]: docs/user/features/backlinking.md "Backlinking" [//end]: # "Autogenerated link references" ## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
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

πŸ’»
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!