Foam
T

Principles

Table of Contents

Foam enables you to do your best thinking

  • Foam works for you, you don't work for Foam. You should be able to focus on your work and not fight against Foam, or having to perform fiddly operations or maintenance jobs to keep Foam happy.
  • Foam is not a package deal. You must be able to adopt only the parts of Foam that you want. There must be no tight coupling between Foam's features.
  • Foam is a starting point You must be able to customise how foam looks and feels, and combine it with other tools you find helpful in your personal workflow.
  • Foam is not a philosophy. Whether you use a methodology like Zettelkasten is up to you. You should be able to use Foam without joining a cult.

Foam wants you to own your thoughts

  • Foam doesn't want your data. You can store your documents wherever you want. Some of Foam's suggested workflows include GitHub, if you don't want to use it to store your data, or you want to stop using it in the future, you should be able to migrate to alternative storage options. If you choose to not upload your notes to any cloud service or remote repository, remember to keep frequent local and occasional offsite backups of your data!
  • Foam should not lock you in. Foam's content files, structure and metadata should be in interoperable format that supports migrating it to another tool if you prefer to. Users of Foam should be able to develop and share such tools freely.
  • Foam should not leak your secrets. Nobody, including the developers of Foam, should have access to your personal knowledge graph unless you choose to give it to them. Foams should always be private by default, but easy to share if you choose to.

Foam helps you share your thoughts with the world.

This principle may seem like it contradicts Foam wants you to own your thoughts, but it's actually a compatible corollary. You should be able to do both, because:

[...] environments that build walls around good ideas tend to be less innovative in the long run than more open-ended environments. Good ideas may not want to be free, but they do want to connect, fuse, recombine. —Steven Johnson, Where Good Ideas Come From

  • Foam should make it easy to publish your knowledge graph. With zero code, you should be able to make your graph public to the world. You should have full control over how it looks, feels, and where it's hosted.
  • Foam should make it easy to collaborate on ideas. Foam should allow you to work closely together with your collaborators, and accept feedback, input and improvements from others.
  • Foam should make it easy to publish what you choose. Foam should double as a low-barrier blog/publishing platform, so you can share content to an audience without inviting them to intrude on your entire workspace.

Foam allows people to collaborate in discovering better ways to work, together.

  • Foam is a collection of ideas. Foam was released to the public not to share the few good ideas in it, but to learn many good ideas from others. As you improve your own workflow, share your work on your own Foam blog.
  • Foam is open for contributions. If you use a tool or workflow that you like that fits these principles, please contribute them back to the Foam template as [[recipes]], [[recommended-extensions]] or documentation in this workspace. See also: [[contribution-guide]].
  • Foam is open source. Feel free to fork it, improve it and remix it. Just don't sell it, as per our license.
  • Foam is not Roam. This project was inspired by Roam Research, but we're not limited by what Roam does. No idea is too big (though if it doesn't fit with Foam's core workflow, we might make it a [[recipes]] page instead).

Foam is for hackers, not only for programmers

While Foam uses tools popular among computer programmers, Foam should be inclusive of everyone who wants to improve their own workflow to improve themselves.

  • Foam embraces the hacker mindset. The target audience for Foam are people who look for creative ways to improve their ability to collect and organise information.
  • Foam is not just for programmers. If you're a programmer, feel free to write scripts and extensions to support your own workflow, and publish them for others to use, but the out of the box Foam experience should not require you to know how to do so. You should, however, be curious and open to adopting new tools that are unfamiliar to you, and evaluate whether they could work for you.
  • Foam is for everyone As a foam user, you support everyone's quest for knowledge and self-improvement, not only your own, or folks' who look like you. All participants in Foam repositories, discussion forums, physical and virtual meeting spaces etc are expected to respect each other as described in our [[code-of-conduct]]. Foam is not for toxic tech bros.
Show Graph Visualisation