Reve AIJun 2026 to Jul 20267 min read

Growth engineering at Reve, from a makeathon to the team's tools

Growth Engineergrowthai image labinternal tools

A student makeathon I organized with Reve turned into a summer as its Growth Engineer. I built the team's operations tool, a social listener that reads 13 sources, the Campus Leader Program and the pages each launch shipped on.

Role
Growth Engineer
Period
Jun 2026 to Jul 2026
Company
Reve AI, OpenAI-backed image model lab (~$1.6B raised)
Team
Storytelling, Palo Alto
Stack
Python, SQLite, vanilla JS, Playwright, Vercel, Attio and Luma APIs
AI in the loop
Claude Code, Codex, MCP servers, Claude API with budgeted routing, background agents

01 · Why

The job came out of a makeathon I ran for students

I founded Sandbox SC at USC so students had a serious place to build with AI tools instead of only talking about them. In early April 2026 I met Reve's Storytelling team and followed up with three pitches, a student ambassador role, a makeathon, and a fall sponsorship. Two came back as yes in the same reply.

The Sandbox x Reve Makeathon ran April 25 to 27 at USC and came in under budget. A few weeks later I was in Palo Alto as a Growth Engineer. I never treated it as a cold summer hire. It was the next step of a partnership I had already shipped one project for.

That origin shaped what I cared about. Everything I have built since high school has been about getting young people access to real work and real tools, and Reve was a chance to do that at company scale, for students on campuses I would never visit.

Reve builds an image model and editor. It is an OpenAI-backed lab that has raised about $1.6B, and on June 3 it shipped Reve 2.0, which debuted #2 on Arena.ai, up 125 Elo over v1.5. My job was to run growth engineering end to end for a small team telling that story to creators, students, partners and press.

The words David @ Reve blur away until only Reve remains, which moves to center and gains a Storytelling badge.
The opening beat of the presentation I closed the summer with.

The opening beat of the presentation I closed the summer with.

02 · Operations

Five tools became one Needs attention list

The team tracked 964 CRM contacts, events and brand mentions across five tools, so a follow-up could slip between them. I decided against replacing any of them. Attio stayed the source of truth for people, Luma for events, and I built Reve Internal as the layer that reads all of it and says what needs a person today.

It has 14 views on a 12,000 line vanilla JS frontend, a Python standard library server over SQLite, and a Vercel mirror. No framework and no build step meant a deploy was one rsync to a VPS.

The home view is a single Needs attention list. Overdue follow-ups, failed syncs and brand threats land there first, so the day starts from what is broken instead of a tour of dashboards.

Late in the summer I ran a minimal pass and cut about 60 pieces of interface clutter, leaving one status signal per row. I had tried a from-scratch redesign first and threw it out the same day. The familiar layout with less noise was the better product, so that is what I shipped to staging.

Outreach was where AI speed could do the most damage, so I built it around a human review gate. An agent drafts each message in a chosen voice from Attio context, every round renders to a file for review first, nothing goes out unpersonalized, and no contact gets more than three touches. The pipeline covered 401 CRM contacts.

Clean data had to come first. I ran three audits of the Attio workspace through its API, covering 434 companies and 959 people, and turned them into cleanup plans for the team to approve.

The in-app copilot is page-aware and has tools. It can search posts, read a post's replies, look up a contact or pull templates, and it runs an agentic loop of up to six rounds before it answers.

Every request goes through budgeted model routing. A quick lookup runs on a small fast model, a hard question gets a larger one, and each answer is tagged with the route that served it, so the team always knows what a response cost.

Reve Internal moving through Overview, Listening, Mentions, Calendar and Drafts from the sidebar.
Overview, Listening, Mentions, Calendar and Drafts from the sidebar. Demo data.

03 · Listening

How the listener hears a launch across 13 sources

After every launch the team asked one question. How did it land? The paid X API was the obvious answer and a real recurring cost, so I built a listener that reads public sources directly. It covers 13 of them, from X, Reddit and Bluesky to YouTube, Hacker News, Mastodon, news and the open web.

Every source gets its own small fetcher that returns one shared post shape with that platform's public metrics. A background loop refreshes every 30 minutes, dedupes, and hands new posts to Claude for tagging.

X was the hard one. Its search requests carry a single-use header that the web client generates, so replaying them from a server fails. I built the collector on Playwright instead. It drives a real, logged-in browser page and captures the JSON that X's own client already receives.

Each search returns only a small batch, so the collector sweeps day by day with date windows. The live loop checks X every three hours with a shallow window, and a deep sweep backfilled 12 months so every new launch has a baseline to compare against.

The word Reve is a trap. It is French for dream, a hashtag at art auctions, and a name in audio gear. Claude tags every post with a tone and a category, and a relevance agent reviews the stragglers each cycle before replies are fetched.

Deleting junk did not stick at first, because the 30 minute refresh brought it straight back. The fix was a denylist of audited ids that every refresh and merge honours, kept in sync between the Python server and the Vercel mirror.

Scrapers break, and I learned to watch the data instead of the status light. When X changed its payload format in late July, the owned-post sweep went quiet while the sync badge stayed green. I moved the health check to the database's last update time and migrated the parser to the new fields.

When X started blocking the collector, I put a background agent on it. As I later put it, "a background Hermes agent rewrote the scraper and fixed its own bugs until it worked." The team ended up with one Needs attention view, 12 months of coverage and zero API spend.

04 · Students

Turning one makeathon into a program for 25 campuses

The makeathon proved students would show up for Reve. The Campus Leader Program made that repeatable. I designed it for about 25 schools with one Leader per school, wrote the 21 page playbook and a 12 doc onboarding library, locked the naming, and opened applications on a rolling basis on June 15.

Leaders needed somewhere to land once they said yes. I built the Campus Leader HQ in under 10 days and it went live on June 30. It is 17 static pages on Vercel, and I kept it without a backend on purpose. Attio stayed the system of record, so there was nothing to maintain and nothing to break for the first cohort.

Signing in is a small ceremony. A Leader signs the agreement, picks one of 13 monochrome card styles, and stamps a card drawn live on canvas that exports as PNG, as a GIF through a hand-written encoder, or as a video loop.

A Python pipeline turns the program docs into pages, so the Help Center's 15 topics and 60 chapters stay in step with the playbook. A setup checklist follows each Leader across every page until it is done.

The card engine got a second job as a builder for LinkedIn, Instagram and X announcement cards. I also redesigned the Reve for Students page as a course catalog, Reve 101, 201 and 301, and handed it to engineering as one self-contained file.

05 · Launches

Launch pages that prove the claim they make

The Reve 2.0 announcement made three claims, layout editing, native 4K, and text that holds up. I built the launch post page that shipped on the Reve blog, and I built each section to show its claim.

For 4K I pre-rendered real 1080p and 2K versions of a 4K image, true downsamples with nearest neighbour scaling and no CSS blur, so the pixelation on screen is honest. The animation zooms in, steps up to native 4K, and pulls back out.

Text and references got a slow marquee of posters made with the model, every one with a fictional brand so type rendering reads at a glance without borrowing a trademark. I also built one-loop capture pages at 3840 by 2160 so both animations exported as native 4K video for social.

Around the page I wrote the inspiration gallery brief across 14 use case categories and ran launch outreach to 25 researched student partners.

For the Reve 2.1 launch I built the Show Your Layers campaign site. Instead of asking people what they liked, it asks for the image, the layer trail behind it, and one required field, where the model fought you. Rewards are paid in energy, Reve's own generation unit, and every fix that comes out of a report is listed on the page.

I also built Keep Creating, a UGC microsite where a post builder drafts your share post as you type, and a launch page and coded film for the Reve API. The film is nine choreographed HTML scenes, built to be screen recorded at any size instead of cut in an editor.

06 · Community

A hub for creative partners and a wall for the party

Creative partners got their own hub. I ported the Campus Leader card ceremony into its onboarding, so a partner stamps a card and watches it file itself into the hub. The home runs on public data only, the Reve blog and two merged Luma sources, and its AI helper answers from that context and nothing internal.

For a Reve party I built a live photo wall. Guests upload from their phones and photos land on the big screen as a mosaic that fills the frame. The upload page was public, so I treated it as an attack surface, with magic byte checks, server side metadata stripping, per IP rate limits and 77 passing tests.

on Arena.ai at launch
#2
Reve 2.0, up 125 Elo over v1.5
Reve Internal
14 views
12,000 line vanilla JS, Python, SQLite
contacts in one tool
964
Attio outreach unified
social listening
13 sources
12 months of coverage, zero API spend
schools
~25
Campus Leader Program, 21 page playbook
to build the HQ
< 10 days
17 pages, live June 30

07 · Growth

Speed stopped being the constraint, judgment took its place

I shipped nearly everything that summer through agents in Claude Code and Codex, with MCP servers connecting them to the tools the team already used. Within a few weeks output was no longer the limit. What I had instead was a folder of finished work, some of which nobody had asked for, and I had been proud of it.

That was the real lesson. Speed had let me skip the question of whether something mattered.

I carried that rule into ShoSoft and into Vecka. The parts of Reve I am proudest of are the ones that passed it. The team got one place to see what needed a person, students got a program with a real home, and each launch got a page that proves its claim. The Campus Leader HQ is still live at revestudents.vercel.app.

Archive

More from the project

  • The Reve 2.0 launch post on a phone.
  • After sign-in the Reve wordmark draws itself in outline, fills in, and gives way to the partner agreement.
  • The partner hub home in dark mode.
  • What is new page listing Reve blog posts with dates, tags and one line summaries.
  • Profile page with editable partner details beside a large black partner card for a demo partner.
  • Phone upload page with an Add photos area, name, email and optional Instagram fields, and an Upload button.
  • Black hero reading Show your layers, with Submit your work and How it works buttons and four award facts below.
  • Six gallery cards, each with a gradient placeholder image, the prompt, a Where it fought me note and a layer count.
  • Entry form with fields for name, email, image link, layer trail, a required Where it fought you field, work type and handle.
  • Show Your Layers hero on a phone.
  • Claim form with platform, Reve account email and public post link fields and a Submit your post button.
  • Keep Creating hero on a phone.
  • Layout boxes draw around the words Unparalleled precision with layouts, gears turn over Control every aspect, and the Reve API end card lands.
  • Dark landing page headed Introducing the Reve API over a grid of large glyphs, with Get an API key and Read the docs buttons.