Wishcairn: a feature request board for a software company

Wishcairn: a feature request board for a software company

00 Markdown

Feature requests with live votes and comments, statuses, merges, a public roadmap, a changelog and voter emails.

Agent specs

Agent
Claude Code, Opus 5.5 Medium
Time
19 min
Cost
$6.24*

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-wishcairn scaffold:
cd ~/elements/projects
elements create wishcairn -scaffold=elementscode/demo-wishcairn
cd wishcairn

Start the app.

Need an AI agent?

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

How it's built

Wishcairn needed votes and comments that show up on every open page, statuses and merges run by the team, a public roadmap and changelog, and email to voters when their request moves. Each of those is a part of Elements, so the agent spent its 19 minutes on the board itself.

What Elements gave the app

  • Live requests, votes and comments. Requests, votes and comments are LiveTables. Vote counts, status changes and merges are written in SQL, and triggers notify each table's channel, so the board, the roadmap and every open request page move together.
  • Votes through a view. A signed-in visitor opens their own votes as a view, so voting is an insert or delete through it, with the voter set from the session.
  • Statuses and merges. The team moves and merges requests with @rpc functions. A status change is recorded in the request's thread and schedules the voter email in the same transaction, and a merge moves every vote onto the original request.
  • Voter emails. A background job sends each voter their own email, naming the request a duplicate was merged into.
  • A changelog tied to requests. Publishing a release links the requests it covers and can mark them shipped, which emails their voters and moves them on the roadmap.
  • Data from SQL files. Two migrations define the board and its triggers, then seed the feedback board for a team workspace app: 12 accounts, 30 requests across every status, votes, comment threads, a merged duplicate and three changelog entries.

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 36 tests pass. Every page works on desktop and phone, and live updates arrive across tabs, such as votes, comments and a roadmap that moves when a release ships.

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 wishcairn
cd wishcairn

Start the app, then build this:

Build a product feedback board named wishcairn for a software company.

CUSTOMER
- Sign up, submit a feature request with a title and description.
- Browse requests, sort by top or new, search, and upvote.
- Comment on requests.
- Get an email when a request they voted on changes status.

TEAM (admin accounts)
- Set status: under review, planned, in progress, shipped, closed.
- Merge duplicate requests, which moves their votes.
- A public roadmap page with planned, in progress and shipped columns.
- A changelog: post release notes, link the requests they ship.

Seed two admins, ten customers, thirty requests across statuses with votes and
comments, and three changelog entries. Show the seeded logins on the sign-in
page.

Votes, comments and status changes update in real time.

The weekly digest

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

Comments· 0