2023 May 14
Sunday evening

The Word Write Web

What's that technology we use, in between reading a book and playing a video game?

In that space sits the Web and all its mechanisms and protocols. 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.

Better at telling a story.


Story-telling is at the heart of human culture. Personal stories, family stories, folk stories. Everyone loves a good story.

Some of us like to create them too. And now in 2023 there is a free and modern option for those who do.

Its name is Balladeer.


  • Made of 100% Free software.
  • Balladeer discovers your screenplay files at runtime and selects the next scene.
  • Need a markup format for dialogue? Balladeer has one. It's called SpeechMark.
  • Is your story also a game? Write it in Python code.
  • Balladeer embraces HTML5 and CSS3. Javascript is optional, but well supported.
  • Balladeer is a simple framework for prototyping which scales all the way up to global deployments.

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


Balladeer sprang from a project I did several 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 at the time I didn't know much Javascript.

A screenshot of the game Tower of Rapunzel

Subsequent to that, I explored other ideas which you can still find publicly available. From time to time I revisit them:

I gradually evolved the notion of a storytelling framework which uses open standards to deliver animated text, graphics, images, audio, and even video. That is what Balladeer is today.

It is a very powerful integration of Python with the Web. And another thing: 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.

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

Have fun telling your Story!

Comments hosted at Disqus