NarrativeForge
A node-based editor for writing, checking and testing branching interactive stories.

Problem
Project brief
Let writers manage complex story branches visually while keeping every choice and destination structurally valid.
Contribution
Role and scope
Designed the application architecture, visual editor, graph validation and persistence model.
TypeScript · Next.js · React Flow · OpenAI
Implementation
Key technical decisions
- Used React Flow for typed start, story and ending nodes with explicit connections.
- Kept typed node and edge state inside the React Flow editor, with browser-local persistence for iterative authoring.
- Placed structured OpenAI generation behind Next.js API routes, then processed generated nodes and choices before inserting them into the graph.
Constraints
Engineering constraints
- Keep graph state, story content and the playable reader synchronized.
- Generate structured content without allowing AI output to break the story graph.
- Make a dense node editor usable across different screen sizes.
Outcome
Result
The prototype saves projects locally, validates graph connections, runs stories in a reader and exports JSON or Twine files.