Skip to content

docs: lead with onepin positioning tagline and enrich pypi/github seo metadata#58

Merged
kj-podonos merged 1 commit into
mainfrom
kj-podonos/onepin-seo-geo-prep
Jun 19, 2026
Merged

docs: lead with onepin positioning tagline and enrich pypi/github seo metadata#58
kj-podonos merged 1 commit into
mainfrom
kj-podonos/onepin-seo-geo-prep

Conversation

@kj-podonos

Copy link
Copy Markdown
Contributor

What & why

Now that the repo is public, prep its public-facing surfaces for SEO (Google / PyPI / GitHub indexing) and GEO (ChatGPT, Claude, Perplexity, Gemini). The lead asset is a clean, quotable entity-defining sentence; the rest fills in discovery metadata that was generic or missing.

README

  • Lead with the positioning tagline: "Onepin is a voice workflow platform that orchestrates, validates, and ships production-ready audio across 100+ TTS models." — renders on both GitHub and the PyPI page (readme = "README.md").
  • Switch brand prose to Onepin. Code identifiers (OnePinClient, AsyncOnePinClient, OnePinClientEnvironment, OnePinUpgradeRequiredError), the generated CLI-commands block, and the onepin.ai domain are intentionally unchanged.

pyproject.toml

  • description → keyword-rich one-liner (PyPI summary / Google snippet).
  • Add keywords (was missing): tts, text-to-speech, speech-synthesis, voice-ai, voice-agents, elevenlabs, cartesia, …
  • Add Topic/Environment/Operating System classifiers (none before) for PyPI browse/filter.
  • Add Homepage = https://onepin.ai to [project.urls].

GitHub repo (applied live, outside this PR)

  • Description updated to match.
  • Topics expanded 6 → 16: + tts, text-to-speech, speech-synthesis, voice-ai, voice-agents, audio, ai-agents, agent-skill, elevenlabs, cartesia.

Verification

  • uv run python -c 'import trove_classifiers …' → all classifiers valid
  • uv build && uv run twine check dist/*PASSED (metadata + long_description render)
  • All tagline claims verified against the code (workflows/runs/voices/templates, validator nodes, 7 providers, "100+ models" in the bundled skill reference).

Follow-ups (not in this PR)

Higher-leverage GEO work lives on the website/docs, not this repo: onepin.ai/llms.txt + docs.onepin.ai/llms.txt, README FAQ + comparison blocks, site JSON-LD / OG tags / robots.txt for AI crawlers, GitHub social-preview image, and a full brand-casing sweep for one-entity consistency.

🤖 Generated with Claude Code

… metadata

Give search and generative engines a clean entity definition and fill in
discovery metadata now that the repo is public.

- README: lead with the Onepin voice-workflow-platform tagline; switch brand
  prose to "Onepin" (code identifiers / generated CLI block unchanged)
- pyproject: keyword-rich description, add keywords, add Topic/Environment/OS
  classifiers, add Homepage URL

GitHub repo description + topics were updated separately via repo settings.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kj-podonos kj-podonos added the documentation Improvements or additions to documentation label Jun 19, 2026
@kj-podonos kj-podonos self-assigned this Jun 19, 2026
@kj-podonos kj-podonos merged commit e7b7783 into main Jun 19, 2026
23 checks passed
@kj-podonos kj-podonos deleted the kj-podonos/onepin-seo-geo-prep branch June 19, 2026 02:06
kj-podonos added a commit that referenced this pull request Jun 19, 2026
…ng (#59)

## What & why

Follow-up to #58. Deepen the in-repo SEO/GEO surface and make the brand
name render consistently.

### README — GEO content (high-value, LLM-extractable)
- **"What Onepin does"** capability list up top (orchestrate / validate
/ 100+ models / ship / agent skill) — gives crawlers and generative
engines an early, quotable capability map.
- **FAQ** section: *What is Onepin? · How many TTS models? ·
ElevenLabs/Cartesia support? · How is it different from calling a TTS
API directly? · Account? · Agent skill?* Q&A is the single most
extractable structure for AI-engine answers and Google "People Also
Ask".
- Copy written to the Onepin brand voice (Sage-led, validator/retry/ship
vocabulary, no marketing filler).

### Metadata
- pyproject `description` → "100+ TTS models" (parity with the tagline).
GitHub repo description synced to match (applied live, outside this PR).

### Brand casing OnePin → Onepin
- Prose in CONTRIBUTING / SECURITY / SUPPORT / AGENTS / examples, plus
CLI help strings (root `--help` + `skill` group). Regenerated the README
CLI block (`scripts/gen_cli_docs.py`).
- **Intentionally unchanged:** the Fern-generated SDK under
`src/onepin/` (renders "OnePin" from the upstream OpenAPI spec — fixing
it means a spec change, not a repo edit), code identifiers
(`OnePinClient`, `*Error`), and the `X-OnePin-Required-Version`
wire-protocol header.

## Verification
- `ruff check` + `ruff format --check` ✓ · `mypy -p onepin._cli` ✓
- full `pytest` ✓ (incl. `test_readme_in_sync` + `test_cli_manifest` —
generated block + manifest in sync)
- **diff-cover 100%** on changed `_cli` lines (gate ≥90)
- `uv build` + `twine check` → **PASSED**

## Follow-up (not here)
True one-entity canonical casing needs the upstream spec/Fern config to
emit "Onepin" so the generated SDK README/reference stop saying
"OnePin". External GEO levers (onepin.ai/docs.onepin.ai `llms.txt`,
JSON-LD, robots.txt for AI crawlers) remain with the web/docs team.

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

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant