Screenshots
The screenshots below come first so the product can be understood visually before the technical breakdown.
EstudioHub
SaaS for rehearsal and music studios that brings online booking, monthly members, tabs, stock, and payments into one system.
Company
Personal Project
Tech Stack
Overview
EstudioHub started as Studio Scheduler, a booking system for a single rehearsal studio, and grew into a SaaS for music studios. Bands book rooms on a public page, and the studio runs approvals, monthly members, tabs, stock, and payments from one admin panel. The product is live at estudio-hub.com.
The screenshots use fictional demo data.
Motivation
Many rehearsal studios still run on WhatsApp threads, spreadsheets, and a notebook at the front desk. That works until the studio has several rooms, bands that come back every week, and a bar to manage. Bookings collide, monthly slots are rewritten by hand, and nobody is sure what was sold or paid at the end of the night.
Problem
The most common issues were:
- double bookings and manual confirmation of every request
- recurring bands tracked by hand, with exceptions and reschedules lost in chat
- drinks and accessories sold on paper, with no link to the rehearsal or to stock
- no single view of the day: who is in which room, what is still unpaid, and what is running out
Solution
EstudioHub covers the studio's day from booking to closing:
- a public booking page per studio and room, with live availability and bot protection
- an approval queue, room blocks, and search across reservations
- monthly members with weekly or biweekly recurrence, exceptions, and rescheduling
- tabs linked to a rehearsal or opened on their own, with item-level payments and bill splitting
- products and stock per studio, including NF-e XML invoice import and cost-of-goods analytics
- pricing rules by room, weekday, and time window, with separate prices for monthly members
- a manager dashboard with today's bookings, open tabs, pending payments, and low stock
- WhatsApp notifications and reminders, Google Calendar sync, and Pix payments through Mercado Pago
- multi-tenant organizations with Admin, Manager, and Staff roles, audit logs, and subscription plans
Architecture
- ASP.NET Core Web API on .NET 8, split into Domain, Application, Infrastructure, and API projects
- PostgreSQL through EF Core, with versioned migrations, idempotent seed data, and isolation by organization
- two React, TypeScript, and Vite frontends: the public booking app and the admin panel
- background workers for reminders, the WhatsApp outbox, closing forgotten tabs, reports, and subscription invoices
- Azure Container Apps for the API and Azure Blob Storage for generated reports
Technical Challenges
- recurrence that survives exceptions, reschedules, and contract changes without rewriting history
- availability that combines one-off bookings, monthly slots, blocks, and sessions past midnight across rooms
- storing UTC in PostgreSQL while the studio thinks in São Paulo calendar days
- tabs where several people pay for different items, with stock and cost updated as each item is sold
- keeping studios and organizations isolated from each other inside one multi-tenant system
Technologies Used
- C# and .NET 8 (ASP.NET Core, EF Core)
- PostgreSQL
- React, TypeScript, and Vite
- Azure Container Apps and Blob Storage
- WhatsApp Cloud API, Google Calendar API, and Mercado Pago
- xUnit, Vitest, and Playwright