• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 9 years ago
  • Updated about 7 years ago

Reviews

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

Repository Details

A simple silo-free blogging tool that creates beautiful essay pages.

myWordEditor

A simple silo-free blogging tool that creates beautiful essay pages.

Here's an example of the kind of page you can create with MyWord Editor.

And the blog post announcing the release of MyWord Editor in open source.

Demo app

Here's the demo app for this project, MyWord Editor.

You can set up your own blogging environment and use it to host your writing and for other people, your friends, colleagues, members of a club, whatever you like.

My name is Dave Winer. I blog at Scripting News. I wrote some of the earliest blogging, RSS and podcasting software.

It's radical software

These days blogging tools try to lock you into their business model, and lock other developers out. I have the freedom to do what I want, so I decided to take the exact opposite approach. I don't want to operate a free public blogging tool and lock users in and make them dependent on me. Instead, I want to learn from thinkers and writers and developers. I want to engage with other minds. Making money, at this stage of my career, is not so interesting to me. I'd much rather make ideas, and new working relationships, and friends.

So MyWord Editor is radically silo-free.

How to clone this

This app runs on the user's computer, in a browser. It's a JavaScript app. It communicates via a simple API, with a nodeStorage server, that uses Twitter for identity and Amazon S3 for storage. That server, like the app, is open source. The first part of creating your own blogging system is to set up a nodeStorage server.

Once you've done that, download the contents of the myWordEditor repository, and put it in a folder that's publicly accessible over the web. I like using S3 buckets, but you could put it in a folder on an Apache or nginx server.

Edit the config.json file so that the urlTwitterServer string is the URL of your nodeStorage server.

You can also change the default image for your users' blog posts, or you can leave it as-is, with a nice picture from Wikipedia of the Grateful Dead.

Test the installation by logging on. Follow the instructions on the MyWord Editor blog.

Updates

v0.73 -- 9/19/17 by DW

Changed URLs in includes in <head> section of index.html to not be specific to HTTP, so that people can run their nodeStorage servers behind HTTPS.

v0.72 -- 7/27/15 by DW

Added strikethrough button to the toolbar, demonstrating that we can add items to the toolbar. They come from this list.

v0.71 -- 7/27/15 by DW

Add Facebook and Twitter metadata to the <head> section of the home page.

Changed the default value of the flAutoPublish setting from false to true. This is the behavior I demo in the video, and it seems to be what people expect.

v0.70 -- 7/25/15 by DW

By default Disqus comments are now on. You can turn them off in the Settings dialog.

v0.69 -- 7/25/15 by DW

Added rssCloud support to the RSS feed produced by MWE.

The feature can be turned on in config.json, if you're running your own MWE.

I'm using Andrew Shell's rssCloud server for notification, rsscloud.io.

Here's my RSS feed, as an example.

v0.67 -- 7/24/15 by DW

We now have a beautiful editor, integrated, medium-editor. Problem solved. :-)

You can read about the update in this note, and a blog post.

v0.64 -- 4/3/15 by DW

Run config.startupCode at startup. See blog post for details.

v0.63 -- 4/2/15 by DW

Took a step toward editor plug-ins.

v0.62 -- 4/1/15 by DW

Support for Disqus comments. See this blog post for details.

v0.61 -- 3/31/15 by DW

Add scalars from appConsts and appPrefs to the pagetable in the rendered page. This allows scripts running in the page to know the title of the site, the version of MWE that created the page, etc.

In the title of essay pages, we use the author's name if it's available instead of the name of the product. So a story might say "Jordan Jones: What I want for Christmas" instead of "MyWord Editor: What I want for Christmas".

v0.60 -- 3/30/15 by DW

This is the first release of MWE with template support. Be sure to read the note about breakage on that page. Any work you do with templates now is likely to break.

v0.59 -- 3/27/15 by DW

First source release of the JavaScript code and CSS styles used in the rendered pages. Explained in this blog post.

v0.58 -- 3/27/15 by DW

The Open file command in the Editor menu is replaced by a new History menu. Explained in this blog post.

v0.57 -- 3/26/15 by DW

There were lots of debugging calls to console.log that displayed huge data structures. I quieted them down, so we get simpler readouts from the console, now that this code isn't so new. Changed the urlTemplateFile constant to be a relative URL, relative to the folder MWE is running from. That way I can change the template on my server without changing it on everyone's. Still more of this kind of factoring to do. Must move carefully (slowly).

v0.56 -- 3/26/15 by DW

New supported value in config.json -- googleAnalyticsAccount. If specified, we use it in ga.js to make calls to Google Analytics.

v0.55 -- 3/26/15 by DW

Change notes in this blog post.

v0.54 -- 3/24/15 by DW

A new command in the Editor menu: Publish all posts. After confirmation, it opens each of your posts and does exactly what clicking on the Publish button would do. I added this feature because I wanted a quick way to re-generate all the files. It'll be useful if there's a template change, or other change that requires a complete rebuild of a blog.

Also improved the error dialog on startup, if there was an error connecting to the server, it would report the problem as the user not being whitelisted. Usually the problem is the URL of the nodeStorage server was not correctly specified. I got bit by this myself. We needed a better message here.

v0.53 -- 3/24/15 by DW

In addition to generating an HTML file for each essay, we also generate a JSON file. Example. I think this will be generally useful, I want to use it immediately to try to create a home page essay browser, using snap.js. There's a corresponding element in the RSS feed, called <source:linkJson>.

Support

If you're a developer, or running a server, please ask questions on the server-snacks mail list.

If you're a blogger, and need help writing with MWE, please join the myword-editor mail list.

In either case, please read the docs and scratch your head at least a little before asking for help.

More Repositories

1

concord

Core outliner
JavaScript
440
star
2

river5

A river-of-news RSS aggregator in JS running in Node.
JavaScript
428
star
3

river4

A JavaScript river-of-news aggregator running in Node.js
JavaScript
265
star
4

nodeRunner

nodeRunner is a JavaScript app that runs scripts every second, minute, hour or day, each group in its own folder.
JavaScript
185
star
5

1999-project

Docs, support and sample code for the 1999 server and app project.
JavaScript
158
star
6

pagePark

I wrote this simple Node.js folder-based HTTP server that serves static and dynamic pages for domains I've bought but not yet used. Then I kept going...
JavaScript
136
star
7

Scripting-News

I'm starting to use GitHub for work on my blog. Why not? It's got good communication and collaboration tools. Why not hook it up to a blog?
HTML
112
star
8

nodeStorage

A simple storage system based on Twitter identity implemented in Node.js.
JavaScript
103
star
9

tweetsToRss

A node.js app that periodically reads a Twitter account and generates an RSS feed from it.
JavaScript
86
star
10

reallysimple

A Node package that reads RSS, Atom and RDF feeds and calls back with a simple, consistent JavaScript object.
JavaScript
84
star
11

fargoPublisher

Fargo Publisher is a node.js app that connects to Fargo to publish a folder of HTML docs.
JavaScript
71
star
12

xml-rpc

XML-RPC client and server in JavaScript.
JavaScript
61
star
13

myWord

An easy open source way to create nice-looking web pages for essays.
HTML
58
star
14

feedRead

Read a feed and call back with a JavaScript object.
JavaScript
56
star
15

feedsForJournalists

An open source project to create a great list of feeds for journalists to follow.
45
star
16

artDownloader

A collection of great art in a folder. Download and point your screen saver at the folder for a live art show.
JavaScript
38
star
17

frontier

C
38
star
18

outlineBrowser

JavaScript code to display JSON outlines.
JavaScript
37
star
19

publicfolder

A Node app that runs on your desktop and keeps an S3 location in sync with a folder on a local disk.
JavaScript
34
star
20

feedBase

A project to get feeds into a base.
JavaScript
33
star
21

opmlPackage

Node and browser-based code that helps developers support OPML in outliners, feed readers and renderers.
JavaScript
29
star
22

rssToSlack

A JavaScript app that reads a set of feeds and posts the new items to a Slack channel. Runs in Node.js.
JavaScript
27
star
23

feedToMasto

Node app that checks a list of feeds periodically, post new items to Mastodon.
JavaScript
26
star
24

trex

OPML and JavaScript-based content management
C
25
star
25

riverBrowser

A JavaScript toolkit that displays a river of news
JavaScript
25
star
26

reader

JavaScript package for feed reading and aggregating.
JavaScript
22
star
27

utils.js

A library of JavaScript utility routines that are patterned after Frontier verbs
JavaScript
22
star
28

drummerSupport

Support for Drummer users.
19
star
29

listicle

A new version of the software used in the Cluetrain listicle
19
star
30

fargoTemplates

The templates for the core types in Fargo 2. You are free to clone them, modify the result and redistribute.
18
star
31

githubpub

A Node app that serves from GitHub repositories.
JavaScript
18
star
32

betterWebSocketsDemo

WebSockets demo app in JavaScript, both client and server.
HTML
16
star
33

opml.org

A repository to back up the opml.org website.
JavaScript
15
star
34

upstreamer

A Node.js app that keeps a folder backed up on Amazon S3.
JavaScript
15
star
35

feedParserDemo

A demo of Dan MacTough's feedparser package for Node.
JavaScript
15
star
36

interAppComm

Demonstrates a simple way of doing interapplication communication in JavaScript using localStorage.
15
star
37

Icon-Chooser

An icon chooser for Font Awesome icons, running in Bootstrap 2.
15
star
38

feedlandSupport

A place to share and discover feeds.
14
star
39

myLogseqBlog

A cross-platform Node app that publishes a LogSeq journal as a blog via Drummer
JavaScript
14
star
40

macwrite

A simple demo app for nodeStorage.
HTML
13
star
41

Mastodon-API

I'm working on connecting to the Mastodon-API, getting help from friends who have been down this path.
JavaScript
13
star
42

oldSchoolBlog

Blogging in the ways of the old school.
JavaScript
12
star
43

instantOutlines

Sharing outlines between apps using GitHub as an intermediary.
12
star
44

likes

A simple likes server for the web running in Node.
JavaScript
11
star
45

drummerRFC

A place to post RFCs for people who use and develop in Drummer.
11
star
46

electricPork

An Electron app that helps you write and publish threads on Twitter.
JavaScript
11
star
47

titlelessFeedsHowto

A simple feed item viewer that works with titled or titleless items.
11
star
48

rss

JavaScript code to build an RSS feed from a standardized structure.
JavaScript
11
star
49

wpIdentity

Implements OAuth identity with wordpress.com for Node.js apps.
JavaScript
10
star
50

myRoute53

A simple utility that creates a JSON file with a map of your Amazon Route53 names. Runs in Node.js.
JavaScript
10
star
51

wp2opml

10
star
52

feedland

The source code for the NPM feedland package.
JavaScript
10
star
53

opml

A repo in transition
9
star
54

urlShortener

A JavaScript URL shortener running in Node.js.
JavaScript
9
star
55

subscriptionListCleanup

Read an OPML subscription list, and loop over all the feeds and only pass on the ones that are reachable and parseable.
9
star
56

docServer

Browse scripting verbs in a web app.
JavaScript
8
star
57

1999client

A client app for 1999.io, in JavaScript, using WebSockets.
JavaScript
8
star
58

appServer

Factored code that was appearing in all my servers.
JavaScript
7
star
59

ioServer

A server and reader for outlines that update in real time.
JavaScript
7
star
60

utils

All the JavaScript utility routines I use across all my apps, both in the browser and in Node.
JavaScript
7
star
61

oldSchoolNightly

Uploads JSON, OPML, RSS and HTML files from Scripting News to the repository on GitHub, every night at midnight.
JavaScript
7
star
62

s3folder

A Frontier tool that keeps a folder on your hard drive in synch with a location in the S3 hierarchy. Also a demo of using GitHub to manage a Frontier tool, a task previously thought to be impossible! :-)
7
star
63

textcasting

An HTTP server that can post messages to Mastodon, Bluesky, Twitter and WordPress via REST call. A bridge betw web writing tools and various places people want to post their writing to.
JavaScript
6
star
64

tweets.opml.org

A directory of tweets.opml files for people using tweets.opml.org.
6
star
65

feeder

A set of services that do feed reading for Drummer scripts.
6
star
66

opmlToJs

opmlToJs makes it easy to read and write OPML files in Node apps.
JavaScript
6
star
67

english

The server behind the English editor.
JavaScript
6
star
68

superSync

Keep folders in sync with Amazon S3 locations.
6
star
69

xmlViewer

Try to get a browser to view an RSS feed these days. They just won't do it. This app does.
HTML
6
star
70

tweetFeedSupport

Twitter + Markdown βž™ RSS (feed readers)
5
star
71

bookmarkletMaker

A browser-based app that makes bookmarklets easier to make
HTML
5
star
72

blue.feedland

A place to discuss and develop an app that connects social media apps via feeds.
JavaScript
5
star
73

rssSpec

A GitHub repo with the source of the RSS 2.0 spec website at cyber.harvard.edu.
HTML
5
star
74

drummerCms

A shell for Old School to connect it with Drummer. Released so other outliners can hook up to Old School for blogging.
JavaScript
5
star
75

folderToJson

Generates a JavaScript object (or JSON text) that represents the structure of a folder.
JavaScript
4
star
76

mastodon

The beginning of support for Mastodon in DaveLand.
JavaScript
4
star
77

metaweblog

Client and server implementation of the Metaweblog API in JavaScript.
JavaScript
4
star
78

mail

One place to send mail from all my Node apps.
JavaScript
4
star
79

electronLand

My container for Electron apps that use nodeStorage for identity.
JavaScript
4
star
80

worldOutline

The JavaScript port of the World Outline software.
JavaScript
4
star
81

github

Read and write files to a GitHub repository
JavaScript
4
star
82

scripting

Heh I found a way to add stuff to my GitHub profile page. Let's see how this sucker works.
4
star
83

opmlToGitHub

A Node app that reads an OPML file, converts it to Markdown, and uploads it to GitHub.
JavaScript
4
star
84

everyMinute

Runs a JavaScript callback with setInterval, at the top of every minute, with no drift.
JavaScript
4
star
85

http

The heart of a Node-based web server to be included in other apps. I got tired of writing the same code over and over.
JavaScript
4
star
86

kimParker

3
star
87

checkFeedsInOpml

A utility that checks if the feeds in an OPML list are accessible
JavaScript
3
star
88

es6ModulesHelloWorld

A minimal app that uses modules as defined in ES6.
JavaScript
3
star
89

jsPreprocessor

A simple JavaScript pre-processor to help get your project started.
JavaScript
3
star
90

fargocms

The CMS built into Fargo, as a standalone Node.js package
JavaScript
3
star
91

s3BigUpload

Demo app for streamed uploads to S3 in Node/JavaScript.
JavaScript
3
star
92

s3

Routines that simplify the interface to Amazon S3
JavaScript
3
star
93

chat

A simple extensible JavaScript chat network
JavaScript
3
star
94

scripting.github.io

HTML
3
star
95

bookmarksMenu

Client JavaScript code that manages a Bookmarks menu.
JavaScript
3
star
96

opmlCloud

A server and desktop software that emulates Drummer's instant outlining protocol.
JavaScript
3
star
97

aceEditorDemo

I needed good demo code for the Ace editor.
JavaScript
3
star
98

blogroll

A JavaScript toolkit that displays an OPML-based blogroll, with a connection back to FeedLand for realtime features.
JavaScript
3
star
99

persists

Persistence for JavaScript objects in Node.
JavaScript
3
star
100

twitterHelloWorld

How to say Hello World via the Twitter API from browser-based JavaScript.
JavaScript
3
star