Skip to content


Switch branches/tags

Latest commit


Git stats


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


A JavaScript framework for writing mutable narratives

Integration tests

Windrift has been used to author interactive hypertext stories including the award-winning Harmonia in 2017, Stone Harbor in 2016, and The Ballroom in 2019, all by Liza Daly. It was also used by Enrique Henestroza Anguiano to write The Imposter (2018) and José Carlos Dias to produce the Portuguese translation of Stone Harbor in 2021.


The official manual is continuously published as features are added and is itself a Windrift story. The manual is the best way to quickly get an overview of Windrift. Corrections and requests for coverage are gratefully accepted.

Example stories

Stories demonstrating use of Windrift 2 from the basic to the advanced are available as part of the official manual , as well as in the Windrift Playground. Source code is available for all example stories.

Quick start


To ensure you're using a fully-compatible version of Node, use Node Version Manager. Follow its installation process for your platform and then run:

nvm install 14
nvm use 14

Then to install Windrift:

npm install

(Windrift comes ready to deploy using Vercel, which requires a maximum Node version of 14. If you're deploying elsewhere you could use a Node version greater than 14.)

To start a new story

npm run new <story-id>

The story identifier must be a single string, like "west-of-house" or "colossal-cave." See the manual for details.

To run the local development environment

npm run dev

Other commands, including deployment options, are described in the Windrift manual.

About version 2

This is a complete rewrite of Windrift, now based on NextJS and written in TypeScript.

Windrift no longer separates the core library from the web framework, which was previously available as the windrift-starter repo. Keeping windrift-starter and windrift core separate made for a confusing installation and update process, and neither was useful without the other.

Windrift 2 unifies them into a single NextJS application, capable of hosting multiple stories. Authors can take advantage of any affordances offered by NextJS, including the free deployment options via Vercel.

Because the core Windrift code is bundled with each story repository, authors can fully modify or alter any fundamental behavior of the library.

The v1 branch is no longer receiving updates.