Our Tech Stack

We're building developer-first WhatsApp infrastructure. Our stack reflects three priorities: scalability, security, and developer experience. Here's a breakdown of what powers our platform.
Domains
We use AWS Route 53 to manage all our domains and DNS records. It gives us flexibility for subdomains (e.g., api.sendzen.io, app.sendzen.io) and works smoothly with our AWS infrastructure.
Auth
Authentication is handled by AWS Cognito. It supports email/password, multi-factor authentication, and OAuth providers.
We layer our own organization model on top, so accounts can support multiple members, roles, and white-label setups.
Infrastructure
Our backend runs in a serverless and container mix:
- AWS Lambda → powers high-scale messaging APIs and webhook ingestion.
- API Gateway → exposes our APIs under api.sendzen.io.
- AWS App Runner → runs longer-lived workloads like dashboard, billing, and API key management.
This setup lets us scale messaging separately from account operations.
APIs
All APIs are written in .NET Core 8 (C#).
We prefer its performance and reliability for handling high-throughput messaging and structured data workflows.
Storage
We run a hybrid storage model:
- SQL Server on RDS → relational data like accounts, billing, and roles.
- DynamoDB → high-velocity message logs and webhook events.
- S3 → object storage for exports, logs, and backups.
Queuing
Amazon SQS is our backbone for buffering.
It smooths spikes in traffic and prevents downstream systems from being overloaded during campaigns.
Messaging
We integrate with two channels:
- Amazon SES for transactional email (e.g., verifications, alerts).
- WhatsApp Cloud API for all WhatsApp messaging.
Our value is in abstracting Meta's complexity into a simple, developer-friendly layer.
Monitoring
We use AWS CloudWatch for metrics, logging, and alarms.
It helps us spot issues early, track message delivery, and optimize performance.
Frontend
Both our marketing site and dashboard run on:
- Next.js hosted on Vercel
- Tailwind CSS for styling
We aim for a clean, developer-focused design with a Stripe-like experience.
Workflow
We track engineering work in Linear.
Its simplicity and integrations help us stay focused without process overhead.
Documentation
We use Apidog to generate and publish API documentation.
It keeps our OpenAPI specs in sync and makes onboarding developers faster.
AI
For AI-assisted features and internal workflows, we use Gemini 2.5 Pro.
It powers documentation generation, code assistance, and intelligent routing in our product.
Closing Thoughts
Our stack is deliberately simple but scalable. We've chosen tools that balance developer speed with enterprise-grade reliability. Some areas will evolve — we're exploring more observability tools beyond CloudWatch, and we know UI tests are missing.
But the foundation is solid: a fast, reliable API layer that any developer can use to send their first WhatsApp message in under 5 minutes.