Launchkiln: a prelaunch marketing site for an invoicing startup

Launchkiln: a prelaunch marketing site for an invoicing startup

00 Markdown

A home page with pricing and FAQ, a blog, and a waitlist where referral links move people up the list live, plus an admin for posts, plans and CSV export.

Agent specs

Agent
Claude Code, Opus 5.5 Medium
Time
23 min
Cost
$7.96*

Agents work faster and more accurately on Elements.

* Cost at API rates, September 2026.

Run it yourself

Paste this prompt into your AI agent. You get the finished app on your own machine, ready to change however you like.

Agent Chat
Install elements:
curl -fsSL 'https://install.elements.dev?os=darwin' | sh && export PATH=~/elements/bin:$PATH

Create an Elements app from the elementscode/demo-launchkiln scaffold:
cd ~/elements/projects
elements create launchkiln -scaffold=elementscode/demo-launchkiln
cd launchkiln

Start the app.

Need an AI agent?

In AI desktop apps, paste into the Code tab, not the general chat.

How it's built

Launchkiln needed a waitlist where every referral reorders the line and each signup watches their own place move, a blog with cover images, and admin pages for posts, pricing and the FAQ. Each of those is a part of Elements, so the agent spent its 23 minutes on the launch site itself.

What Elements gave the app

  • Live waitlist positions. Signups are a LiveTable. Each referral reorders the line in the database, and only the signups whose place changed hear about it, so a status page shows its own position and referral count moving as friends join.
  • A live signup count. A channel carries the total, so the home page and every status page show the list growing as people join.
  • Server calls as function calls. Joining the waitlist is one @rpc call that returns the referral link, and an email already on the list gets its existing link back. The admin saves posts, pricing plans and FAQ entries the same way, with the cover image sent along in the same call.
  • Covers and export. Blog covers are stored in the database and served at addresses browsers keep for a year, and the admin downloads the waitlist as a CSV.
  • Data from SQL files. Migrations define the site, load three pricing plans and six FAQ entries everywhere, and seed the admin, four posts with drawn covers and 200 signups, about a third of them referred.
  • Sessions and roles. Every admin page, server call and the export share one guard on the admin role.

What the project server gave the agent

The project server runs alongside the agent and answers as soon as a file is saved: it type-checks the templates, TypeScript and SQL, applies migrations and reruns the tests, so every question came back right away and the agent kept building.

What shipped

The app type-checks with zero errors and all 52 tests pass. Every page works on desktop and phone.

The code

Build it from scratch

To watch your agent build this app from an empty project, use the prompt we used instead. It takes longer than starting from the finished app above.

Agent Chat
Install elements:
curl -fsSL 'https://install.elements.dev?os=darwin' | sh && export PATH=~/elements/bin:$PATH

Create an Elements app:
cd ~/elements/projects
elements create launchkiln
cd launchkiln

Start the app, then build this:

Build a marketing site named launchkiln for a new invoicing product that is not
launched yet.

PUBLIC
- Home: hero, three feature sections with screenshots, testimonials, pricing
  with three plans, FAQ, footer.
- Blog: an index and post pages.
- Join the waitlist with an email. Each signup gets a referral link; every
  friend who joins through it moves them up the list. A page shows their
  position and referrals.

ADMIN
- Write blog posts in markdown with a cover image, draft or published.
- Waitlist: signups, referral counts, export as CSV.
- Edit the pricing plans and FAQ.

Seed the admin, four blog posts with covers, and 200 waitlist signups with
referrals. Show the admin login on the sign-in page.

Waitlist positions update in real time.

The weekly digest

New lessons, demos and posts from elements.dev, in one email a week.

Comments· 0