CodingIdeas.ai

CastleDraft — The AI Campaign Prep Engine That Writes Better Dungeons Than You Do at 1am

You have 48 hours before your next D&D session and a completely blank notes doc. CastleDraft takes your party's backstory, current location, and last session's chaos, and spits out a full session prep packet — encounters, NPCs, hooks, and boxed text — in under 4 minutes.

Difficulty

beginner

Category

Creator Tool

Market Demand

High

Revenue Score

6/10

Platform

Web App

Vibe Code Friendly

No

Hackathon Score

🏆 7/10

What is it?

TTRPG game masters spend 3-6 hours per week on session prep, and the dirty secret is that most of that time is blank-page paralysis, not creative work. CastleDraft solves the blank page: paste in your campaign context, party composition, and a two-sentence plot hook, and receive a structured session prep document with three encounter options, five named NPCs with motivations, location descriptions with boxed read-aloud text, and a cliffhanger ending. The output is formatted for Obsidian or Notion paste-in, or downloadable as PDF. This is a clean AI wrapper but earns its place because the target audience — GMs running weekly sessions — has a recurring, high-frequency pain with zero good dedicated tooling. Buildable in one weekend because it is a structured Claude prompt chain with a Next.js form frontend and PDF generation via react-pdf.

Why now?

Claude's structured output via XML prompt templates is now reliable enough to produce consistently formatted TTRPG content — earlier models hallucinated game mechanics too often to be trustworthy, making June 2026 the first viable moment for a polished product.

  • Structured session prep generator with three encounter options, five NPCs, and boxed read-aloud text (Implementation note: single Claude call with XML-structured output parsed by Zod)
  • Campaign memory that remembers party names, major events, and active plot threads across sessions
  • PDF and Markdown export formatted for Obsidian paste-in
  • System templates for D&D 5e, Pathfinder 2e, and one-shot format

Target Audience

Dungeon masters and GMs running weekly TTRPG campaigns — estimated 12M active TTRPG players in the US, roughly 3M who are regular GMs.

Example Use Case

Sarah runs a weekly Wednesday campaign and used to spend Sunday afternoon in prep paralysis. She pastes her last session summary into CastleDraft, gets a full prep packet in 3 minutes, and shows up Wednesday actually excited instead of exhausted.

User Stories

  • As a weekly DM, I want to generate a full session prep packet from my campaign notes in under 5 minutes, so that I stop spending Sunday afternoons in prep paralysis.
  • As a GM running a long campaign, I want the generator to remember my party and plot threads, so that the output is consistent with my world instead of generic.
  • As a one-shot GM, I want a dedicated one-shot template, so that I get a self-contained adventure without stripping out ongoing plot hooks.

Done When

  • Generation: done when submitting a campaign context form returns a formatted prep packet with at least 3 encounters and 5 NPCs in under 60 seconds.
  • Export: done when clicking Download PDF produces a readable PDF with all sections matching the on-screen output.
  • Campaign memory: done when a second session generation automatically includes party names and prior session events from Supabase.
  • Paywall: done when free tier users see a clear upgrade prompt after their second session generation and Stripe checkout completes successfully.

Is it worth building?

$12/month x 200 subscribers = $2,400 MRR at month 4. Math assumes ProductHunt launch reaching 2,000 GMs at 3% paid conversion after free trial. Modest but predictable.

Unit Economics

CAC: $5 via Reddit organic at 3% conversion from free demo. LTV: $144 (12 months at $12/month). Payback: under 1 month. Gross margin: 90%.

Business Model

SaaS subscription

Monetization Path

Free tier: 2 session preps per month. Paid $12/month: unlimited preps, PDF export, and campaign memory across sessions.

Revenue Timeline

First dollar: week 1 via ProductHunt free-to-paid. $1k MRR: month 3. $3k MRR: month 7.

Estimated Monthly Cost

Claude API: $30, Vercel: $20, Supabase: $25, Stripe: $15. Total: $90/month at launch.

Profit Potential

Lifestyle business at $2k–$5k MRR. Not a unicorn but shippable in 5 days and profitable immediately.

Scalability

Medium — can expand to Pathfinder, Call of Cthulhu, and Blades in the Dark system templates. Campaign memory is a natural upsell.

Success Metrics

Week 1: 500 signups from ProductHunt. Month 1: 80 paid conversions. Month 3: 70% retention rate.

Launch & Validation Plan

Post a free no-signup version to r/DMAcademy and r/rpg and count how many people use it in 72 hours. If over 200 uses, build the paid tier.

Customer Acquisition Strategy

First customer: post a free single-use demo with a pre-filled D&D campaign in r/DMAcademy with a title like 'I built a free session prep generator — roast it.' Ongoing: YouTube shorts showing a 3-minute prep generation, Reddit community presence, SEO on 'D&D session prep generator'.

What's the competition?

Competition Level

Medium

Similar Products

Dungeon Alchemist generates maps but not narrative content. ChatGPT can do this but requires heavy prompting knowledge. World Anvil is a world-building tool not a session prep generator — none produce the full structured packet CastleDraft outputs.

Competitive Advantage

Structured output formatted exactly for how GMs actually run sessions — not a generic AI chat tool. Campaign memory creates lock-in that ChatGPT cannot match.

Regulatory Risks

Low regulatory risk. No PII beyond email. GDPR: campaign data deletable on account close.

What's the roadmap?

Feature Roadmap

V1 (launch): session prep generator, PDF export, D&D 5e template. V2 (month 2-3): campaign memory, Pathfinder 2e template. V3 (month 4+): Obsidian plugin export, encounter difficulty calculator.

Milestone Plan

Phase 1 (Week 1): prompt chain, form, and PDF export ship — done when full packet generates in under 60 seconds. Phase 2 (Week 2): Supabase auth, campaign memory, and Stripe billing live — done when paid upgrade works end-to-end. Phase 3 (Month 2): 80 paid subscribers — done when MRR crosses $960.

How do you build it?

Tech Stack

Next.js, Claude API, react-pdf, Supabase, Stripe — build with Lovable for UI, Cursor for prompt chain and PDF logic

Suggested Frameworks

Claude API with structured output, react-pdf for document generation, Zod for form validation

Time to Ship

1 week

Required Skills

Claude API prompt chaining, react-pdf, basic Next.js form handling.

Resources

Anthropic Claude API docs, react-pdf docs, D&D 5e SRD for terminology reference.

MVP Scope

app/page.tsx (prep form with party and context inputs), app/api/generate/route.ts (Claude prompt chain returning structured JSON), app/api/export/route.ts (react-pdf PDF generator), lib/prompts/session-prep.ts (structured XML prompt template), lib/db/schema.ts (users, campaigns, sessions tables), components/PrepOutput.tsx (formatted session display), components/CampaignMemory.tsx (previous session context editor), .env.example (required env vars), seed.ts (one demo campaign with 3 prior sessions)

Core User Journey

Paste campaign context -> click Generate -> receive full prep packet in under 4 minutes -> export to PDF -> subscribe for campaign memory.

Architecture Pattern

Form submit -> Claude API with structured prompt -> parse JSON output -> store session in Supabase -> render PrepOutput component -> export via react-pdf on demand.

Data Model

User has many Campaigns. Campaign has many Sessions. Session has one PrepPacket with encounters, npcs, and boxed_text fields.

Integration Points

Claude API for content generation, Supabase for campaign and session storage, Stripe for subscriptions, Resend for onboarding email, react-pdf for export, Vercel for hosting.

V1 Scope Boundaries

V1 excludes: map generation, initiative tracker, virtual tabletop integration, voice narration, mobile app.

Success Definition

A GM who found CastleDraft on Reddit signs up, generates a full session prep packet without reading any docs, and subscribes to paid before the free trial ends.

Challenges

Churn is the existential risk — GMs who finish a campaign cancel immediately. Combat this by building campaign memory as the sticky feature that makes cancellation feel like losing months of data. Distribution is the other wall: TTRPG Reddit and Discord communities have strict no-spam rules, so cold posting will get you banned. Build genuine presence before launching.

Avoid These Pitfalls

Do not spend week one on a campaign memory system — ship the single session generator first and see if anyone pays. Do not post promotional content in TTRPG subreddits without being a genuine community member first — you will be banned. Finding first paying customers takes longer than building the generator — allocate the first week to community presence not code.

Security Requirements

Supabase Auth with magic link. RLS on all campaign and session tables. Rate limit generate endpoint at 20 req/hour per user. No third-party data sharing. GDPR: full data deletion on account close.

Infrastructure Plan

Vercel for Next.js. Supabase for Postgres and auth. Sentry for error tracking. GitHub Actions for CI. No separate file storage needed — PDFs generated on demand.

Performance Targets

500 DAU at peak launch week. Generate endpoint under 8s (Claude latency). Dashboard under 2s LCP. PDF generation under 3s.

Go-Live Checklist

  • Prompt chain tested with 10 different campaign contexts without hallucination.
  • Stripe payment flow tested end-to-end.
  • Sentry live in production.
  • Vercel analytics configured.
  • Custom domain with SSL active.
  • Privacy policy published.
  • Five GMs beta-tested and gave positive feedback.
  • Rollback plan documented.
  • r/DMAcademy post drafted for launch day.

First Run Experience

On first run: a pre-filled demo campaign context is loaded in the form showing a level 5 party in a city heist scenario with one prior session summary. User can immediately click Generate and see a full prep packet appear without entering any data. No manual config required: demo mode uses a shared API key with rate limiting until the user signs up.

How to build it, step by step

1. Define Drizzle schema for users, campaigns, and sessions tables in lib/db/schema.ts. 2. Scaffold Next.js app and install @anthropic-ai/sdk, react-pdf, zod, drizzle-orm, @supabase/supabase-js. 3. Write structured XML prompt template in lib/prompts/session-prep.ts with slots for party, location, last session, and system. 4. Build POST /api/generate route that calls Claude with the template and parses the XML response into a typed JSON object. 5. Build PrepOutput component rendering encounters, NPCs, and boxed text in a readable layout. 6. Build POST /api/export route using react-pdf to convert the session JSON into a downloadable PDF. 7. Build CampaignMemory component that loads prior sessions from Supabase and injects them into the prompt as context. 8. Add Supabase Auth with magic link login and RLS on campaigns and sessions tables. 9. Add Stripe checkout with free tier limit of 2 sessions per month and $12/month paid plan. 10. Verify: fill the form with a real D&D campaign context, generate a prep packet, export as PDF, and confirm all sections are populated without errors.

Generated

June 8, 2026

Model

claude-sonnet-4-6

Disclaimer: Ideas on this site are AI-generated and may contain inaccuracies. Revenue estimates, market demand figures, and financial projections are illustrative assumptions only — not financial advice. Do your own research before making any business or investment decisions. Technology availability, pricing, and market conditions change rapidly; always verify details independently.