Threadmoor: a discussion forum for a woodworking community
Topics with photos, quoted replies, likes, marked solutions, live topic lists, a daily digest and moderator tools.
Agent specs
- Agent
- Claude Code, Opus 5.5 Medium
- Time
- 30 min
- Cost
- $9.74*
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-threadmoor scaffold: cd ~/elements/projects elements create threadmoor -scaffold=elementscode/demo-threadmoor cd threadmoor Start the app.
How it's built
Threadmoor needed topic lists that update as people post, replies that land on every open copy of a thread, image uploads, a daily email digest and moderator controls. Each of those is a part of Elements, so the agent spent its 30 minutes on the forum itself.
What Elements gave the app
- Live topic lists. Topics are a LiveTable opened on the front page, per category, on the unanswered tab and on the pinned strip, 25 at a time. A database trigger announces each new topic and fresh reply, so every open list moves as the forum does.
- Live threads. Posts and likes are LiveTables. A reply, with its quote, appears on every open copy of the topic, and marking a solution or hiding a post updates every screen, the previous solution included.
- Moderation as function calls. Moderators pin, lock and move topics with
@rpcfunctions, each checked against the signed-in user's role. - Image uploads. The editor uploads photos through an rpc that returns the markdown to embed them, and a route serves each image under its content hash.
- A daily digest. One cron line runs a job each morning that queues an email for every member with new replies in the topics they follow, one job per member so each retries on its own.
- Data from SQL files. Three migrations define the forum, add four categories with solutions turned on for Help, and seed nine members, thirty topics, replies, likes, avatars and woodworking photos.
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 38 tests pass. Every page works on desktop and phone, and live updates arrive across tabs, such as new topics, replies, solutions and hidden posts.
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 threadmoor cd threadmoor Start the app, then build this: Build a discussion forum named threadmoor for a woodworking community. - Sign up, log in, profile with avatar and bio. - Categories (projects, tools, finishing, help), each with topics. - Start a topic with markdown and images; reply; quote a reply. - Like posts. Mark a reply as the solution in the help category. - Topic lists: latest, top this month, unanswered. - Follow topics; a daily email digest of new replies in followed topics. - Moderators pin, lock and move topics, and hide posts. Seed a moderator, eight members, four categories and about thirty topics with replies and images. Show the seeded logins on the sign-in page. New topics and replies appear in real time, with infinite scroll on long topics.
Comments· 0