Plainva 0.2.0: crash-safe by construction
This one was supposed to be 0.1.3. Then two GitHub issues arrived — the first real user reports since launch — and I decided to pair fixing them with something I’d been circling for a while: a deep hardening pass over everything that touches your files. It grew into a proper feature release, so it ships as Plainva 0.2.0.
Your notes can no longer be half-written
The core of this release is invisible when it works: every note write is atomic now. Plainva writes to a temporary file, forces it to disk, and only then swaps it into place — on desktop and in the Android test builds. A crash, a full disk or a dropped network share can interrupt a save, but it can never again leave a torn, half-written note behind.
And for the seconds between keystroke and save, there’s now a draft journal: while you type, Plainva keeps journaling the unsaved buffer. Kill the process mid-sentence — I did, many times, on purpose — and reopening the note offers to restore exactly what you had. Restoring is a normal edit, so undo works.
Two issues, both shipped
A macOS user reported that Print / Save as PDF did nothing. It turned out the macOS WebView silently ignores the standard print call that Windows and Linux happily execute — so the menu item was genuinely dead on every Mac. 0.2.0 goes through a native macOS print path instead, which also brings PDF export along, since macOS puts Save as PDF right in the print dialog.
The same conversations asked for more control over reading comfort, and that’s fair — we are not all young with 20/20 vision, as the issue put it. So: content font size (12–24 px) and content font family (presets or any installed font) that scale just your notes, plus an interface zoom (80–150 %, Cmd/Ctrl +/−/0) that scales everything. There’s also Export as Markdown… and two new palette commands for creating templates.
If you’ve been on the fence about reporting something: two issues shaped a good part of this release. It works.
Sync that behaves under pressure
The sync engine learned manners for bad days: rate limits (HTTP 429) are respected with proper backoff across all five providers, token refreshes no longer stampede when requests race each other, and rotated OneDrive/Dropbox tokens are safely persisted before anything continues. First syncs of a cloud vault got faster too — downloads now run a few files in parallel within a strict memory budget, while everything that writes stays in order.
Settings you can find things in
The settings dialog had grown one feature at a time and it showed. It’s now organized as two worlds: app-wide areas (Appearance, Editor & notes, Startup & behavior, Updates, About & diagnostics) and per-vault areas (Sync, Content & structure, Backup & version history, Maintenance) — with a dropdown to pick the vault instead of one nav row per vault. Nothing was removed; things just live where you’d look for them now. And the daily-notes and template folders finally have a folder picker that browses your vault, instead of making you type a path.
Smaller things worth a mention: a focus mode command that collapses both sidebars and restores them on the second call, the vault map’s filters tucked into a compact popover, and a local performance metrics panel under About & diagnostics — median/p95 timings of indexing, search and typing latency, exportable as JSON, never leaving your machine.
If you’re on 0.1.x, the built-in updater will offer 0.2.0; otherwise it’s on the releases page. Your vaults and .base files are untouched — no format changes, ever, that’s the point of plain files.
- Download: Windows, macOS & Linux
- Feedback: GitHub Discussions or an issue — I read everything.
— Marco