# Roadmap

Some of these items can be achieved by combining existing tools, but others may require us to build bespoke software solutions. See [[build-vs-assemble]] to understand trade-offs between these approaches. If a feature can be implemented by contributing to [[recipes]], it should.

## In progress

Items that are already being worked on. Roadmap items in this stage should have an owner.

- [@jevakallio](https://github.com/jevakallio): [[cli]]

## High priority

Items we plan on working next. Items in this stage don't need to have an owner, but before we start working on them should have enough specification that they can be picked up and worked on without having to seek consensus.

If you want to pick up work in this category, you should have a plan on how long the implementation will approximately take so we don't block progress by sitting on high priority issues.

- [[workspace-janitor]]
  
## Backlog

Everything else, categorised into themes. Just because something is on this list doesn't mean it'll get done. If you're interested in working on items in this category, check the [[contribution-guide]] for how to get started.

If a roadmap item is a stub, **consider** opening a [GitHub issue](https://github.com/foambubble/foam/issues) to start a conversation to avoid situations where the implementation does not fit long term vision and roadmap. _Note that this is optional. The only centralised governance in Foam is to decide what ends up in the official [template](https://github.com/foambubble/foam-template), [documentation](https://github.com/foambubble/foam) and [extension](https://github.com/foambubble/foam/tree/master/packages/foam-vscode). You are free to build whatever you want for yourself, and we'd love if you shared it with us, but you are by no means obligated to do so!_

**When creating GitHub issues to discuss roadmap items, link them here.**

### Known issues

- [[improve-default-workspace-settings]]
- Improve [[git-integration]]
- Fix [[wiki-links]] compatibility issues
- Simplify [[foam-file-format]]

### Core features

- [[renaming-files]]
- [[unlinked-references]]
- [[block-references]]
- [[improved-backlinking]]
  - UX: [[make-backlinks-more-prominent]]
- [[materialized-backlinks]]
- [[automatic-git-syncing]]
- [[git-flows-for-teams]]
- [[user-settings]]
- [[link-reference-definitions]]
- [[predefined-user-snippets]]

### Publishing

- [[officially-support-alternative-templates]]
- [[improved-static-site-generation]]
- [[mdx-by-default]]
- [[search-in-published-workspace]]
- [[graph-in-published-workspace]]
  - Discussion: [foam#58](https://github.com/foambubble/foam/issues/58)
- [[linking-between-published-workspaces]]
  - Discussion: [foam#59](https://github.com/foambubble/foam/issues/59)
- [[publishing-permissions]]

### Platforms

- [[cli]]
- [[mobile-apps]]
- [[packaged-desktop-app]]
- [[web-editor]]

### Migration

The community is working on a number of automated scripts to help you migrate to Foam. The main work of developing such a method involves exporting your notes, converting them to the Markdown format, and then making sure that the links between notes (if you had those) still work.

- [[migrating-from-roam]]
  - Discussion: [foam#55](https://github.com/foambubble/foam/issues/55)
- [[migrating-from-obsidian]]
  - Discussion: [foam#46](https://github.com/foambubble/foam/issues/46)
- [[migrating-from-onenote]]
  - Discussion: [foam#151](https://github.com/foambubble/foam/issues/151)
- _Migration from other tools..._

### Integration

- _Integrations to third party tools_...
  
### Wild ideas

- [[foam-linter]]
- [[refactoring-via-language-server-protocol]]

[//begin]: # "Autogenerated link references for markdown compatibility"
[build-vs-assemble]: build-vs-assemble "Build vs Assemble"
[recipes]: recipes "Recipes"
[cli]: cli "Command Line Interface"
[workspace-janitor]: workspace-janitor "Janitor"
[contribution-guide]: contribution-guide "Contribution Guide"
[improve-default-workspace-settings]: improve-default-workspace-settings "Improve Default Workspace Settings (stub)"
[git-integration]: git-integration "Git integration"
[wiki-links]: wiki-links "Wiki Links"
[foam-file-format]: foam-file-format "Foam File Format"
[renaming-files]: renaming-files "Renaming files (stub)"
[unlinked-references]: unlinked-references "Unlinked references (stub)"
[block-references]: block-references "Block References (stub)"
[improved-backlinking]: improved-backlinking "Improved Backlinking (stub)"
[make-backlinks-more-prominent]: make-backlinks-more-prominent "Make Backlinks More Prominent"
[materialized-backlinks]: materialized-backlinks "Materialized Backlinks (stub)"
[automatic-git-syncing]: automatic-git-syncing "Automatic Git Syncing (stub)"
[git-flows-for-teams]: git-flows-for-teams "Git Flows for Teams (stub)"
[user-settings]: user-settings "User Settings (stub)"
[link-reference-definitions]: link-reference-definitions "Link Reference Definitions"
[predefined-user-snippets]: predefined-user-snippets "Pre-defined User Snippets"
[officially-support-alternative-templates]: officially-support-alternative-templates "Officially Support Alternative Templates (stub)"
[improved-static-site-generation]: improved-static-site-generation "Improved Static Site Generation (stub)"
[mdx-by-default]: mdx-by-default "MDX by Default(stub)"
[search-in-published-workspace]: search-in-published-workspace "Search in Published Workspace (stub)"
[graph-in-published-workspace]: graph-in-published-workspace "Graph in Published Workspace (stub)"
[linking-between-published-workspaces]: linking-between-published-workspaces "Linking between Published Workspaces (stub)"
[publishing-permissions]: publishing-permissions "Publishing Permissions(stub)"
[mobile-apps]: mobile-apps "Mobile Apps"
[packaged-desktop-app]: packaged-desktop-app "Packaged Desktop App (stub)"
[web-editor]: web-editor "Web Editor (stub)"
[migrating-from-roam]: migrating-from-roam "Migrating from Roam (stub)"
[migrating-from-obsidian]: migrating-from-obsidian "Migrating from Obsidian (stub)"
[migrating-from-onenote]: migrating-from-onenote "Migrating from OneNote"
[foam-linter]: foam-linter "Foam Linter (stub)"
[refactoring-via-language-server-protocol]: refactoring-via-language-server-protocol "Refactoring via Language Server Protocol (stub)"
[//end]: # "Autogenerated link references"
