Threadmoor: a discussion forum for a woodworking community

Threadmoor: a discussion forum for a woodworking community

00 Markdown

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.

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

Start the app.

Need an AI agent?

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

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 @rpc functions, 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.

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 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.

The weekly digest

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

Comments· 0