feat(blog): show the app in the command-line post (Ubuntu-framed, localized)#101
Merged
Conversation
Contributor
…alized) The "place calls from the command line" post described screens no reader could see. Embed three real, localized app screenshots — one per section that needs one, not one per section: - in-call → "What it actually does" (a placed call, live transcript, you on the line). - settings-automation → "There's nothing to install" (the command-line-access toggle on, the Install-CLI button). - settings-automation-agents → "Connect an AI assistant in one click" (the one-click Connect rows for Claude, Cursor, …) — the shot mirrors the assistant table right above it. They use wavekat-voice's Ubuntu/GNOME-framed pipeline output directly (real window chrome, not a CSS frame — we're a Mac + Linux product), one consistent light theme, but per-language: each localized post shows the app in its own language. Assets live in a shared, reusable namespace — public/screenshots/<scene>/<code>.webp (so in-call is one file any page can reference, not a per-post copy) — committed (the private renderer isn't on Cloudflare Pages) and synced by scripts/sync-screenshots.js (make screenshots / npm run sync:screenshots; check:screenshots asserts completeness), ~1.1 MB of WebP. The settings-automation* scenes are added to wavekat-voice in a companion PR. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
wavekat-eason
force-pushed
the
feat/cli-blog-screenshots
branch
from
June 22, 2026 09:36
a58fef3 to
99c6fea
Compare
Contributor
Author
|
Companion PR (the Settings → Automation demo scenes): wavekat/wavekat-voice#232. |
The translated "place calls from the command line" posts left WaveKat
Voice's UI labels in English ("Settings → Automation", "Connect",
"Remove", "Install command-line tool") while the screenshot beside them
shows the app fully in that language — so the prose and the picture
disagreed.
Use each locale's real label, taken verbatim from the app's
translation.json, with the English original in parentheses on the first
mention of each label (localized-only after) so the docs link and
English-mode users still have an anchor. CJK uses full-width ().
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two classes of bad internal links in the blog posts: - **Broken:** every locale of the command-line post linked to `/voice/automation/`, which doesn't exist. The automation reference is the synced voice doc at `/docs/voice/automation/` — point there (it's English-only, so the same URL for every locale). - **Locale leak:** the translated posts linked to default-locale URLs (`/blog/hello-world`, `/voice/download/`), bouncing readers out of their language. Prefix those with the locale where a localized twin exists; the common-voice-explorer translations had the same leak to `/blog/hello-world`. Add `scripts/check-links.js` (`npm run check:links`) to stop this shipping again. Run against the built `dist/`, it fails on (1) any broken internal link and (2) any localized page linking to a default-locale URL whose localized twin exists. Both facts come from `dist/` itself and locale slugs from `i18n.ts`, so there's no parallel route list to drift; the switcher's intentional English self-link is excluded. Wired into CI right after the build (docs synced), and documented in CLAUDE.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
wavekat-eason
pushed a commit
that referenced
this pull request
Jun 22, 2026
🤖 I have created a release *beep* *boop* --- ## [0.0.36](wavekat-com-v0.0.35...wavekat-com-v0.0.36) (2026-06-22) ### Features * **blog:** show the app in the command-line post (Ubuntu-framed, localized) ([#101](#101)) ([21ef963](21ef963)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The "Let Your AI Assistant Place Real Phone Calls" post described screens no reader could see. This embeds three real, localized app screenshots — one for each section that genuinely needs one, not one per section:
in-callsettings-automationsettings-automation-agentsDecisions
screenshots/framed/ubuntu/…output — real GNOME window chrome, not a CSS frame. We're a Mac + Linux product./blog/cli/<scene>/<code>.webp), all 9 locales.public/blog/cli/as WebP (~1.1 MB). Refresh withmake blog-screenshots;npm run check:blog-screenshotsasserts completeness.The two
settings-automation*scenes are added to wavekat-voice in a companion PR (the agents one is the same page scrolled to the assistants section). This supersedes the earlier site-wide screenshot attempt in #100, which is being closed.Verify
astro buildclean (113 pages); the 27 WebPs land indist/blog/cli/.🤖 Generated with Claude Code