In one line
LocalMD reads and edits Markdown in the browser or a native macOS app. It keeps document processing on the device and makes save behaviour explicit.
Question
Can one Markdown reader support rich rendering, safe editing, and file recovery without sending a document to a server?
What I built
- Built Read, Edit, and Split modes with rich Markdown rendering, local draft recovery, file conflict checks, and byte-preserving saves.
- Moved parsing into a worker and mounted large documents in slices. Documents over 2 MiB open in a read-only fast mode.
- Added a Content Security Policy and a separate remote-media gate. Both controls protect the browser privacy claim.
- Built an Apple Silicon macOS beta with native dialogs, atomic replacement, opaque document handles, and unsaved-change protection.
Main result
- live browser production checks passed
- 25/25
- initial JavaScript, gzipped
- 88.4 KB
- warm 1 MB render on Apple M4
- 1.877 s
Document path
Open locally
Choose a file, drop it, paste text, or start a new document.
Process on device
Parse, sanitize, render, edit, and recover without a document backend.
Save locally
Write to the file where supported, or download the same bytes.
No upload endpoint receives the document. Remote media stays blocked until the reader allows it.
What the work showed
- A worker did not improve performance until the app split result transfer and document mounting into smaller slices.
- The Content Security Policy blocks programmatic network access. The renderer separately blocks remote media until the reader allows it.
- Save behaviour must follow platform capability. Chromium can save in place, while Firefox and Safari download the same bytes.
What it does not prove
- The macOS v0.2.0 build is an unsigned Apple Silicon beta. It is not signed or notarized for standard distribution.
- Web save-in-place requires a supported Chromium browser. Firefox and Safari use a download fallback.
- Relative local assets do not resolve. Browser drafts remain unencrypted and do not replace a backup.
- The recorded performance run used one Apple M4 machine and warm dependencies.
Conclusion
LocalMD treats privacy and file handling as product behaviour, not marketing copy. The browser release is public, while the native app remains a clearly labelled beta.