Skip to content

feat(seo): four format-conversion intent pages on CapyResize - #102

Merged
unfoldingdimensions merged 1 commit into
mainfrom
feat/format-conversion-intent-pages
Oct 9, 2026
Merged

unfoldingdimensions merged 1 commit into
mainfrom
feat/format-conversion-intent-pages

Conversation

@unfoldingdimensions

Copy link
Copy Markdown
Owner

Adds /png-to-jpg, /webp-to-png, /jpg-to-png, /compress-image — each an INTENT_PAGES row opening CapyResize on a preset (D21 amended, D48).

Page Opens with Google / mo Bing / 12 wk
/png-to-jpg initialFormat="jpeg" 1M–10M 166,421
/webp-to-png initialFormat="png" 100K–1M 115,317
/jpg-to-png initialFormat="png" 100K–1M 103,129
/compress-image initialFormat="jpeg", initialQuality={0.7} 100K–1M 82,678
  • CapyResize: new initialQuality prop (default 0.85, unchanged) replaces the hard-coded useState(0.85).
  • /compress-image uses JPEG, not WebP: every browser writes JPEG; a browser that can't encode WebP silently returns PNG — the opposite of compressing. The copy names WebP as the one-click alternative and explains the fallback.
  • Claims checked against code: JPEG fill is the "Flatten onto" picker, default white (not sampled); before = dropped file size, after = encoded blob size; PNG has no quality slider.
  • CONTENT_UPDATED was already 2026-10-09 — nothing to bump.
  • scripts/smoke.mjs PAGES updated; decisions.md D48, learning.md L37.

Verified

  • vitest 92 files / 2024 tests pass; npm run lint 0 errors; next typegen && tsc --noEmit clean.
  • Dev server: each page's <title>, canonical and guide (+ FAQPage JSON-LD) are in the server HTML; correct format pre-selected.
  • Real conversions in the browser: PNG(alpha)→JPG gave image/jpeg, transparent corner = white, 111 kB → 41 kB; WebP(alpha)→PNG gave image/png, corner alpha 0 kept, 35 kB → 330 kB (larger); JPG→PNG gave image/png, 57 kB → 555 kB (881% larger); compress-image opened at quality 0.70, JPG 105 kB → 27 kB (74% smaller).
  • Not exercised: the WebP→PNG fallback (Chrome encodes WebP) — code-read only.

🤖 Generated with Claude Code

… pages (D48, L37)

Four CapyResize presets for the highest-volume conversion searches we served
but had no page for. CapyResize gains an initialQuality prop (default 0.85,
unchanged); /compress-image starts at 0.70 on JPEG.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@unfoldingdimensions
unfoldingdimensions merged commit 4639e3e into main Oct 9, 2026
3 checks passed
@unfoldingdimensions
unfoldingdimensions deleted the feat/format-conversion-intent-pages branch October 9, 2026 09:57
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