So I built MarkdownManager: a self-hosted Markdown viewer + editor written in plain PHP. Notes are just *.md files on disk. If the project disappears tomorrow, your notes are still there, readable by any editor.
What it does - index.php: browse + read notes in the directory tree - edit.php: edit notes with a live HTML preview - desktop: 3-pane layout (file list / Markdown / preview) - mobile: 2-row layout (Markdown + preview) with a toggleable file-list overlay
How to try it (no signup) Repo: <REPO_URL> Demo (optional): <DEMO_URL> (if you have one; ideally read-only)
Local run: 1) git clone <REPO_URL> 2) cd markdownmanager 3) php -S 127.0.0.1:8000 4) open http://127.0.0.1:8000/index.php
What’s different (and why I bothered) - Flat-file by design: no database, no migration story, no lock-in - Fast browsing rules that match how I name notes: - newest-first when filenames start with yy-mm-dd- - otherwise A→Z - folders grouped A→Z - client-side filtering - Editor UX that stays simple: - server-rendered preview (POST current text, get HTML back) - SPA-like navigation in the editor (fetch JSON with markdown + rendered HTML + extracted title; update URL with history.pushState) - resizable panes on desktop (saved in localStorage) - unsaved-changes indicator + discard prompt - Optional “shortcuts” list via links.csv - “Secret notes” list (secret_mds.txt) behind a lightweight session password gate (not encryption)
Technical notes - PHP 8+ (uses str_starts_with/str_ends_with) - Markdown rendering is a small custom PHP parser supporting a practical subset (headings, emphasis, links, fenced code blocks, tables, lists, etc.). If you need full Markdown or images, you’ll probably want to swap the parser for a library.
Security note (please read before you roast it) This is intended for personal/self-hosted use. There’s no user management, no per-note ACL, no encryption. “Secret notes” is just a session flag + password. Don’t expose it directly to the public internet. Run it on localhost, on a LAN/VPN, and/or behind reverse-proxy auth.
I’d love feedback on: - whether the server-rendered preview + JSON navigation approach feels sane in 2025 - sharp edges in the markdown subset - security gotchas in the “flat file + PHP” approach - UI/UX annoyances (especially on mobile)