• Stars
    star
    459
  • Rank 92,240 (Top 2 %)
  • Language
    JavaScript
  • License
    Apache License 2.0
  • Created over 9 years ago
  • Updated over 8 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

More Repositories

1

seamless-immutable

Immutable data structures for JavaScript which are backwards-compatible with normal JS Arrays and Objects.
JavaScript
5,363
star
2

elm-spa-example

A Single Page Application written in Elm
Elm
3,251
star
3

elm-css

Typed CSS in Elm.
Elm
1,213
star
4

elm-workshop

An introductory Elm workshop. Video available on Frontend Masters!
Elm
438
star
5

elm-0.19-workshop

Elm 0.19 workshops. Includes Intro and Advanced courses.
Elm
210
star
6

rust-1.51-workshop

Richard Feldman's Rust workshop
Rust
186
star
7

node-elm-compiler

A Node.js interface to the Elm compiler binaries.
TypeScript
170
star
8

elm-in-action

Resources for the Elm In Action book.
JavaScript
160
star
9

elm-validate

Convenience functions for validating Elm data.
Elm
144
star
10

node-test-runner

Runs elm-test suites from Node.js. Get it with npm install -g elm-test
JavaScript
132
star
11

elm-google-maps

Using Google Maps in Elm by way of Polymer
Elm
56
star
12

elm-use

Switch between Elm versions
JavaScript
38
star
13

elm-iso8601-date-strings

Convert between ISO-8601 date strings and Time.Posix
Elm
30
star
14

elm-web-workers

Write Elm code that talks to Web Workers.
Elm
28
star
15

selectlist

A nonempty list in which exactly one element is always selected.
Elm
27
star
16

elm-json-experiment

Experimental API for building JSON decoders
Elm
20
star
17

lambdaconf-2015-elm-workshop

Materials for the Elm Workshop at LambdaConf 2015
Elm
20
star
18

grunt-elm

Grunt plugin that compiles Elm files to JavaScript.
JavaScript
19
star
19

elm-codify

A tool to generate Elm decoders, encoders, and type aliases from JSON.
Elm
16
star
20

elm-0.18-workshop

An introductory Elm 0.18 workshop.
Elm
14
star
21

elm-node-app

Communication layer so Elm code can talk to Node.js code.
Elm
13
star
22

elm-css-helpers

Helpers for using elm-css with elm-html
Elm
11
star
23

dotfiles

Configuration files I use.
Shell
11
star
24

style-elements-demo

style-elements demo for ReactiveConf 2017 talk, "CSS as Bytecode"
Elm
8
star
25

elm-sorter-experiment

Experimental Sorter/Dict/Set API
Elm
8
star
26

elm-hex

Work with Hexadecimal numbers in Elm.
Elm
6
star
27

dreamwriter-coffee

Streamlined writing software. Written in React and CoffeeScript.
CoffeeScript
6
star
28

vector

List where head & tail don't return Maybe and still can't crash
Elm
6
star
29

count

Call record constructors with increasing integers. Surprisingly useful!
Elm
5
star
30

elm-signup-form

JavaScript
5
star
31

test-update

Convenience functions for testing update functions
Elm
5
star
32

mloc-2015-elm-workshop

Materials for the Elm Workshop at mloc.js 2015
Elm
5
star
33

hashed-class

Generate CSS classnames by hashing their styles.
Elm
5
star
34

hex

Work with Hexadecimal numbers in Elm.
Elm
4
star
35

roc-decimal-draft

Rust
3
star
36

quicksort-benchmarks

quicksort-benchmarks
Swift
3
star
37

csrf-xhr

Automatically add Rails CSRF tokens into XMLHttpRequest headers.
JavaScript
3
star
38

elm-in-action.com

Website for the book Elm in Action, from Manning Publications
3
star
39

console-print

Print special characters to the console, in Elm
Elm
3
star
40

ziplist

DEPRECATED in favor of rtfeldman/selectlist (better name!)
Elm
3
star
41

path

Elm
2
star
42

operation-pterodactyl

πŸ¦‰
Elm
2
star
43

elm-css-util

Utility functions shared by elm-css and elm-css-helpers
Elm
2
star
44

elm-dropbox

Elm API for integrating with Dropbox
JavaScript
2
star
45

legacy-elm-test

An implementation of the legacy ElmTest module for backwards compatibility.
Elm
2
star
46

openresty-postgres-example

RealWorld example backend using OpenResty, Postgres, and nothing else
JavaScript
1
star
47

binstall

JavaScript
1
star
48

sweetvalidation

CoffeeScript
1
star
49

promises-done-polyfill

Polyfills Promise.done()
JavaScript
1
star