Problem
Taking screenshots for the website/marketing requires mock data (fake contacts like "Sarah Chen"), but the live app's Google Messages connection immediately syncs real messages over any mock DB swap. This makes the process fragile and has caused issues (stuck processes, DB corruption, real data leaking into screenshots).
Proposed solution
Add a --mock or --demo flag to openmessage serve that:
- Copies
site/seed-demo.sql into a temporary DB (not the real one)
- Disables the Google Messages sync connection so mock data persists
- Serves the web UI from the temp DB on the normal port
This would allow one-shot screenshot workflows:
openmessage serve --demo &
sleep 2
screencapture -l <window_id> screenshot.png
kill %1
Current workaround
Use existing pre-captured mock screenshots (site/screenshot-light.png etc.) and composite them with Pillow. Works but is brittle and doesn't capture the real macOS window chrome.
Files involved
site/seed-demo.sql — existing mock data seed
internal/app/app.go — data dir resolution
cmd/serve.go — serve command entry point
Problem
Taking screenshots for the website/marketing requires mock data (fake contacts like "Sarah Chen"), but the live app's Google Messages connection immediately syncs real messages over any mock DB swap. This makes the process fragile and has caused issues (stuck processes, DB corruption, real data leaking into screenshots).
Proposed solution
Add a
--mockor--demoflag toopenmessage servethat:site/seed-demo.sqlinto a temporary DB (not the real one)This would allow one-shot screenshot workflows:
Current workaround
Use existing pre-captured mock screenshots (
site/screenshot-light.pngetc.) and composite them with Pillow. Works but is brittle and doesn't capture the real macOS window chrome.Files involved
site/seed-demo.sql— existing mock data seedinternal/app/app.go— data dir resolutioncmd/serve.go— serve command entry point