Skip to content

feat: voice prompt generator landing page#125

Merged
wavekat-eason merged 5 commits into
mainfrom
feat/voice-prompts-landing
Jul 18, 2026
Merged

feat: voice prompt generator landing page#125
wavekat-eason merged 5 commits into
mainfrom
feat/voice-prompts-landing

Conversation

@wavekat-eason

@wavekat-eason wavekat-eason commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a public, SEO/GEO-tuned landing page for the free phone-menu & IVR voice generator shipped in wavekat-platform#161. The page markets the tool and hands off to the live app at platform.wavekat.com/voice/prompts. Fully translated into all 9 shipping locales.

  • New page src/pages/voice/prompts.astro at /voice/prompts/ (mirrors the tool's own path). Uses the plain Base chrome, not the WaveKat-Voice sub-nav — the generator is a separate product from the desktop app that owns /voice/.
    • <h1> targets the "free IVR / phone menu voice generator" queries; self-contained intro + a 6-item Q&A for answer-engine extraction.
    • Sections: what you can make (greetings, IVR menus, voicemail, after-hours, on-hold) · why use it · how it works · CTA.
    • One Q&A explicitly disambiguates the generator from WaveKat Voice the app (entity clarity for AI answers).
    • WebApplication + FAQPage JSON-LD; WebApplication.url points at the live tool, matching the platform's own declaration.
  • i18n — the page is translated into all eight non-default locales (zh-Hans, zh-Hant, ja, ko, de, es, fr, it), mirroring the English page section-for-section. /voice/prompts/ is registered in the shared fullSite route list, so hreflang, sitemap alternates, and the language switcher all light up automatically. Localized pages pin the JSON-LD to the live app, add inLanguage, and use locale-prefixed internal links.
  • Homepage — a "Free tool" band linking to /voice/prompts/ is added to the English homepage and mirrored into all eight localized homepages, so the page isn't orphaned (internal link equity + discovery).

Testing

  • astro build ✓ (186 pages)
  • npm run check:links ✓ — no broken or leaking internal links across all locales
  • Verified per-locale canonicals, translated <title>, inLanguage in both JSON-LD blocks, locale-prefixed FAQ links, and hreflang/sitemap alternates in the built output.

🤖 Generated with Claude Code

Add a standalone SEO/GEO landing page at /voice/prompts/ for the free
phone-menu & IVR voice generator (wavekat-platform #161), and a homepage
"Free tool" band linking to it so it isn't orphaned.

The page markets the tool and hands off to the live app at
platform.wavekat.com/voice/prompts. It uses the plain Base chrome rather
than the WaveKat Voice sub-nav, since the generator is a separate product
from the desktop app that owns /voice/. Carries WebApplication + FAQPage
JSON-LD; self-contained intro and Q&A for answer-engine extraction.

English-only for now (no hreflang emitted until translated).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

wavekat-eason and others added 4 commits July 17, 2026 22:09
Localize the /voice/prompts/ landing page into all eight non-default
locales (zh-Hans, zh-Hant, ja, ko, de, es, fr, it), mirroring the English
page section-for-section with translated body copy, localized JSON-LD
(url pinned to the live app, inLanguage per locale), and locale-prefixed
internal links. Register /voice/prompts/ in the shared fullSite route
list so hreflang, sitemap alternates, and the language switcher light up.
Mirror the homepage "Free tool" band into each localized homepage.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The homepage "Free tool" band was one card-wide link to the landing
page, while its button read "Try it free" — implying it opened the tool.
Split it into two explicit actions: a primary "Try it free" that opens
the live tool (platform.wavekat.com/voice/prompts) and a secondary
"Learn more" to the landing page (/voice/prompts/). This matches the
button's promise and keeps the homepage → landing-page internal link for
SEO. Applied across all nine locales.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rework the homepage "Free tool" band so the secondary action lives in
the copy instead of as a stacked button. The card now leads with one
bold primary CTA ("Try it free" → the live tool) and an inline orange
"Learn more about the generator" link under the paragraph → the landing
page (/voice/prompts/), preserving the homepage → landing-page internal
link. Each locale's inline link reuses that page's own word for
"generator". Applied across all nine locales.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace inline #ff6d00 hex and arbitrary [#ff6d00] classes on the
voice-prompt generator landing page (and its 8 translations) with the
wk-orange design token, matching the buttons that already used it. Color
and alpha values are byte-exact — border-wk-orange/25 → #ff6d0040 and
bg-wk-orange/[0.08] → #ff6d0014 — so there's no visual change; only the
subtle to-[#ffa14d] gradient stop stays arbitrary (no token exists).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@wavekat-eason
wavekat-eason merged commit 570887d into main Jul 18, 2026
2 checks passed
@wavekat-eason
wavekat-eason deleted the feat/voice-prompts-landing branch July 18, 2026 00:58
wavekat-eason pushed a commit that referenced this pull request Jul 18, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.0.45](wavekat-com-v0.0.44...wavekat-com-v0.0.45)
(2026-07-18)


### Features

* voice prompt generator landing page
([#125](#125))
([570887d](570887d))

---
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>
wavekat-eason added a commit that referenced this pull request Jul 19, 2026
## Summary

Announces the free **phone menu & IVR voice prompt generator** (the tool
behind [`/voice/prompts/`](https://wavekat.com/voice/prompts/), shipped
in #125) as a blog post, **in all nine locales**. Posts are live on
merge.

- **New post** `phone-menu-ivr-voice-generator` — self-contained intro,
the problem (record yourself / hire talent / generic TTS all fall
short), an extractable table of the five prompt types, why telephony
formats matter (8 kHz µ-law / WAV / MP3 → Asterisk, FreePBX, 3CX,
Twilio), 3-step how-it-works, and a 5-question FAQ (auto-extracted into
`FAQPage` JSON-LD). One FAQ disambiguates the generator from WaveKat
Voice the app, mirroring the landing page.
- **Translations** in all eight non-default locales, mirroring the
English post section-for-section, using each locale's established
terminology from its `voice/prompts.astro` landing page and its existing
blog tag names. Internal links are locale-prefixed.
- **Localized screenshots** — new shared scene `voice-prompts`
(`public/screenshots/voice-prompts/<code>.webp`, all nine languages)
captured by a new scene in wavekat-platform's screenshot pipeline
(wavekat/wavekat-platform#169); registered in
`scripts/sync-screenshots.js`. Each post embeds its own language's shot.
- **Opt-in image shadow** — new `rehypeImageFlags` markdown plugin:
writing `#shadow` on an image URL adds an `img-shadow` class (hairline
border + soft shadow, light/dark variants) for bare browser captures
that would otherwise melt into the page. Per-image on purpose: the
framed desktop-app screenshots already ship a real window shadow.

## Testing

- `make build` ✓ (195 pages — all nine posts present in a normal,
non-draft build)
- `npm run check:links` ✓ — no broken or leaking internal links across
all locales
- `npm run check:screenshots` ✓ — full nine-language set present for
every scene
- Verified `FAQPage` + `BlogPosting` JSON-LD, the localized screenshot,
and the `img-shadow` class in every locale's built post; sitemap
hreflang alternates (9 URLs) and RSS entry present; visually checked the
shadow in light and dark themes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01MHmpJKWnmdmhBtcxBFQDFN

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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