Skip to main content

Tech Stack

Royal Glow is built for scale (20k–50k users), premium feel, and long-term maintainability by a single developer. Every technology choice is made with that constraint in mind.
Total monthly infrastructure cost at launch: ₹0. Every service runs on a free tier that is generous enough for a salon at this scale. The whole stack is edge-first, India-first (DPDP, IST, paise, GST 18%), and chosen so one developer can run it with minimal ops overhead.

The Stack by Layer

Browse each layer of the platform. Every choice below is in production use.
Why shadcn/ui: components are copy-pasted into your repo — you own 100% of the code. Built on Radix UI primitives for production-tested accessibility, with zero runtime overhead.

Design Principles

  • Lighthouse gates: performance ≥ 95; accessibility, best practices, and SEO = 100
  • Premium feel — rich, high-end aesthetic matching the brand
  • Edge-first — sub-100ms response times globally via Cloudflare
  • Single developer — tooling must minimise ops overhead
  • ₹0/month at launch — every service on a free tier

Technology Decision Log

Key decisions where alternatives were seriously considered. Expand each to see what was rejected and why.
Self-hosted, the Google consent screen shows your domain, and it ships a built-in RBAC plugin. Clerk and Auth.js were rejected on hosting/branding and missing native RBAC.
Prisma’s query-engine binary can’t run on the Cloudflare Workers V8 isolate without paid Accelerate. Drizzle is pure TypeScript and runs everywhere.
Git-like branching (10 free branches), serverless scale-to-zero, and all scheduled work driven via QStash HTTP routes.
Cloudflare Workers via the OpenNext adapter (@opennextjs/cloudflare) — generous free tier with no bandwidth surprises, plus R2, KV, and Workers all under one roof.
6M messages/mo free versus Pusher’s 200k/day.
DPDP Act concerns with GA. PostHog offers 1M events/mo plus feature flags.
~100x faster, a single config file, and native TypeScript support.

Architecture

How these technologies fit together as a layered monorepo

Data Model

The 38-table Drizzle schema running on Neon

System Design

High-level and low-level design documents
Last modified on August 29, 2026