Need help with dreamwriter?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

464 Stars 52 Forks Apache License 2.0 402 Commits 34 Opened issues


(NOTE! This has not been updated since Elm 0.15.1.) Streamlined long-form writing software. Written in Elm.

Services available


Need anything else?

Contributors list

# 208,666
46 commits


Streamlined long-form writing software. Written in Elm. build status

Try it at


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.


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 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.


Install node.js if you do not already have it. Then:

  1. git clone [email protected]:rtfeldman/dreamwriter.git
  2. cd dreamwriter
  3. npm install
  4. npm install -g grunt-cli bower
  5. bower install
  6. grunt

Now you can visit localhost:8000 in your browser!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.