Skip to content

Work

Social content SaaS — autonomous post generation

A modular-monolith social content platform: onboarding with live brand extraction, one-command AI post generation, calendar scheduling, a multi-page design editor, billing and a job worker — runnable end to end on one machine.

TypeScript · Node.js · Prisma · PostgreSQL · Stripe · Docker
Context
A second product build in the social-content space — this one a deliberate contrast to service-heavy architectures: a modular monolith a single developer can run, inspect and evolve.
Problem
Producing on-brand posts for Instagram, Facebook, Threads, TikTok and X normally takes a designer, a copywriter and a scheduler. The product compresses that to one command: AI plus a brand kit decide layout, image and caption.
Constraints
Social platform APIs require app review and billing credentials, so those integrations ship behind mock adapters with every limitation documented. The whole product must boot locally with Docker — no cloud account needed to evaluate it.
Role
Lead developer — dominant author with nearly 500 commits.
Architecture
A TypeScript modular monolith on Prisma/PostgreSQL: workspaces with a singleton brand kit, live brand extraction at onboarding, autonomous post generation, calendar batch scheduling, a multi-page vector design editor with a template catalogue, media library, Stripe billing, super-admin and a background job worker.
Key decisions
A modular monolith over microservices — at this team size, inspectability and a one-command boot beat premature service splits. Mock provider adapters instead of hiding unfinished integrations, with limitations documented in the repo — the same honesty policy this site runs on. Brand extraction at onboarding so generation is on-brand from the first post.
Outcome
Runnable end to end today — auth, onboarding, generation, scheduling, editor, billing and worker all function locally. Not publicly launched; stated plainly rather than dressed up.
Evidence
Private repository; authorship verifiable from commit history.
Confidentiality
The product and its owner are not named here.