Soxom

How Soxom works.

Push your OpenAPI spec. Get production-ready SDKs in every language.

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.