Reve AIJun 2026 to Jul 20267 min read
Growth engineering at Reve, from a makeathon to the team's 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.
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.
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















