Launchkiln: a prelaunch marketing site for an invoicing startup
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.
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.
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
@rpccall 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.
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.
Comments· 0