Skip to main content
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 was designed to stay near free-tier levels. The stack remains India-first (DPDP, IST, paise, GST 18%) and optimized so one developer can operate it with minimal overhead. CloudFront provides application edge delivery; Cloudflare remains DNS and R2 storage only.

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
  • CloudFront-backed delivery — static assets served near users; dynamic requests route to Lambda
  • 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.
Drizzle is pure TypeScript with no runtime query-engine binary, keeping Lambda packaging small and the data layer portable across AWS, local development, and the Render CMS.
Git-like branching (10 free branches), serverless scale-to-zero, and all scheduled work driven via QStash HTTP routes.
apps/web and apps/admin each deploy as an SST sst.aws.Nextjs component. OpenNext packages the application, Lambda runs SSR/API compute, and CloudFront delivers each app. Cloudflare remains authoritative DNS and R2 storage; Payload CMS stays on Render and invoicing stays on Cloud Run.
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 September 1, 2026