SaaSSaaS · Web application · API/backend · CRM · Integration · Infrastructure · AI/ML
Multi-tenant customer-data platform for small businesses
We were the core engineering team behind a multi-tenant customer-data platform for small businesses, delivering onboarding and subscriptions, warehouse-backed insights, a real-time customer dashboard, campaign tools and e-commerce and accounting integrations on a serverless cloud stack.
Problem
The client had a loose serverless AWS estate and analytics in Snowflake but needed an investor-ready MVP that small businesses could sign up to, pay for and use to understand and market to their customers.
Solution
Module by module the team delivered a React/Redux front end and Node.js/GraphQL services on AWS Lambda: Cognito-based signup with Google, Microsoft and Intuit sign-in, Stripe subscriptions and webhooks, tenant and user IDs as Cognito custom attributes with validating middleware, a customer dashboard combining DynamoDB personas with Snowflake recommendations, SES-based user invitations and roles, CSV location ingestion into PostgreSQL, an S3-triggered visitor-journey pipeline into MongoDB with dwell-time analytics, campaigns with AI-generated content from the client's APIs, and Shopify and QuickBooks integrations. It containerised Lambdas via ECR to get past package-size limits, later moved infrastructure toward Supabase and Railway, and rewrote the Node microservices as a documented FastAPI monolith.
Key features
- Signup and onboarding with email verification
- Google, Microsoft and Intuit single sign-on
- Stripe subscription plans, checkout, webhooks and plan management
- Multi-tenant auth and data scoping
- Customer insights: lifetime value, timing, ratings and product affinity
- Real-time customer dashboard with personas, preferences, ratings and recommendations
- User invitations, roles and revocation
- Location and tenant ingestion from CSV and Excel
- Visitor-journey analytics with dwell time and pre/post-visit rankings
- Campaign audiences and AI-generated ad content
- Shopify store connection, sync, webhooks and storefront recommendations
- QuickBooks connection
- Consolidated FastAPI backend
Tech stack
- API Gateway
- AWS Cognito
- AWS Lambda
- Ant Design
- Apollo
- CloudFront
- Cognito
- Docker
- DynamoDB
- ECR
- EventBridge
- Express
- FastAPI
- Formik
- Gemini
- GitHub Actions
- GraphQL
- Material-UI
- Miro
- MongoDB
- Node.js
- OpenAI
- PostgreSQL
- Python
- QuickBooks
- RDS
- Railway
- React
- Redux
- Redux Saga
- Route 53
- S3
- SAM
- SES
- SendGrid
- Serverless Framework
- Shopify
- Snowflake
- Stripe
- Supabase
- Terraform
- Vanta
- WebSocket
- Yup
- pgvector
Services behind this project
Read more
- 22SEP
Custom software development cost: what drives the price
What drives custom software development cost: scope, integrations, team shape and risk, plus how fixed scope, time and materials and dedicated teams compare.
Process6 min read
- 22SEP
Staff augmentation vs dedicated team: which model fits
Staff augmentation vs dedicated team: how the two outsourcing models differ on management, accountability and cost, and how to choose the right one for you.
Process5 min read