Braintrust is $25/mo (Team). Trough is a self-hosted alternative at $2.99/mo. Here's when each makes sense.
| Trough | Braintrust | |
|---|---|---|
| Hosting | Self-hosted, your infra | Managed SaaS (cloud only) |
| Data location | Your server, your disk | Braintrust's cloud |
| Free tier | 1 service, 10,000 requests/mo | Paid only |
| Pro pricing | $2.99/mo | $25/mo (Team) |
| Dependencies | None (single binary + SQLite) | N/A (managed) |
| Setup time | ~30 seconds | Account signup |
| Dashboard | Built-in at /ui | Cloud dashboard |
| License | BSL 1.1 | Proprietary SaaS |
Trough is a single Go binary with embedded SQLite. Install it with one command, and you are running in under a minute. Your data stays on your server.
curl -fsSL https://stockyard.dev/trough/install.sh | sh
Teams evaluating Braintrust alongside Trough tend to split on two axes: feature depth and data residency. Braintrust wins on feature depth — it is a mature product with integrations, mobile apps, and a dedicated support team. Trough wins on residency — your llm api cost monitor data lives on your server in a SQLite file you can inspect, back up, and migrate without asking anyone for permission.
Trough runs as a single static binary with an embedded SQLite database. There is no application server, no cache layer, no background worker. One process handles HTTP requests and reads from and writes to the database file directly. This simplicity is the entire point — fewer moving parts means fewer things that can break at 2 AM.
The migration path from Braintrust depends on how much history you need to bring over. If you only need active records, a manual re-entry through Trough's dashboard might be faster than writing a migration script. If you need full history, export from Braintrust and use Trough's POST API to import records. Either way, the process is measured in hours, not weeks.
Single binary. Free to start. $2.99/mo for Pro.