Avery.Software — Native Execution Runtime
RuntimeUse casesPricingHelpBlog
← All postsBlog

We built our launch ops tool with the product we're launching

2026-05-25 · Avery NXR

A few weeks before the Product Hunt launch we ran into a small operational problem.

We were drafting LinkedIn posts in a Google Doc, Twitter threads in a different Google Doc, Product Hunt comments in a third, and tracking the schedule in a fourth. The team kept losing track of which post was approved, which was queued, and which one Bhoomika was about to push live. We needed a real tool. We did not have time to build a real tool.

It turned out we did not have to.

The prompt

We opened Avery NXR — the product we were two weeks away from launching — and typed three sentences:

Build a Next.js + Prisma + TypeScript app called Avery Studio for managing Avery NXR's launch — multi-channel post composer (Twitter, LinkedIn, Threads), thread builder, calendar scheduler, approval flow, and audit ledger. Seed it with our May 18–30 launch campaign. Dark mode, matte black + electric blue.

That was the whole prompt. We hit run.

Eighty-seven seconds later, there was a fully working Next.js application in a new directory. We ran npm install && npm run dev and the composer was on localhost:3000.

What it produced

The app that came out of those eighty-seven seconds has:

A multi-channel post composer with character counters per platform — Twitter at 280, LinkedIn at 3000, Threads at 500, Bluesky at 300. The counters update live as you type and turn red at the limit.

A thread builder with drag-to-reorder tweets, auto-numbering as a toggle, and a live preview that mimics the Twitter UI.

A calendar view with both week and month layouts, where you drag a post card to reschedule it. The backend updates atomically.

An approval flow with two roles — admin and editor — where drafts require admin sign-off before they can be scheduled. The admin gets a Slack ping when something is waiting.

An audit ledger that logs every edit, every reschedule, every approval, every publish. The same audit ledger component that ships inside Avery NXR core, reused as a plugin.

A seeded database containing the actual posts from this launch campaign. The team did not have to copy-paste anything from the Google Docs. The app booted with the campaign already loaded.

What we changed by hand

Three things.

We replaced the placeholder accent color (#3B82F6) with our actual brand blue. That was a single Tailwind config change.

We added a custom card design for Product Hunt comments — the platform was in the generator's enum but the renderer didn't have a PH-flavored preview yet. We wrote that component ourselves, about forty lines of TSX.

We pointed the seed script at a real Neon database instead of the SQLite default. That was a one-line environment variable.

Everything else — auth, database schema, API routes, background jobs for scheduled publishing, the entire calendar UI — came out of the box.

What this taught us about our own product

A few things stood out.

The first is that the dogfooding test is a useful product gauge. If our own team will not use the tool for our own work, the tool is not good enough. We had been describing Avery NXR as "production-ready" in marketing copy for months. Building our launch ops tool with it was the first time we had to actually use the word production honestly. It held up.

The second is that the audit ledger is what made us stop being nervous about the dogfooding. When Bhoomika scheduled the first launch-week LinkedIn post, the ledger showed exactly which generator wrote which line, which decisions the model made, and which library versions were pinned. If anything went wrong, we knew where to look. Reviewing AI-generated code with a ledger is a different experience from reviewing it as a black box.

The third is that prompts are too short. The three-sentence prompt above produced something usable, but a longer, more specific prompt would have produced something better. We left character limits, brand colors, and the PH-comment renderer to be fixed by hand. With twenty more words of prompt, the model would have handled all three. We are now training ourselves to write longer prompts.

What we ended up shipping inside the launch ops tool

We ship a screenshot of the app's calendar view in the Product Hunt gallery. We ship a thirty-second screen recording of Bhoomika scheduling a tweet, the audit ledger updating in real time as the schedule entry is written. We ship the prompt itself — anyone can read it, anyone can run it, anyone can produce their own variant.

The launch artifact is not just Avery NXR. It is Avery NXR plus the thing Avery NXR built. Two products on launch day, both produced by the same team, for the price of one.