"I've always wanted to be able to guide others through my code and tell the story of how it came to be."

 Mark Mahoney


I am the creator of Storyteller, a free and open source tool that helps software developers walk others through their work in guided code 'playbacks'. Playbacks replay programming sessions with a narrative that comes from the author. All that is needed to view a playback is a web browser. Viewers can get inside the author's head when they were writing code. Authors can include text, hand-drawn pictures, screenshots, and videos and link them directly to highlighted sections of code.

video of a playback

Viewers move through a playback by clicking on the comments on the screen. This will take them to a point in a programming session where an author has something interesting to say about the code. The playback can be viewed in 'code' mode or 'blog' mode (mobile). The code can be downloaded at any point in the playback.


Are you curious about how to view a code playback in a web browser? See all of the features in this video:

Do you want to see how to create your own playbacks? All you need is VS Code and the 'storyteller' extension. Watch this video to learn how:


NEW! I have created a site to share code playbacks with others called the Playback Press. The Playback Press is a place where authors can share their playbacks with others. You can find all of mine here.

All code playbacks on the Playback Press site have an AI assistant built in to them. The AI assistant can answer questions about the code in the playback. It can also generate self-grading multiple choice questions from the code. This makes the code playbacks like a smart tutor that can fill in any gaps in your knowledge and test your understanding. You can see a video of the AI features here:


I am also a computer science professor and I create collections of code playbacks instead of assigning textbooks for the courses that I teach. Here is a post with my thoughts on media used to learn about programming. You can read or share one of my free 'books' below.

elixir book

An Animated Introduction to Elixir

An introduction to the functional, concurrent programming language Elixir.

ruby book

A Brief Introduction to Ruby

A brief introduction to the masterfully designed language Ruby.

...

An Animated Introduction to Clojure

Clojure is a fun and easy to use functional programming language.

sqlbook

Database Design and SQL for Beginners

Learn what a relational database is and the basics of how to design one. Then you will learn to write queries in SQL.

worked sql examples

Worked SQL Examples

Watch me write 30 more SQL queries. I show how to build them step-by-step.

...

Mobile App Development with Dart and Flutter

Flutter is a mobile front-end framework for making mobile, web, and dekstop apps.

...

An Animated Introduction to Programming in C++

Learn to program in one of the most popular languages, C++. This is appropriate if you are brand new to programming.

...

An Animated Introduction to Programming with Python

Learn to program in one of the most popular languages, Python. This is appropriate if you are brand new to programming.

...

An Introduction to Web Development from Back to Front

Learn how to make web applications using HTML, CSS, and Javascript.

word zearch book

How I Built It: Word Zearch

Watch me create a word search game using Javascript, HTML, and CSS.

...

OO Design Patterns with Java

Design patterns are solutions to common problems that show up over and over in software development. Learn about some of the most common object oriented design patterns.

...

Programming with SQLite

Learn how to use the relational DBMS SQLite in Python, C/C++, and Java.

...

Do you want to make your own playbacks?

Storyteller is free and open source software. You can make your own playbacks and share them with others. Here is a brief demonstration of how to make playbacks.

Students consistently say that playbacks are more valuable than textbooks and videos. They use the playbacks as references when writing their own code. 88% of my students said that they would like their other CS courses to use playbacks.

You can read my SIGCSE paper about how I use code playbacks in my teaching here: Storyteller: Guiding Students Through Code Examples. Or, you can watch a summary video of the paper here:


Playbacks aren't only for educational purposes. Employers typically want some evidence that one can write effectively about their work. Anyone can create a portfolio of code playbacks that shows how one thinks about problem solving and coding. More importantly, playbacks demonstrate how one communicates about their craft. A portfolio might be more valuable than a GitHub or LinkedIn profile.

Playbacks can also be used by professional developers to prepare others for a code review. Playbacks allow code reviewers to get inside the head of the author to see and hear what they were thinking about when writing code.

I am still trying to make code playbacks better. I would love some feedback on the medium. Can you spare a couple of minutes to take this survey? If you'd like some help using the tool or would like some more info you can reach out to me directly here.