SocialHub: six social networks behind one interface, testable without a single real account
How we built a multi-tenant social media platform in six phases, with every network simulated end to end.
- Industry
- Social Media Management
- Timeline
- Six build phases, pre-launch
- Client
- TabnCode (own product, pre-launch)

01 — Challenge
The problem
A social media platform is mostly other companies' APIs. Facebook Pages, Instagram Business, X, LinkedIn Pages, TikTok and YouTube each have their own OAuth flow, media rules, character limits, rate limits and failure modes, and most of them require an approved developer app before you can make a first call. Build directly against them and nothing can be demonstrated, tested or reviewed until six approvals have come through.
The product itself also had to be multi-tenant from the first migration: workspaces, roles, teams and an approval workflow, so that an agency can run several brands without one seeing another's posts.
02 — Solution
What we built
We put every network behind one interface, SocialChannelProvider, and wrote each of the six twice: a live implementation that speaks the real API, and a simulator that behaves like it. In simulated mode the networks perform the OAuth handshake, accept or reject posts by the real per-network rules, fail a configurable share of publishes so the retry path is exercised, and return comments and metrics over time. Switching a workspace from simulated to live is configuration, not a code change, and the application refuses to start in live mode without its encryption key.
The platform is a Java 21 and Spring Boot 3.3 API with PostgreSQL 16 and Redis, and a Vue 3 and TypeScript frontend. It was built in six phases, each ending in a working product: accounts, workspaces and roles; channel connection, media library and a composer that adapts one post per network; scheduling with a drag-and-drop calendar, approvals, campaigns and automatic retry with backoff; a unified inbox and an analytics dashboard fed by scheduled metric collection; eight Claude-powered writing and reply features behind a per-workspace spend guard and a brand voice; and finally demo seed data and a full verification pass.
AI is optional by design. Without an API key the AI controls disable themselves with a reason and the rest of the product works unchanged. The one feature allowed to write by itself, Autopilot, is held narrow: each autopilot is switched on explicitly, and what it writes waits in the ordinary approval queue by default.
We are plain about the limit of this approach: the live implementations are built to each network's documented API but have not yet been verified against the real networks. That verification is the remaining step before launch, which is why SocialHub is listed as coming soon.
Stack & scope
- Java 21
- Spring Boot
- Vue 3
- PostgreSQL
- Redis
- Claude API
- Multi-tenant
Next step
Want results like these?
Tell us what you want to build. In a 30-minute session we map the scope, the risks and the fastest route to something running.
We reply within 24h · hello@tabncode.com