Crezio
The queue-driven backend behind Crezio, an AI tool that helps creators decide what to post next. It runs script generation, rendering, approval, and multi-platform publishing.
Architecture at a glance
data flows left to right- AI script
- Render
- Approval
- Publish
- Social platforms
connectedBullMQRedisPostgreSQL
The problem
Creators post across TikTok, Instagram, YouTube, and Facebook. Crezio looks at a creator’s own past posts and recommends what to make next. Turning that recommendation into a published video still means writing, rendering, reviewing, and posting to several platforms. Done by hand, it is slow. Automated naively, one failing provider stalls everything.
What I built
The NestJS backend that runs Crezio’s content pipeline: AI script generation, video rendering, an approval step, and publishing to multiple platforms.
Engineering decisions
- Stages are queues. Pipeline steps run as BullMQ jobs on Redis, so one slow step does not freeze the rest.
- Fail fast around providers. Circuit breakers stop hammering a provider that is down.
- Nothing disappears. Jobs that exhaust their retries land in dead-letter queues for inspection and replay.
- State lives in PostgreSQL. Pipeline state is stored in PostgreSQL.