Appointy
15sā<1s Load Time
6 yrs Tenure
232 Packages
1M+ Users
19 Languages
8 Engineers led
Site preview
Problem
Every new SaaS product at Appointy required rebuilding foundational features from scratch: authentication, billing, scheduling, and staff management. This led to inconsistent implementations, duplicated effort, and slow delivery cycles. 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 19 language options, multi-currency, and regional formats as first-class product concerns.
- 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: language, currency, and regional formatting as deployment-time configuration rather than repeated product work.
Outcome
Load times reduced from 15s to under 1s
232 packages in a modular, reusable architecture
Platform reused for Google and Telefonica engagements
1M+ users served
19 language options supported
8-engineer team managed with established coding guidelines