The problem
Messaging automation fails in ways that are invisible until they are expensive. A template gets rejected, a webhook silently stops delivering, a rate limit tightens, and nobody notices until a customer asks why their campaign never went out.
With a team you staff around that. Alone, you have to design it out.
The approach
Every external interaction — Meta APIs, Stripe, delivery webhooks — became a job with explicit retry, dead-lettering and an alert that reaches me rather than a dashboard I have to remember to check. Nothing important happens inside a web request.
The rule I held to: if a system cannot explain its own failure in the alert it sends, it is not finished. Debugging at 2am with no colleague to ask is a design constraint, not a support policy.
What shipped
A production SaaS with one engineer and no ops headcount, running unattended around the clock — product, infrastructure, billing, deliverability and customer support.
What I would do differently
I underpriced it at launch, which is the most common solo-founder mistake and I made it anyway. Cheap plans attract the customers who need the most support, which is the one resource a single-person company genuinely cannot scale.