// the find
akitaonrails/FrankMD
Self-hosted, Simple Markdown Web Editor and Notes Organizer
FrankMD is a self-hosted markdown editor built on Rails 8 that stores notes as plain files on your filesystem — no database. It's aimed at developers who want Obsidian-like features (wikilinks, backlinks, full-text search) without the Electron bloat, deployable via Docker with a single command.
The data safety layer is genuinely well-thought-out: offline detection disables the editor rather than silently losing edits, the 20%/50-char deletion threshold prevents accidental wipes, and the recovery diff on crash is something most editors skip entirely. The test suite is serious — 1,379 JS tests via Vitest and 425 Ruby tests, with a bin/ci script that runs rubocop, brakeman, bundler-audit, and both suites together, which is a higher bar than most open-source tools this size. Rails 8 with Turbo Streams is a good fit here: server-rendered file tree updates stay consistent without a separate API layer. Hugo integration (frontmatter templates, YouTube shortcodes, date-based directory structure) is practical for developers who actually blog.
It's a single-user app with no auth — the README punts to Cloudflare Tunnel + Access for multi-user or remote access, which is fine but means you're fully on your own for security. The AI credential isolation rule (any .fed key overrides all ENV vars for that folder) is a footgun waiting to happen: someone sets one Ollama key in .fed to test locally and silently loses all their production ENV-based provider config. The 455 MB memory footprint (340 MB just for the browser tab) undermines the 'lightweight self-hosted' pitch — you're basically running Electron minus the packaging. Search is regex-based file scanning with no index, so it'll get slow well before you hit a few thousand notes.