Skip to content
Back to work

Appointy

Intern → Engineering Lead 2015 -- 2021 www.appointy.com
15s→<1s Load Time
1yr→1mo Dev Time
232 Packages
1M+ Users
160+ Locales
Problem

Every new SaaS product at Appointy required rebuilding foundational features from scratch -- authentication, billing, scheduling, staff management. This led to inconsistent implementations, duplicated effort, and delivery timelines of roughly a year per new product. The existing scheduling platform serving 1M+ users had load times of 15 seconds.

Approach
  • Built Saastack -- a modular, plug-and-play SaaS framework with 232 packages. Hook-based plugin architecture enabling runtime extensibility without redeployment.
  • Relay/GraphQL data layer replacing REST, providing type-safe queries and build-time contract validation. CLI scaffolding tool for standardized app creation.
  • i18n library and prebuilt component system supporting 160+ locales with multi-language, multi-currency, and multi-format as a first-class platform citizen.
  • Caching redesign at the platform level for sub-second load times.
Key Decisions
  • Hook-based architecture over static registration: runtime extensibility without redeployment. Critical for white-label deployments (Google, Telefonica) needing different feature combinations.
  • Relay/GraphQL over REST: each product queries exactly what it needs from shared resolvers. Relay compiler catches data mismatches at build time.
  • Code generation over handwritten glue: annotation-driven generation eliminates boilerplate across 232 packages.
  • Built-in i18n as platform citizen: 160+ locale support as a deployment-time configuration rather than development effort.
Outcome
Load times reduced from 15s to under 1s
Development timelines compressed from ~1 year to 1 month
232 packages in a modular, reusable architecture
Platform reused for Google and Telefonica engagements
1M+ users served
160+ locales supported
8-engineer team managed with established coding guidelines