flatnotes is a self-hosted note-taking web app that keeps every note as a plain markdown file in one flat folder — there is no database at all. You run a small container, point it at a directory, and it serves a clean browser interface over those files: create, edit, search and tag notes, with the markdown remaining the single source of truth on disk.
The project is written in Python (Flask) and uses Whoosh for its search index, which is rebuilt incrementally on every search and on startup. That means you can add, edit or delete markdown files directly in the folder — with the app running — and it will pick the changes up. Notes are never held hostage in a proprietary format: move the folder elsewhere and any other editor can read it.
.md files in a flat directory; attachments sit alongside them and the only cached state is the search index./ shortcut opens search from any screen, covering note titles and bodies, with filtering by tag.#tags for organisation and [[Note title]] links between notes, resolved without a folder hierarchy.dullage/flatnotes on Docker Hub for amd64 and arm, with a documented set of environment variables and a single /data volume to back up.Most note apps ask you to trust their database and their export button. flatnotes inverts that: the files on disk are the product, and the web interface is just a convenient way to edit them. Backups become a folder copy, migration becomes a folder move, and you can keep using your own editor, sync tool or Git repository on the same markdown files while flatnotes serves them to a browser. Because there is no notebook hierarchy to design, the whole thing stays small enough to run on a Raspberry Pi and simple enough to explain to someone else in a minute.
MIT — verified in the project’s LICENSE file (Copyright (c) 2021 Adam Dullage). Website: flatnotes.io · Source: github.com/dullage/flatnotes · Demo: demo.flatnotes.io
Browse more free and open source tools in the directory.