Abdelrahman Mahmoud
hello@abdelrahmanmahmoud.com

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.

Type
AI system
Stack
NestJS, TypeScript, PostgreSQL, Redis, BullMQ

Architecture at a glance

data flows left to right
  1. AI script
  2. Render
  3. Approval
  4. Publish
  5. 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.

Open to conversations

Building something that needs a solid backend? Let's talk.