windrift
windrift copied to clipboard
A JS framework for writing mutable stories
Windrift
A JavaScript framework for writing mutable narratives
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 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.