04Vertizia
Where social media managers prove their work.
It started as a web platform with a team of image agents: one creates the scene, one fixes light and color, one writes the caption and a critic rejects whatever isn't good enough.
After measuring real usage, I changed course: it became a mobile app, with no AI. Changing your mind with data in hand is part of the job too.
- NestJS
- Next.js
- Prisma
- Satori
- Expo
- Fastify




The problem
People who manage social media for clients spend hours building reports by hand and lose contracts when they can't prove results. And Instagram deletes metrics after 90 days.
What I built
- A multi-tenant web platform with row-level isolation in PostgreSQL (RLS).
- Instagram connection over OAuth and a stored history of metrics.
- A team of image agents: one generates the new scene, one adjusts light and color without distorting faces, one swaps the background, one writes the caption and a critic rejects whatever isn't good enough.
- A chat assistant, approvals and a publishing calendar.
- On Sep 20, the turn: after researching 187 ideas and measuring usage, it became a mobile app focused on keeping the history Instagram deletes and turning it into proof of work. With no AI.
How it works
Generate
An image model creates only new scenes; it never edits photos of people.
Edit
Light, color and background are adjusted by deterministic tools, sharp and rembg, directed by Claude.
Caption
The caption is drawn in code, with Satori, in the brand's visual identity.
Critique
A critic rejects a piece that isn't good before it reaches the client.
Decisions that mattered
AI generates, tools edit
Why: Image models distort faces when they edit. Deterministic tools never do.
A daily spending cap
Why: Every image has a measured cost, and generation stops by itself when it hits the day's limit.
Changing course
Why: A metrics dashboard isn't a product; Instagram already does that. The pain people pay to solve belongs to those managing other people's accounts who need to prove their work.
What went wrong
Every real system breaks somehow. These were the stumbles that taught the most, and what changed because of them.
The ads came out weak, and it was our fault
What happened
The same image model that made good pieces outside the system made weak ones inside it. An automation shortcut skipped the step that wrote the professional brief, so the generator got the customer's raw text.
What changed
Every generation goes through the same path. And before blaming the model, I compare against the same model outside the system.
Messages vanished from the chat, and I guessed the cause
What happened
On sending, the new message scrolled out of view. I fixed the scrolling without testing, and that wasn't it: a block on the screen grew with its content and the whole page scrolled along.
What changed
I don't claim a screen is right without opening it in a real browser. That's where the habit of checking every screen with a screenshot came from.
The critic that never approved
What happened
In carousels, the critic rejected a slide, asked for another and rejected it again, with no limit. The carousel never finished.
What changed
Automation that repeats has a cap. The critic got a single round, and the final approval went to the person.
Where it stands
The web version is frozen and preserved. The app is under construction.