TopUpTest
An A/B testing app built from scratch.
Overview
TopUpTest is a production SaaS A/B testing platform enabling website owners to deploy experiments,
track behavioural events and generate AI-powered optimisation insights. The system captures key
conversion metrics including form submissions, button interactions, bounce rate and session
engagement, and makes A/B test suggestions via an integrated Gemini LLM engine.
Video
Architecture & Technical Implementation
Architected using a PERN + TypeScript + GraphQL stack, with a distributed backend design separating
application logic, event ingestion and billing infrastructure.
-
Distributed Node.js Backend: Three independent services — a primary Apollo
GraphQL API governing user accounts and experiment configuration, a dedicated REST tracking
service for high-volume event ingestion, and a Stripe webhook processor handling subscription
lifecycle and billing events.
-
Frontend Application: React + TypeScript SPA consuming a typed GraphQL API via
URQL, leveraging hooks and context for state management and a generated schema for end-to-end
type safety.
-
AI Insight Engine: Integrated Gemini LLM API to generate structured A/B test recommendations for users, including prompt design,
response parsing and output validation.
-
Event Tracking System: Custom client-side tracking script using the Beacon API
to reliably transmit behavioural data to the ingestion service with minimal performance impact.
-
Relational Data Modelling: Designed and implemented a normalised PostgreSQL
schema based on domain modelling of experiments, variants, events and user accounts, with SQL
resolvers and stored procedures supporting business logic.
-
Infrastructure & Deployment: Deployed across isolated DigitalOcean droplets with
Nginx reverse proxy configuration, SSL certificate management, DNS configuration and PM2
process management across staging and production environments.
-
Security Hardening: JWT-based authentication, IP rate limiting, UFW firewall
configuration, Fail2Ban intrusion protection and hardened server configuration.
-
Testing Strategy: Unit testing with Jest + Mock Service Worker for API
isolation, and end-to-end coverage with Cypress for experiment workflows and billing flows.
View TopUpTest
Back