dreamwriter
Streamlined long-form writing software. Written in Elm. [![build status][1]][2]
Try it at dreamwriter.co
Features
Dreamwriter is a browser-based writing app with a few goals in mind. (Not all of these have been reimplemented yet.)
- Let you edit a 100,000-word novel seamlessly in a single document in the browser.
- Autosave as you write, both to your local device and to remote backups.
- The text in the editor ought to look as close to the final product as possible, without the interference of annotations or other UI elements.
- There should be a logical concept of chapters for navigation and the like, but the document should not be split up into multiple documents to accomplish this.
- You should be able to take notes which accompany the document.
- The app should work completely offline, including being able to bring up the site without an Internet connection.
- It should offer a "distraction-free mode" where by default all you can see on your screen is the text.
Technology
Dreamwriter was originally written in CoffeeScript and has been rewritten in Elm. It compiles to static files only (and requires no server-side code), and dreamwriter.co is hosted entirely on Amazon S3.
It can only run in modern browsers, as it uses the following browser features:
You can compare the two code bases back when they were at feature parity: dreamwriter-coffee and dreamwriter. Naturally, development on the CoffeeScript version has ceased in favor of the more featureful Elm version.
The Strange Loop 2014 talk Web Apps without Web Servers incorporated Dreamwriter as a case study.
Building
Install node.js if you do not already have it. Then:
git clone [email protected]:rtfeldman/dreamwriter.git
cd dreamwriter
npm install
npm install -g grunt-cli bower
bower install
grunt
Now you can visit localhost:8000 in your browser! [1]: https://secure.travis-ci.org/rtfeldman/dreamwriter.svg [2]: https://travis-ci.org/rtfeldman/dreamwriter