docs: script to take README/docs screenshots on mock data #43

Merged
jfro merged 2 commits from docs-screenshots into main 2026-10-18 13:37:14 +00:00
Owner

Adds scripts/screenshots/run.sh, which takes the README and docs screenshots of the app running on mock data, so they can be taken again whenever the UI changes.

scripts/screenshots/run.sh                # every shot
scripts/screenshots/run.sh library chat   # only these

How it works

  • Runs the app in dev on port 4100 with its own database (rm_analyzer_screenshots, dropped each run) and a data folder under tmp/screenshots, so the dev library is never touched.
  • A fake reMarkable cloud (lib/fake_cloud.exs, served through Req's :plug) feeds a mock library to the real sync: folders, notebooks in generated handwriting (Hershey script font, seeded so pages come out the same every run), a typed page, a typed mirror and an annotated PDF printed by Chromium. Writes are refused.
  • Seeds what the AI features would have made (transcriptions, sorting and tag suggestions, chats with a drafted page), plus API keys and backups. Nothing calls an AI; printed text extraction and one real backup do run.
  • Playwright signs in with the dev login and saves 18 shots (desktop and mobile) at 2x to docs/screenshots/.

What the notebooks say is in lib/library.exs, and the shot list is in capture.mjs. See scripts/screenshots/README.md.

Also: .formatter.exs now covers scripts/**/*.exs, and the script's node_modules is ignored.

The README now embeds the library screenshot near the top and links to the others in one short paragraph. The 18 PNGs come to about 4 MB.

Adds `scripts/screenshots/run.sh`, which takes the README and docs screenshots of the app running on mock data, so they can be taken again whenever the UI changes. ```sh scripts/screenshots/run.sh # every shot scripts/screenshots/run.sh library chat # only these ``` ## How it works - Runs the app in dev on port 4100 with its own database (`rm_analyzer_screenshots`, dropped each run) and a data folder under `tmp/screenshots`, so the dev library is never touched. - A fake reMarkable cloud (`lib/fake_cloud.exs`, served through Req's `:plug`) feeds a mock library to the real sync: folders, notebooks in generated handwriting (Hershey script font, seeded so pages come out the same every run), a typed page, a typed mirror and an annotated PDF printed by Chromium. Writes are refused. - Seeds what the AI features would have made (transcriptions, sorting and tag suggestions, chats with a drafted page), plus API keys and backups. Nothing calls an AI; printed text extraction and one real backup do run. - Playwright signs in with the dev login and saves 18 shots (desktop and mobile) at 2x to `docs/screenshots/`. What the notebooks say is in `lib/library.exs`, and the shot list is in `capture.mjs`. See `scripts/screenshots/README.md`. Also: `.formatter.exs` now covers `scripts/**/*.exs`, and the script's `node_modules` is ignored. The README now embeds the library screenshot near the top and links to the others in one short paragraph. The 18 PNGs come to about 4 MB.
docs: a script that takes the README and docs screenshots on mock data
All checks were successful
CI / test (pull_request) Successful in 1m12s
7d291df267
scripts/screenshots/run.sh runs the app on a database and data folder of
its own, syncing a mock library from a fake reMarkable cloud (notebooks in
generated handwriting, a typed mirror, an annotated PDF), seeds what the AI
features would have made, and photographs each page with Playwright into
docs/screenshots.
docs: the library's screenshot at the top of the README, and links to the rest
All checks were successful
CI / test (pull_request) Successful in 1m12s
53d4639a0a
jfro merged commit b890926457 into main 2026-10-18 13:37:14 +00:00
jfro deleted branch docs-screenshots 2026-10-18 13:37:14 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jfro/rm-analyzer!43
No description provided.