Web-based storytelling system

Source code on GitLab


NARROWS is an online storytelling system. The name stands for NARRation On Web System. The easiest way to explain it is to imagine an online Choose Your Own Adventure book with the following key differences:

  1. Instead of having a single reader, there are as many readers as protagonists in the story (it could be one, but also four or five).
  2. Instead of having to pick between two or three preset choices after each “chapter”, readers can write in a textbox whatever their characters do.
  3. Instead of the narrator writing the whole story with all possible branches upfront, then give it to the readers; the narrator writes only one chapter at a time and waits for the readers to submit the “actions” for their characters. Based on those actions, the narrator writes the next chapter.

You can also think of it as a way of running ruleless, diceless RPGs online (which is indeed the reason why I wrote it in the first place).


NARROWS is a web application with a backend. As such, it needs a server connected to the internet to be used. For installation instructions, please have a look at the file in the GitLab repo.

How does it work?

A specific telling of a story to a specific group of people is called a narration in NARROWS. A narration has a group of protagonists called characters (Player Characters in regular RPG parlance) which are played by one user each. A narration contains chapters, which is a body of text with a background image and a soundtrack. Each player submits a character action for every chapter. Once every player has replied, the narrator can read all actions and write the next chapter.

To avoid players having to create accounts, when a chapter is published a special URL is built for every character, and sent via e-mail to the appropriate player. Thus, players simply wait for an e-mail for every chapter, then click a link and they are ready to read.

How does it look?


If you prefer a video (13:20), see here. If not, scroll under the video to see screenshots.


This is the narrator’s dashboard:

Narrator dashboard

This is a narration’s overview page:

Narration overview

This is a chapter’s creation/edit page (first chapter of the narration, so no previous chapter to refer to):

Chapter authoring

This is a chapter’s creation/edit page showing the previous chapter’s reactions and text:

Chapter authoring with last reactions

This is a (published) chapter’s control panel:

Chapter control panel

This is how a chapter looks for a player:

Reading a chapter

This is how a chapter looks for a player when you scroll past the chapter text itself to see the messages and action box:

Chapter interaction tools