Developing StoryWeaver

… or, co-creating an AI-powered interactive fiction platform, using a multi-AI development approach

What I (“we”) Built

StoryWeaver is an AI-powered “Choose Your Own Adventure” platform, which can generate personalized interactive fiction stories in real-time.

Think of it as Netflix for interactive storytelling, where each choice you make shapes a unique narrative crafted by AI.

The Technical Stack

Frontend

  • Alpine.js + Tailwind CSS:
  • Lightweight, reactive, low build complexity

Backend/hosting/domain

  • Cloudflare pages/workers
  • Great free tier
  • Global edge deployment (becoming a Cloudflare fan)

AI

  • Google Gemini Flash API
  • low cost + high context window

The Multi-AI Development Approach

The fun part of building this was using different AI tools strategically throughout development

  • Claude is my go-to for architecture brainstorming at this point: it basically suggested the outline of the stack above
  • Figuring out the Opus/Sonnet split is key: I have a pattern of big-think + implementation threads that worked very well here
  • Fact-checking with Gemini helps at each step
  • Started out as a way to play with Codex, then shifted back to my “comfort zone” with ClaudeCode [also, a meta-lesson in the UX difference between “working through PRs” and “working locally, in the repo”]
  • Codex is good at what it does, but not suitable for my side-project use-case; also, Codex-CLI is new and good but I honestly haven’t tried it post-gpt-5 (before that, it was … not useful)
  • ClaudeCode just grinds through all kinds of prototyping, refining, etc … whole other post on that

One key assistive element was the Cloudflare MCP server … this allowed live debugging! (i.e. fetching logs, deployment state, etc)

Debugging

  • Lots of bugs along the way, some due to my initial ignorance about parts of Alpine.js (e.g. at one point, the page was blank … why? Component methods called before init)
  • An initial indisciplined vibe-coding round led to a massive HTML dump, had to break it down so that we could separate the “workers” part (API routes) from the “pages” part (static assets)
  • Dev/prod version mismatch issues (this was me teething on Cloudflare, the wrangler tool is good)

(Initial) learning

Multi-AI Development Works

Different AI tools excel at different problem types.

Leave the “vibe-coding marketing” behind. There has never been a silver bullet and there never will be one.

Structured approach doesn’t go away.

You have to think/plan/execute/test.

You have to learn which tools have which capabilities and how they go together. Some of them can feed in to others, some of them complement others.

Systematic Debugging Beats Random Fixes

Another aspect of the same thing: indisciplined vibe-coding will land you back in spaghetti-code land.

Errors => root-cause analysis => targeted fixes => verification

Nothing new here, just disappointment for those expecting “AI magic dust”.

Moving fast, faster, faster ...

I buried this point in the middle because I didn't want it to stand out.

But yes, leveraging modern AI tools lets you move mountains.

The caveat is you have to understand what you're doing.

It can help you do it 2x, 10x, sometimes 100x faster. That's the real value.

Massive, massive time-compression.

If you try to build things you don't understand, well, ... fool around and find out.

"Modern Serverless"

Without over-hyping Cloudflare, it was a huge boost to be able to manage all of these pieces so easily; it's a good sweet spot between "just host it on a VPS" and "full-on-GCP/AWS configuration"

Real Development Is Unglamorous

The most time-consuming challenges weren’t AI integration or UI design—they were deployment pipeline debugging and component lifecycle management.

StoryWeaver v2: What’s Next

Time-dependent, check back in 6 months.

Might add profiles, signup, billing (right now it just bails after the free tier is done), story genres, journey visualization, sharing, preferences …

Try it out

Here's the current ("v1") version ... expect rough edges, things that don't quite work, etc.