/windrift

A JS framework for writing mutable stories

Primary LanguageTypeScriptMIT LicenseMIT

Windrift

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.

Documentation

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

Dependencies

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 18
nvm use 18

Then to install Windrift:

npm install

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.

Contributor acknowledgment

  • 6notes: Playwright test suite conversion