This is a simple desktop editor/IDE for Tracery.
As you edit your Tracery grammar on the left, it'll live-reload new example texts on the right.
To download the latest release, go to the GitHub Releases Tab in this repo. Right now, Tracery.app is only available for macOS.
Windows and Linux builds are coming very soon. In the meanmwhile, Windows/Linux users can follow the development setup instructions below to build your own copy of the app.
It's very early prerelease! Please open issues or tweet at me (https://twitter.com/lazerwalker) if you encounter any issues. I'm particularly interested in feedback about Windows or Linux builds, as I've only really tested on macOS.
Some features include:
Worth noting: although Tracery's documentation suggests you can embed JavaScript code within your Tracery grammar (e.g. { letters: "a b c".split(" ") }
), this app only supports strict JSON for security purposes. This is a common tradeoff for Tracery-based tools; if you're used to using something like Cheap Bots Done Quick, you'll likely not even notice this.
Contributions are welcome!
Tracery.app is built using Electron, which means it's a JavaScript webapp bundled up within a native shell. Specifically, it's built using TypeScript and React, with Electron Forge to manage the build process.
Yes, Electron apps are relatively unperformant compared to building proper native apps. Have that discussion elsewhere :)
To get a dev environment up and running:
electron-forge start
will spin up a dev copy of the app with an inspector attached.electron-forge make
will compile you a full generated app binary for your current platform. If you're on a Mac, you'll either need to set up codesigning and notarization (documentation coming soon) or disable both of those by going into package.json
and removing the osxSign
and osxNotarize
keys/objects from the config -> forge -> electronPackagerConfig
subobject.For more info on dev tooling, check out the Electron Forge documentation
This project is licensed under the MIT License. See the LICENSE file in this repo for more information.
https://github.com/lazerwalker https://twitter.com/lazerwalker