Balladeer in brief


You are reading a book. You are playing a video game. Culturally, what lies between?

In that space sits the Web and all its related technologies. We've had it for decades and it has served us in different ways. It was a source of information. It was a platform for commerce. It was a nexus for social and cultural messages. It was a surface for state and corporate surveillance.

The Web is a mature technology now. It is better than it was at the beginning. Better to suit the big outfits. Better to serve the individual.

What has been lacking is a common understanding of why an individual would run his own web server these days. The answer is as old as humanity itself.

In order to tell a Story.


Story-telling is at the heart of human culture. Personal stories, family stories, folk stories. It is a natural instinct to tell them. And now there is a free and modern option for those who want to do that in 2021.

Its name is Balladeer.


  • Balladeer is 100% Free software.
  • Game logic is Python code.
  • Dialogue lives in separate screenplay files.
  • Rich syntax for text markup.
  • Story renders in pure HTML5 and CSS3. Javascript is optional.
  • Serve web-mode for the browser experience or run old-school in a terminal.

Balladeer helps you build web-native narratives for a decentralized world.


Balladeer sprang from a project I did a couple of years ago. I made a little puzzle game for a competition called NarraScope.

Over two fortnights, in the evenings after work, I wrote the whole thing in Python because I didn't fancy tangling with Javascript.

A screenshot of the game Tower of Rapunzel

That's how, right from the beginning, Balladeer has hosted multimedia; images, audio, and video.

Added to that is support for computational narrative and parser-based interactive screenplay. If you have a research interest in this area, you'll find Balladeer well fitted for that purpose.

And this is where the power of the Python language really shines. I'm going to make a wild claim: Balladeer has the simplest, most flexible, most dynamic command parser in any game framework.

If you disagree, please post a link to a better one in the comments section.

What Next?

The Balladeer blog hosts regular articles on how to use the framework. They are tagged, so you can begin with the basics.

These projects are available to download, run and study:

Balladeer relies heavily on other libraries, known as the Turberfield packages. Each of those has its own online documentation. And you'll want to learn some reStructuredText.

Don't forget you can post comments under the blog articles, or raise issues at the code repository.

Have fun telling your Story!