Step 2: Match Templates
Phase: spec
Context
You have app_description from Step 1. Now check if a pre-built template matches what the user wants.
What to do
Compare the user's description against the template library below. If one is a close match, suggest it to the user in plain language.
Example: "That sounds a lot like our Trivia Night template — it does most of what you described already. Want to start from that? We can customize it however you like."
If no template matches, that's fine. Say: "We'll build this from scratch — no problem!"
If a template is a partial match, mention it: "We have a [template] that covers part of what you want. Want to start from that and add the rest?"
Available Templates
Utility Apps (8)
| # | Template | Description |
|---|---|---|
| 1 | Shared Todo List | Collaborative task list with checkboxes and assignments |
| 2 | Landing Page + Waitlist | Product launch page with email signup |
| 3 | Voting Booth | Create a poll, share link, see live results |
| 4 | Paste Locker | Secure pastebin with server-side password hashing |
| 5 | Micro-Blog | Short-form posts with image attachments — public feed, authenticated posting |
| 6 | Photo Wall | Event photo sharing with auth-gated uploads and gallery view |
| 7 | Secret Santa | Anonymous gift exchange with server-side matching |
| 8 | Flash Cards | Create and study decks with spaced repetition |
Games (5)
| # | Template | Description |
|---|---|---|
| 9 | Hangman | Classic word guessing — solo play with random words |
| 10 | Trivia Night | Kahoot-style: host creates questions, players join via code, live scoring |
| 11 | AI Sticker Maker | Type a prompt, get an AI-generated sticker, save to public gallery |
| 12 | Bingo Card Generator | Host calls items, players mark unique cards, auto-detect bingo |
| 13 | Memory Match | Card flip matching game with AI-generated art and leaderboard |
Browse full template details at /templates/.
Expected output
matched_template_or_null— The template name and number if matched, ornullif building from scratch. Include whether the user accepted or declined the suggestion.