← all projects

AI Story Studio - character and story generator

AI & ML · Personal · 2023–2024

AI Story Studio is a web app that helps users turn rough character ideas into structured profiles and story concepts. Through a guided multi-step flow, users describe a character's traits, voice, and genre, and the app uses LLMs to generate a tailored character sheet and narrative blurb.

  • Focus: LLM-based character generation and creative tooling
  • Approach: structured multi-step input flow instead of a single prompt box
  • Versions: Flask prototype followed by a Next.js rebuild
  • Goal: make AI outputs more consistent, useful, and aligned with user intent

Blending engineering and storytelling

Writing has always been the creative counterpart to my engineering work, and this project grew out of that overlap. While working on my own fiction, I kept wishing for a tool that could respond to ideas more like a creative collaborator, asking the right questions, keeping track of details, and helping shape a character into something more complete.

AI Story Studio started as an attempt to build that experience. The first version guided users through a structured questionnaire about their character, then used an LLM to generate a richer profile and a short story hook based on the chosen tone and genre.

Guided character creation flow

Instead of relying on one open-ended prompt, the app uses a multi-step flow that mirrors how writers often develop characters in practice.

  • Voice and tone: users choose genre, pacing, and narrative style.
  • Core identity: name, age, role, and a short description.
  • Strengths and weaknesses: prompts for abilities, flaws, fears, and emotional pressure points.
  • Arc and themes: what the character wants, what blocks them, and how they might change.

This structure makes the generated output much more consistent than a generic prompt. It also makes the app feel more like a tool for guided ideation rather than a simple text generator.

AI Story Studio character and story output

Early version of AI Story Studio showing a generated character sheet and story outline based on a multi-step character intake flow.

From Flask prototype to Next.js rebuild

The first version was built with Flask and Tailwind as a lightweight prototype. It was enough to validate the concept and see how people interacted with structured creative prompts.

I later began rebuilding the project as a more scalable version with a cleaner frontend and a more modular backend. The goal was not just to improve the UI, but also to make the generation flow easier to extend across different models and output formats.

  • Next.js frontend: improved UI, routing, and deployment workflow.
  • Python backend: handles prompt construction, model calls, and response shaping.
  • Reusable prompt modules: separates character traits, arcs, and story generation logic into cleaner components.
  • Structured output: supports markdown and JSON-style exports for reuse in other writing tools.

What I learned

This project taught me a lot about prompt design, user onboarding, and how to build AI systems that are actually shaped by the user rather than just producing generic output. In creative tools especially, the challenge is not just generating text, but making sure the output feels specific, coherent, and aligned with the user's intent.

It also pushed me to think more carefully about AI as a constrained collaborator. The best results came from giving the model structure, context, and clear boundaries rather than expecting creativity to emerge from a blank box.

Tech stack

  • Flask and Tailwind CSS for the first version
  • Next.js and Vercel for the rebuilt frontend
  • Python backend for prompt orchestration
  • OpenRouter LLM API with multiple model options
  • Structured multi-step prompt design
  • Markdown and JSON-friendly output formatting