
BandOS
Runs the unglamorous side of being in a band, operations, releases and audience growth, in one multi-tenant platform.
Tech stack
- Languages
- C#
- TypeScript
- Frameworks
- .NET 8
- React 19
- Vite
- Infra
- PostgreSQL
- Hangfire
- SignalR
Bands are small businesses that refuse to admit it. BandOS is a multi-tenant platform that handles the admin they would rather not think about, with each band’s data isolated and role-based access for whoever ends up being the organised one.
What it does#
Three broad territories under one roof: the day-to-day operational side of running a band, the creative side of getting releases and content out the door, and the audience side of growing and keeping fans. Each band operates in its own isolated tenant, and the platform is opinionated enough that the state of the band is one glance, not one argument at rehearsal.
Why it matters#
BandOS is where I committed to vertical slice architecture at real scale: around 355 endpoints, each slice owning its request, handler and validation end to end. At that size the payoff is real, you can delete a feature without archaeology, and a new endpoint doesn’t mean touching four layers of shared plumbing. It also runs the full multi-tenant checklist from day one: tenant middleware on every request, JWT identity, and per-band data isolation that gets tested rather than assumed.
The stack#
.NET 8 Minimal APIs organised as vertical slices, with MediatR for CQRS, FluentValidation, Mapperly and NSwag. PostgreSQL through EF Core, Hangfire for background jobs, SignalR for live updates. The frontend is React 19 with TypeScript and Vite.

