providers.sgit.ai / The provider sites
The provider sites
One site per provider, each answering the same questions about a different API. The point of a family rather than one big site is that the questions stay fixed while the answers vary — which is the only way the comparison means anything.
Prose from the video vault at commit 7d1916aca5f3, 8 September 2026. When the vault moves ahead, this page is behind — and says so rather than guessing.
ElevenLabs
Text to speech with character-level timestamps. Scoped keys, no per-key spend limit, and the first render's four failures.
https://elevenlabs.providers.sgit.ai
OpenRouter
Provisioned keys with a spend limit and a reset — the one provider in this family that can do pattern one. Not built yet.
https://openrouter.providers.sgit.ai · not serving yet
Why one site per provider rather than one page each
A page per provider on one site drifts into a feature grid: the same six headings, filled in with whatever the vendor's marketing says, and no room for the part that matters. A site per provider has room for the part that matters — the labs, the examples, the failures, the cost table, the ledger — and it forces the shared material out into a hub, which is this.
The split is:
| Lives here | Lives on the provider site |
|---|---|
| The four credential patterns, and the tier axis | Which of them this provider supports, per product |
| The claim-state model, and the family roll-up | That site's own ledger, every claim with its date |
| The comparison across providers | The cost table, the failures, the workloads |
| Disclosures, estate-wide | The disclosure line for that provider, at the top of every page |
| The page contract every site obeys | Everything the contract asks for |
What adding a provider actually takes
The ElevenLabs site proved this by carrying a stub of the next one: a provider page is one Markdown file with front-matter, and the comparison follows from it. At the hub level, adding a site to this family is:
- A repository, from the same template — the build system, the gate and the release pipeline are the same files.
- A
patterns:block in its report's front-matter, per product. That is what this hub syncs. - A row in
data/providers.yml, added by runningbin/sync-providers.pyrather than typed.
No template surgery, and no edit to the comparison page. If adding the second provider requires either, the contract is wrong and the fix belongs in the contract rather than in the page.
What each site owes
The short version — the long version is the contract:
- Nine sections, in order, with cost and failures given the visual weight.
- No claim without a state, and the states joined to the pages at build time.
- Credential rules per product, never per vendor.
- Disclosure visible without scrolling, on every page, not only on its own page.
- A markdown twin at every path, so an agent never has to parse HTML.
- Cross-links that point at pages, never at domains — a domain link is a referral rather than a composition.