The visible feature was only the surface
Creators and small teams repeat the same editorial work for every social platform. They rewrite one idea for different limits, compare weak AI variants, check brand language, and then move the result into separate publishing tools.
The system also had to respect concrete constraints. AI providers vary in availability, rate limits, model behavior, and key quotas. LinkedIn, X, and Facebook each impose different OAuth, account, content, and API requirements. Scheduled publishing must survive beyond the request that created it and retain a reviewable status.
My role covered product design and full-stack engineering, with responsibility for ai workflow, publishing integrations, and background jobs.
I turned the constraints into boundaries
The Next.js application keeps HTTP boundaries in route handlers, product logic in domain modules, infrastructure in core services, and durable delivery in Inngest.
A provider switcher walks configured models and keys, so product workflows do not depend on one vendor-specific client.
Required language, blocked language, audience, tone, and persona context are workspace data rather than prompt-only instructions.
Inngest owns delayed execution and status transitions instead of relying on an open browser session or a long HTTP request.
The key decision: Separate provider choice from generation.
The implementation had to prove the model
I delivered the work across the full path: Defined the end-to-end product flow from topic input to platform-ready output. Built the Next.js interface, API routes, domain services, and MongoDB repositories. Implemented multi-provider AI selection, reusable guardrails, scoring, and platform previews. Integrated authentication, account recovery, social OAuth, Inngest scheduling, and publishing records.
The result is concrete: One workspace now covers generation, comparison, refinement, preview, and delivery. Provider and key fallback reduce the workflow's dependency on a single AI endpoint. Publishing state is persisted for library and insights views instead of ending at generation. Operational limits remain explicit: publishing still depends on platform approval, scopes, account type, and API access.
The senior engineering lesson was that solving the visible workflow is only half the job. The architecture must also make constraints, failure modes, evidence, and ownership explicit enough for the next change to remain safe.
