All Projects → rtfeldman → Dreamwriter

rtfeldman / Dreamwriter

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

Programming Languages

javascript
184084 projects - #8 most used programming language

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:

  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! [1]: https://secure.travis-ci.org/rtfeldman/dreamwriter.svg [2]: https://travis-ci.org/rtfeldman/dreamwriter

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].