StartupAI
Multi-tenant SaaS platform with production Turkish payment processing
StartupAI is a live multi-tenant SaaS product with real subscription billing running through it, not a demo. Users sign up into tiered plans, pay through iyzico, and get AI automations that run as part of the product itself rather than a bolted-on chat widget.
the problem
Handling real payments safely is the actual constraint on a subscription SaaS: a billing flow has to survive retried requests, duplicate submissions and webhook redelivery without ever charging a customer twice or leaving a subscription in an inconsistent state. Background AI work also has to run without blocking the request that triggered it, which is why an async task queue sits behind the payment path rather than the AI calls happening inline.
how it is built
- Multi-user accounts with subscription tiers.
- iyzico payment integration: verified callbacks, automatic renewal, cancellation and refund flows.
- Idempotency guards in front of the charge path, so a retried or duplicated request resolves to one charge, not two.
- Celery workers with Redis as the broker for background work, decoupled from the request/response cycle.
- PostgreSQL for durable state.
- An admin panel for internal operations.
- AI automations run inside the product's own workflows rather than as a separate add-on feature.
- Built end to end by one person and running in production.
the hard parts
- Payment callbacks are verified rather than trusted on arrival: iyzico's callback has to be authenticated and reconciled against local order state before a subscription is marked paid, or a spoofed or duplicated callback could unlock paid access for free.
- Idempotency guards sit specifically in front of the charge path, so a retried request — a double-click, a client that timed out and retried, a redelivered webhook — resolves to the same outcome instead of a second charge.
Need something like this built?
Backend systems, payment and API integrations, AI pipelines, and the interfaces in front of them. Freelance or contract, remote.