Skip to content

One-click full page: express default, store packaging, rating funnel, more locales - #4

Merged
PGHQdev merged 7 commits into
mainfrom
p0-one-click
Aug 31, 2026
Merged

One-click full page: express default, store packaging, rating funnel, more locales#4
PGHQdev merged 7 commits into
mainfrom
p0-one-click

Conversation

@PGHQdev

@PGHQdev PGHQdev commented Aug 31, 2026

Copy link
Copy Markdown
Owner

Implements P0 of the 2026-08-31 positioning brief: the toolbar click is the product, the listing sells one click plus auditability.

What changed

P0.1 — toolbar click = full page capture

  • expressMode defaults to true. A one-shot migration (migrateExpressDefault) flips existing installs once; a user who turns it back off stays off.
  • Toolbar click starts a full-page capture (existing pipeline, progress badge, captureAction honored). Setting off restores the popup picker.
  • The icon's right-click menu now carries Full page / Visible / Region / Settings next to the express checkbox; the page right-click menu gains a Settings item. Both Settings items open the popup page in a tab on its settings pane (?settings=1).
  • One dismissible editor note after the migration, shown once.
  • Settings label reworded in plain language; en shortened to keep the row on one line (reflow smoke).

P0.2 / P0.3 — listing

  • extName → "Full Page Screenshot - OpenScreenShot" pattern in all 11 full locales; extDesc → the one-click / open source / private line.
  • store/STORE_LISTING.md (new) carries the paste-ready title, short and detailed description.

P0.4 — gallery

  • Five 1280×800 billboard PNGs in store/screenshots/ (huge type on saturated fields), rendered by npm run shots via scripts/shots/slide-*.html.

P0.5 / section 11 — rating funnel

  • Welcome page on fresh install only (tall colorful article; the extension's own pages are now capturable so the first one-click works on it).
  • Always-visible Rate star in the editor header.
  • One non-blocking prompt after 3 successful exports/copies, once per install, no network call.
  • setUninstallURLopenscreenshot.app/uninstall?v=<version>&hl=<locale> (nothing else). New Astro page site/src/pages/[...lang]/uninstall/; feedback goes out by the visitor's own mail client. PRIVACY.md documents it.

P0.6 — locales

  • Background capture errors now come from the catalog (translated in all 11 full locales).
  • 8 new second-tier locales (ar, es_419, hi, id, nl, pl, tr, vi): store listing, mode labels, express strings, rating surfaces, first-capture errors; Chrome falls back to en for the rest. locales.test.ts enforces both tiers.

Deviations from the brief

  • P0.7 (icon) skipped — brief marks it "only if time"; the tile matters more.
  • The prompt body drops "Four reviews looks like nobody uses this" (goes stale in shipped strings) for "It takes 30 seconds."
  • Record is not in the context menus yet: starting a recording needs the tabCapture grant flow that lives in the popup. It stays reachable via popup (express off), shortcuts, and the recorder page. Follow-up if wanted.

Checks

  • 1217 unit tests, typecheck, lint, build green. Editor, a11y, and reflow smokes pass. New tests: express default, migration, toolbar-click branching, menu surfaces, rating gating, partial-locale tier.

Not in this change (P2)

  • No consumer paid plan; capture, annotate, blur, crop, PDF stay free.
  • No enterprise stub, no paywall. Ko-fi stays.
  • Product Hunt / Show HN / roundup pitches are founder tasks.

Human checklist (Chrome Web Store dashboard)

  1. Paste title, short and detailed description from store/STORE_LISTING.md.
  2. Upload the five slides from store/screenshots/ in order, replacing the UI screenshots.
  3. Confirm privacy declarations still say no data collected.
  4. Submit for review. After it is live: clean-profile install, time click-icon-to-full-page — a picker appearing means P0.1 failed.
  5. Verify uninstalling a store build opens openscreenshot.app/uninstall (deploy the site first).

🤖 Generated with Claude Code

One-shot migration flips existing installs once; the settings toggle,
icon menu checkbox, and new Settings menu items keep the picker one
gesture away. Icon right-click now offers all three capture modes.
One-time editor note tells upgraded users what changed.
extName/extDesc in all 11 locales lead with the natural full-page-
screenshot phrase; store/STORE_LISTING.md carries the paste-ready
dashboard copy.
slide-1..5.html render through the shots pipeline into
store/screenshots/ as 1280x800 PNGs — huge type on saturated fields,
per the search-tile brief. Re-rendered store media from the current
build.
…tall URL

Fresh installs open a bundled welcome page built for the first
one-click capture (the extension's own pages are now capturable).
The editor header carries an always-visible Rate control; one
non-blocking prompt appears after three successful exports/copies
and never again. setUninstallURL points at /uninstall with version
and locale only; PRIVACY.md documents it.
Localized route with English fallback; no analytics, no cookies. Send
opens the visitor's own mail client; only the extension version rides
along.
Background error toasts now read the catalog (11 full locales get
translated err* strings). New partial catalogs — ar, es_419, hi, id,
nl, pl, tr, vi — carry the store listing, mode labels, express-mode
strings, the rating surfaces, and first-capture errors; Chrome falls
back to en for the rest. locales.test enforces the two tiers.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
openscreenshot 35d30b2 Commit Preview URL

Branch Preview URL
Aug 31 2026, 12:51 PM

@PGHQdev
PGHQdev merged commit f09acab into main Aug 31, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant