Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Netlify Status

This is a web implementation of a dirty trail. You can access it in

Currently, it offers a single narration and no internationalization. I'm working on it!


Each narration has its own subfolder under /public/narrations. The scenes are divided into folders, which are kind of acts. The name of the folder under which a scene is, will be the title of all those scenes.

Each scene is composed of two files, a .md file and a .yaml file. The two of them need to have the same name. In the .md file there is the prose, and in the yaml, the metadata.

Both files are merged together and the resulting one copied together to the appropriate folder via the npm run buildNarrations script. This script also adds the title and id to the scenes based on the folder name.

Remember, after modifying a narration, run:

npm run buildNarrations

How to modify a narration

Just modify the scenes you want to by editing their .md and .yaml files. Don't bother modifying the autogenerated versions of them!.

You can also add new scenes to existing acts, remove acts or create new acts.

How to create a new narration

Create a new folder under public/narrations and start adding scene. Beware, currently there is no narrations selection.

Testing utilities

Currently there is no automatic testing for the narrations, so you won't get to know if your paths can be really traversed or not. However there are three utilities to test narrations:

  • npm run test: it checks that your scenes are valid.
  • npm run narrationsToGraph: it exports each narration to its own .graph file. This graph format is compatible with
  • npm run narrationsReport: it outputs to the console a report of each narration, and find possible broken links between scenes.


These things have icons associated:

  • Enemies.
  • Weapons.
  • Ammunitions.

The icons are automatically selected based on:

  • Enemies: their name. For example, an enemy called Boar will try to get its icon from /public/Boar.svg.
  • Weapons: their type. For example, a revolver gets its icon from /public/revolver.svg.
  • Ammunitions: their type. For example, bullets will get two icons: /public/bullets.svg and /public/bullets-empty.svg.


This is a Next.js project bootstrapped with create-next-app.


Web UI for a dirty trail






No releases published


No packages published