Work / Case study
405 automated tests. Not a prototype.
sms.zentropix.ai is our own SMS campaign platform: FastAPI, Postgres and React, built with AI agents and put into production. It sends and tracks real messages every day and handles unsubscribes automatically, and has done so since v2 went live.
- Product
- Our own · sms.zentropix.ai
- Stack
- FastAPI · Postgres · React
- Ops
- Docker behind Traefik
- Status
- Live (v1 + v2)
Our own marketing group sends SMS at scale in iGaming and consumer loans. The off-the-shelf portals were expensive, closed, or both, and they made it hard to control the parts that matter most legally: unsubscribes and blocklists. So we built our own platform.
A portal you rent decides how you're allowed to send, how unsubscribes are handled, and what happens when a send fails halfway through. In iGaming and consumer loans those exact details are legal requirements with real consequences, so we wanted to own them rather than borrow them.
“AI-built software” usually means a prototype that impresses in a demo and falls over in production. The hard parts live somewhere else: crash-safe sending, signed callbacks and an unsubscribe flow that never fails. Those we built first, and the rest on top.
We run our own campaigns on the platform, so failures reach us before they reach anyone else. That keeps the list of things that have to work honest: a dropped unsubscribe or a double-sent message costs money the same day and turns into a compliance case soon after.
The platform is a full self-hosted replacement for an SMS portal. Four things make it production-ready:
- Sending: messages go out in batches of ≤250 per request and are idempotent. A job that restarts mid-send resumes without double-sending or dropping recipients. If a batch fails, only that batch is resent, and the rest of the send is untouched.
- Compliance: a hosted unsubscribe page and a ~50k-entry blacklist stay synchronized automatically. An unsubscribe that arrives in one place applies everywhere at once. Delivery status arrives over signed webhooks, so a status can't be spoofed from outside.
- Experiments: A/B with 2–4 variants and a holdback group, so a winner can be found and sent to the rest without guessing. The holdback group shows what the campaign actually moved above baseline.
- Verification: 405 automated tests run green, credentials are encrypted, and the whole platform runs in Docker behind Traefik atsms.zentropix.ai. A red test stops the deploy.
v1 shipped as a working send engine. v2 added segments, experiments and a clearer overview on top while the platform kept sending, and every release had to pass the same green test suite before it reached production.
Clicks and deliveries are tracked per recipient, so segments can be built on actual behaviour rather than guesswork. A recipient who clicked last time can get a different message from the rest, and the result of each campaign feeds back into the data the next one is built on. The case is as much about the proof as the platform: an AI-orchestrated process can ship software that holds up in production.
Built with agents. Tested like production.
The numbers below reflect the platform's test status and the live deployment at sms.zentropix.ai. These are the guarantees that have to hold every time it sends to real numbers.
405
automated tests, all green
~50k
blacklist entries synced
2–4 + holdback
A/B variants per campaign
≤250 / request
send batch size, crash-safe
Lead generation that survives production?
We build and run lead generation on our own infrastructure. The same can run for you.