Squiffy is a tool for creating multiple-choice interactive fiction. You write your story in a simple text format using sections and passages, and Squiffy compiles it into a playable HTML page. No programming knowledge is required for basic stories, but you can use JavaScript for more advanced logic.
The last release of Squiffy was v5 back in 2015, and I stopped working on it (along with Quest and textadventures.co.uk) in early 2017.
I came back in mid-2024, and now I’m happy to announce the first beta of Squiffy 6.0, which is a big rewrite (no more jQuery, Squiffy is now a monorepo consisting of various TypeScript packages).
There is a brand new site at squiffystory.com, and there’s a what’s new page which has all the details, but here’s a summary…
New web-based editor
The Squiffy editor is at app.squiffystory.com. The old downloadable desktop app is gone, replaced by a Progressive Web App which works offline. Instead of syncing your game with an account on textadventures.co.uk, everything is now saved locally to your device.
Editor features include:
- Live preview as you type
- Responsive design that works on mobile and tablets
- A “go back” button for testing, so you don’t have to keep restarting your story
- Export as a single self-contained HTML file, or as a ZIP
New template engine
The biggest breaking change is that the old “text processor” syntax ({if}, {else}, etc.) has been replaced by Handlebars. This gives you a much more capable and well-documented template language. Basic stories that only use sections, passages, links, and simple attributes should work without changes.
Handlebars helpers are used for some of the new features, including:
- Animation effects - Text can appear with typewriter, fade-in, toast, and other animation effects using
{{#animate}} - Live text - Use
{{live "attribute"}}to display text that updates in place when an attribute’s value changes - Conditional attribute setting - Use
{{set}},{{inc}}, and{{dec}}inside{{#if}}blocks without needing JavaScript
Upgrading from v5
Basic stories should work without changes. If you used dynamic text features, you’ll need to update to the Handlebars syntax. The what’s new page in the documentation has more details.
Try it out:
- Editor: https://app.squiffystory.com/
- Documentation: https://squiffystory.com/
- CLI:
npx @textadventures/squiffy-cli mygame.squiffy
This is a beta, so there will be bugs. Please report any issues on GitHub, and feel free to ask questions or share feedback in GitHub Discussions, on Discord, or here!