All projects
Own product

Clases Suite

Multi-tenant SaaS for studios and independent teachers: scheduling, class credits, online payments and on-demand content.

Role
End-to-end full-stack development
Year
2025
Status
In production
Client
Own product
View live
Multi-tenant
with custom branding
Mercado Pago integrations
Signals
Angular 20 + SSR
Hexagonal
backend architecture

Overview

Clases Suite lets studios and independent teachers — pilates, yoga, music, languages — run their entire business: scheduling, students, class packages, online payments and on-demand content. Each studio is an isolated tenant with its own branding, plans and payment credentials.

Context

The problem

Teachers and small studios run their business on WhatsApp, Excel and notebooks: they don't know how many classes each student has left, they lose bookings to scheduling mistakes, they collect payments by hand and have no visibility into revenue. Existing solutions are expensive, built for large gyms, or don't support the class-package credit model.

The solution

A SaaS platform where each studio signs up, configures its brand and operates autonomously, with self-service onboarding, its own public landing page and the whole operation solved inside the product.

What it does

Self-service onboarding

The studio signs up, picks a SaaS plan — 7-day trial, monthly, annual or partner — and is operational without any manual intervention.

Public landing page per studio

Each tenant gets its own /c/:slug URL with custom branding: logo and palette applied as CSS variables at runtime.

Smart scheduling

Recurring availability, one-off dates and blocks for holidays or time off, with capacity control on group classes.

Credit-based plans

The student buys a package of 4, 8 or 12 classes and each booking deducts credits automatically, with carry-over and renewal logic.

Dual payment integration

Two distinct flows on Mercado Pago: the studio collecting from its students, and the platform's SaaS subscription charged to the studio.

Technical decisions

  1. 01

    Hexagonal architecture on the backend

    Ports and adapters so the domain logic — credits, bookings, renewals — doesn't depend on the database, the payment provider or the video storage.

  2. 02

    Angular 20 with Signals and SSR

    Signals for reactive state without the RxJS ceremony throughout the tree, and SSR so each studio's public landing page is indexable.

  3. 03

    Cloudflare Stream for on-demand content

    Serving video from S3 means solving transcoding, adaptive bitrate and content protection by hand. Stream covers all of it at a predictable per-minute cost.

Stack

Frontend

  • Angular 20
  • Standalone components
  • Signals
  • SSR
  • TypeScript

Backend

  • NestJS 9
  • TypeScript
  • Arquitectura hexagonal
  • RBAC multi-tenant

Data

  • PostgreSQL
  • TypeORM
  • Redis
  • Bull (colas)

Integrations

  • Mercado Pago (×2)
  • Google Calendar API
  • AWS S3
  • Cloudflare R2
  • Cloudflare Stream

Infra

  • Docker
  • Netlify
  • Cloudflare
  • Neon
  • Interserver

Next project

Nutri Suite