Belza
A multi-tenant operating system for beauty and wellness businesses.

Booking a beauty service in Latin America is still far more manual than it should be. Most appointments still happen through calls, WhatsApp messages or manual coordination, making a simple booking feel slow, inconsistent and outdated.
Belza was built to modernize that experience — turning service booking into something faster, simpler and native to how users already expect digital products to work.
Belza was designed and built entirely by me — from product strategy and UX direction to system architecture, infrastructure and deployment.
I defined the product from the ground up, designed every workflow and interface, and built the full platform end-to-end across frontend systems, backend architecture, real-time infrastructure, payments, deployment and production operations.
Belza’s client-facing experience was designed as a modern booking flow — allowing users to discover businesses, explore services and reserve appointments without relying on calls, messages or manual coordination.
The product was built around a B2C experience that turns service booking into a faster and more reliable digital flow, from discovery to post-booking management.
Landing
WebThe public site opens on a landing for clients: a search for what they want done, categories to browse, and a hero that cycles through compositions of 3D objects, business cards and a phone. Pieces enter and leave one by one, and the next composition starts arriving while the last one is still leaving, so the hero is never empty. The phone plays a recording of the booking flow in step with each composition.


«Qué es Belza» opens this promo. On desktop it plays 16:9 in a centered window; on phones and tablets, a 9:16 cut plays full screen, chosen by screen width when it opens.
The hero's 3D objects are transparent WebP loops. With reduced motion, each one swaps to its still frame and the hero stays on its first composition.
Discovery
MarketplaceBelza starts as a discovery layer. Users can explore nearby businesses through a marketplace designed around location, category and availability. The experience includes map-based browsing, filters and saved favorites to make finding the right business faster and more intuitive.

Selection
Business DetailEach business has its own dedicated page where users can explore services, view staff, understand pricing, check location details and decide who to book with. This turns the booking flow into a more transparent and informed decision before reservation begins.


Booking
Reservation FlowOnce inside the booking flow, users can select a service, choose staff, confirm a time slot and complete the reservation in just a few steps. After booking, appointments can be managed directly through the platform — including rescheduling, cancellation and direct contact with the business.

Beyond booking, Belza was designed as a complete operating system for service businesses — centralizing the workflows, tools and operational layers required to run day-to-day operations in one place.
The business-facing side of Belza was built to unify scheduling, staff coordination, commerce, client operations and business visibility into a single system.
Operations Core
Calendar & Daily OperationsThe operational core of Belza revolves around a centralized calendar where the business manages bookings, receives online appointments, creates manual reservations, schedules staff time off and records in-store sales. This acts as the primary operational surface where day-to-day activity is coordinated.

Commerce & Business Management
Services, Products & PaymentsBelza includes the commercial layer of the business, allowing teams to manage services, physical products, gift cards and promotional coupons in one place. Businesses can also control their public booking presence, enable online reservations and configure Stripe to support digital payments and booking deposits.



Client & Staff Management
People & Operational ControlBelza centralizes the people layer of the business through dedicated client and staff management systems. Businesses can manage client records, track history and create new customer profiles, while also controlling staff setup, schedules, visibility and performance across the platform.


Retention & Operations Intelligence
Growth, Visibility & ControlBelza extends beyond operations with tools built for retention, visibility and long-term business control. This includes a configurable loyalty system, business analytics, real-time notifications, global search and operational settings for cancellation, rescheduling and policy management.





Belza runs as one product on AWS: a NestJS API, a Next.js web and nine background workers on a single instance, with managed services around it for the database, media, messaging and AI.
The diagrams below were drawn from the live account, not from the original plan: the dedicated VPC, the private database subnets and the messaging Lambdas are what is actually running.
Customers and businesses use iOS apps and the web through CloudFront with AWS WAF. One EC2 instance in the VPC's public subnet runs Nginx, the Next.js web, the NestJS API, nine BullMQ workers and Redis. PostgreSQL runs on RDS in private subnets, media is served from S3 through its own CDN, and email and WhatsApp leave through SQS-driven Lambdas.
One domain, three kinds of traffic
Pages, the API and live streams all go through belza.com.mx. CloudFront decides what can be cached, and Nginx protects the API before a request reaches NestJS.
- Hashed Next.js assets are cached at the edge. API routes are never cached and forward every viewer header, including the session.
- Nginx rate-limits /api and /graphql to 10 requests per second per IP, with a burst of 20.
- The dashboard and the apps keep a server-sent event stream open for bookings, calendar changes and Connect messages. A keep-alive every 15 seconds keeps it inside CloudFront's 30-second read timeout.
One instance, many processes
Web, API, workers and Redis share a t3.small through Docker Compose. At today's load it averages 2.5% CPU, so splitting it would only add cost.
Lambdas at the edges
Email and WhatsApp go through SQS and Lambda, so provider failures and throttling are retried and isolated from the API.
Managed AI and places
The assistant runs on Amazon Bedrock with Claude Haiku 4.5, and place search uses Amazon Location, both called with the instance role.
Network first
A dedicated VPC with private database subnets, an S3 gateway endpoint and WAF on both CloudFront distributions.
≈ $43
AWS per month
September 2026 usage: EC2, RDS, networking, ECR and messaging.
171k
Requests in 30 days
Through CloudFront, with an average 5xx rate of 0.2%.
34 ms
Server time, p50
A health check that includes the database; 55 ms at p90.
2.5%
Average CPU
Web, API, nine workers and Redis on one t3.small; 64% at peak.
Result
Web, API, nine background workers and Redis run on a single t3.small for about $43 a month, serving 171k requests in 30 days with a 34 ms server-side median.
Costs from AWS Cost Explorer (usage before credits). Traffic, error rate and CPU from CloudWatch, last 30 days. Server time measured end to end in October 2026 with the network round trip removed.
Belza relies on a set of internal systems designed to keep booking operations fast, consistent and reliable under real usage.
While the interface appears simple, the operational layer underneath is driven by purpose-built engines responsible for scheduling, availability, notifications and booking state consistency.
Booking Engine
The booking engine acts as the core decision layer behind every reservation and is the most operationally complex system in Belza. Slot generation is computed dynamically based on service duration, staff eligibility, schedule windows, booking overlaps, operational buffers and slot-level conflicts.
Every booking request evaluates whether a service can be performed by a valid staff member, whether that staff member is available within the requested time window and whether the slot remains valid once duration, overlaps and business rules are applied. Time is normalized into 15-minute intervals to keep scheduling behavior predictable, while slot holds and temporary locks protect availability during booking and payment flows.
Availability Engine
Availability is one of the most computationally expensive systems in Belza, and recalculating it on every booking request would make scheduling too slow under load. To avoid this, availability was designed around precomputed state.
Rather than rebuilding slot availability on every request, Belza computes and caches availability windows in advance using Redis. Whenever an event affects scheduling state — such as a booking change, time-off update or staff availability change — that event is pushed into a BullMQ queue where availability is recomputed asynchronously by dedicated workers.
This allows booking-critical reads to resolve from precomputed cached windows instead of rebuilding availability state in real time, significantly reducing latency in scheduling flows.
Notification System
Belza’s notification system was designed as an event-driven pipeline built around asynchronous delivery and real-time fanout.
When a relevant event occurs — such as a booking being created, cancelled or rescheduled — the application emits a notification event into a queue. A worker consumes that event, builds the notification payload, persists it to PostgreSQL and publishes a real-time update through the notification stream.
The frontend remains subscribed through server-sent events, allowing notifications to appear in real time without polling while keeping delivery decoupled from the request cycle.
Payments & Booking State
Belza’s booking and payment flows were designed to keep operational state consistent across reservation and payment lifecycles.
Bookings and payments are stored as separate but connected state systems. A booking can move through multiple operational states — including reserved, pending payment, paid, completed, cancelled or rescheduled — while payment state is tracked independently and reconciled back into the booking.
This separation allows Belza to support payment holds, Stripe checkout flows, partial payments and delayed state transitions without collapsing booking and payment logic into the same lifecycle model.
Belza replaces fragmented service workflows with a single system built to modernize how beauty businesses operate.
What was previously handled through calls, WhatsApp messages and disconnected tools becomes centralized into one platform designed specifically for how beauty businesses actually run.
Product Outcome
Belza simplifies booking for both sides of the marketplace. For clients, it replaces manual reservation flows with a faster and more reliable way to discover, book and manage appointments. For businesses, it consolidates scheduling, client operations, staff coordination and business management into a single specialized platform.
Technical Outcome
Belza was designed as a production-ready system capable of supporting real operational load. The platform was built to handle scheduling complexity, asynchronous workloads, real-time updates and business-critical workflows in a way that remains modular, stable and ready to scale with usage.
Strategic Outcome
More than anything, Belza demonstrates my ability to take a complex product from concept to production end-to-end — defining the product, designing the experience, engineering the system, building the infrastructure and shipping the platform as a complete operational product.
It reflects how I think about product systems: not just as interfaces, but as complete, scalable and production-ready software built across product, engineering and infrastructure.











