How Soxom works.
Push your OpenAPI spec. Get production-ready SDKs in every language.
-
Connect your config repo
Point Soxom at a GitHub repo containing your openapi.yaml and a soxom.yaml. Choose which language SDKs you want to ship — Python, Java, TypeScript, Go, with more coming.
-
Soxom generates SDKs
On every push to your config repo, Soxom rebuilds each enabled SDK target. Output lands on a codegen/* branch in your staging repo. No clicks, no manual rebuilds.
-
Customize in extended/* branches
Add hand-written helpers, retries, or overrides on top of generated code in extended/* branches. Your custom code is preserved across every regeneration — no rebases, no merge pain.
-
Review staging → production
Soxom opens a staging release PR with the generated changelog. You review the diff, merge to main in staging, then promote to production — also via a PR you control.
-
Publish from your repo
When the production PR merges, Soxom pushes a version tag. Your own .github/workflows/release.yml publishes to PyPI, Maven Central, npm, RubyGems, NuGet, Packagist, or crates.io — using your credentials.
The pipeline at a glance
Soxom orchestrates the flow from spec to registry. Your code, your repos, your Actions.
┌──────────────┐ webhook push ┌──────────────┐
│ Config Repo │ ─────────────────────▶│ Soxom API │
│ (GitHub) │ │ (Fastify) │
└──────────────┘ └──────┬───────┘
│
┌────────────────┼────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Generator │ │ Staging Repo │ │ Production │
│ (Py/Java/TS/ │ │ (GitHub) │ │ Repo (GitHub)│
│ Go) │ └──────────────┘ └──────┬───────┘
└──────────────┘ │
│ tag push
▼
┌──────────────┐
│ release.yml │
│ (customer GH │
│ Actions) │
└──────┬───────┘
│ publish
▼
┌──────────────┐
│ Package │
│ Registry │
│ (npm/PyPI/ │
│ Maven/...) │
└──────────────┘ Ready to ship every SDK from one spec?
Connect your config repo and Soxom takes it from there.