Skip to content
Matheus Prates

Time in Goiânia: Goiânia

PTRésumé
Back to the projects

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
Post generated by Vertizia for a fictional business
Post generated by Vertizia for a fictional business
Post generated by Vertizia for a fictional business
Post generated by Vertizia for a fictional business

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

  1. Generate

    An image model creates only new scenes; it never edits photos of people.

  2. Edit

    Light, color and background are adjusted by deterministic tools, sharp and rembg, directed by Claude.

  3. Caption

    The caption is drawn in code, with Satori, in the brand's visual identity.

  4. Critique

    A critic rejects a piece that isn't good before it reaches the client.

Decisions that mattered

  1. AI generates, tools edit

    Why: Image models distort faces when they edit. Deterministic tools never do.

  2. A daily spending cap

    Why: Every image has a measured cost, and generation stops by itself when it hits the day's limit.

  3. 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.

  1. 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.

  2. 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.

  3. 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.