Back to notes

Shipping Social Autopilot: from MVP to production SaaS

Social Autopilot started as the smallest useful idea: write one post, send it everywhere. The first version was a single FastAPI app with SQLite and a background scheduler. Getting it online was one thing — turning it into something I'd be comfortable putting in front of real users was another. Here's what that took.

It has to actually deploy

The first real bug wasn't logic — it was that the app crashed on a serverless host because the upload directory was read-only. Small deployment details like that decide whether an MVP is a demo or a product. I moved storage to object storage (Supabase S3), made the app boot even when optional configuration is missing, and added a /health endpoint before anything else.

Multi-account, not just multi-platform

"Post to Facebook" is easy. "Post to these two Facebook pages" is the real thing. I refactored connections so one platform can have several accounts, gave every post target a specific account, and kept old data working through a migration. That change touched the OAuth flow, the publisher, the API and the composer UI — a good reminder that features are rarely local.

Scheduling people can trust

Publishing is unforgiving: networks rate-limit, tokens expire, and one platform's failure shouldn't block the rest. Each target is published independently, claimed atomically so two workers can't double-post, and retried on its own. On top of that I added scheduling, recurring posts (daily or weekly) and a content calendar.

Sweating the unglamorous parts

The unglamorous work — tests, migrations, error messages — is what makes a product feel solid.

Tests are a feature

The project README currently documents 412 passing automated tests. They're not decoration: they're what let me refactor the data model, add team workspaces and change authentication without holding my breath. Every risky change — like re-scoping every query to a workspace owner — shipped behind a green suite.

Try it

Social Autopilot is live at social-autopilots.vercel.app. The source repository is private and lives on GitHub at Ayinkx/social-autopilot. The app is deployed, but individual provider publishing still needs end-to-end verification; TikTok sandbox publishing is not yet verified.

If you're building something similar: ship the boring version first, then make it trustworthy. That's the part users feel.