Open source at SweatStack¶
Sports data is full of walled gardens, and developer experience pays for it. We're betting the opposite way: open the primitives, let the ecosystem grow, win on what we ship, not what we hoard. A rising tide lifts all boats, including the ones we're racing.
Our commitments¶
Two promises, both costly to break:
- License stability. MIT or Apache-2.0. We won't relicense. Fork us when you don't like the direction.
- Vendor neutrality. Nothing in the list below requires a SweatStack account, key, or dependency on our infrastructure. Build on them and they're yours, with us or without us. They're useful to our competitors too. That's the point.
What's open¶
- Structured Workout Format (SWF): JSON interchange for structured workouts. Schema, Python reference impl, conformance suite. Write a workout once, push it to Garmin, Intervals.icu, SweatStack, or anything else that speaks SWF.
- OpenSportTaxonomy: a shared vocabulary for sports and activities. The thing the ecosystem never agreed on.
- Pyroparse: fast activity parsing. Rust core, Python bindings. The FIT parser we couldn't find, so we wrote one.
- Silhouette: intensity-duration modelling for endurance sports. Scikit-learn compatible.
- MisFITs: a fixture corpus of FIT files, well-formed and intentionally broken, with a defect taxonomy. Test your parser against failure modes, not just the happy path.
- goldencheetah-proxy: a local proxy so web apps can read your GoldenCheetah data without anything leaving the machine.
Full org: github.com/SweatStack.
What we build on¶
Others did the hard work first. A few of the pieces whose design decisions are visible in ours: Python, Rust, FastAPI, Pydantic, Apache Parquet, pandas, scikit-learn, uv, mkdocs-material. There are many more.
Get in touch¶
Bug, PR, or a primitive we should open next? [email protected].