"Cinder went native because Photoshop forced it. Bonfire has no such gun to its head — so it stays on the web, on purpose."
Let the Forcing Function Decide
Cinder is a native Tauri app, and that wasn't a preference — it was forced. To live next to Photoshop and read its pixels, Cinder needed a native shell and a WSS bridge. Photoshop was the forcing function. The right question for Bonfire isn't 'web or native, which is cooler?' but 'is there a forcing function pushing it native?' And the answer is no. Nothing about Bonfire requires a native shell.
Why Web Is the Right Default Here
Without a forcing function, the web stack wins on its own merits for this app:
- The Pippa Sidekick binds naturally on the web stack — Cinder needed a WSS bridge precisely because it was native; Bonfire doesn't.
- Tailscale gives fleet-wide access from any device with no install.
- Iteration is fast — HMR reflects an edit instantly, with no rebuild.
Web's real weaknesses — low-latency live monitoring, OS-level residency — are genuine, but they're out of v1 scope. You don't pay for weaknesses you won't exercise.
And It's Reversible
The decision is low-stakes precisely because it can be undone. Konva runs as react-konva on the web today; if native freedom ever becomes essential, that same react-konva front can be wrapped in a Tauri shell later — the canvas code comes along. So this isn't a one-way door you agonize over. It's the cheap default (web) held until a real forcing function (a need web genuinely can't meet) shows up. Reversible decisions deserve fast, light commitments; agonizing over them is its own kind of waste.