Give outlining a try: Now, Fargo is open source |

Give outlining a try: Now, Fargo is open source

Posted 02 Oct 2013 by 

(3 votes)
release early, release often
Image by :

submit to reddit

I've read Scripting News for years—since roughly 1998, I'd say. For reference, that was the year Google really came on the scene. But, more importantly, that was when I discovered Userland Frontier and the joys of using outlines for content authoring and content management.

Userland Frontier was an object-based (outline-based?) scripting environment that moonlighted as a content management system. Or, perhaps it was a scriptable content management system. Or, perhaps it was an outliner, and it grew into a content management system that you could script. I'm sure someone out there will have an opinion or definition that's more accurate, but I think that the outliner freaks in the audience will all agree that it was an impressive outlining and (ultimately) web publishing system. (I don't know if it was as good an outliner as MORE, but my goal isn't to start an outliner-flame-war here...)

Today, Frontier is a GPL'd application, and since it's hayday, I've mourned the absence of a scriptable content management system that I could use to easily use to programmatically publish a static website. Jekyll almost meets my needs today, and it only took the world the better part of 15 years to get there. I've written a half-dozen little website rendering frameworks since 2000, and perhaps I never took them far enough, or perhaps I never bothered to "ship early, ship often," but I feel like I'm still looking for the "right" system.

Then, back in April, Dave Winer released Fargo. Fargo is a scriptable outliner, written in Javascript. This means that it can easily be plugged into other web-based applications (saving to Dropbox, Github, Wordpress, etc.), and can work wherever you have a web browser. And, while an outliner in Javascript may not seem all that exciting to you, it's worth noting that Dave has been pursuing his vision regarding the power of outliners as writing tools in a not-quite-but-almost single-mindedly manner since... well, probably since I was plotting pictures in BASIC on an Apple ][e. In an era of pivots and startups that come-and-go, it's refreshing to know there are people who are truly committed to their vision.

With all that said, I avoided Fargo from the moment it was released. This was hard for me to do: it was an outliner (a tool for writing highly structured text, in the browser... good, good), and it was scriptable in Javascript (scriptable is good), and... it was closed source. Game over. I couldn't run my own server, and I couldn't deploy/update/modify my own client, and I wasn't about to invest in any technology that I couldn't own. I've spent the last two years trying to update my course websites to use Jekyll, so that I could put them under version control. I was not about to waste time on a web-based environment that I couldn't control or be guaranteed access to for years to come.

Now, Fargo is open source. Or if you prefer, Concord, the engine and interface behind Fargo, is open source and under the GPL. It's a bold license—viral copyleft—and it's a marvelous tool... considering I haven't used it (in depth) yet. But, I'm very, very excited to see a web-based (client-side) outliner, and corresponding server, released early under the GPL.

I have grand dreams for this little outliner, but I suspect my teaching load is going to keep me from pursuing them. For one, I work in an old language called occam. It's a parallel programming language, and we use it on the Arduino. The language is indentation-based for its block structuring (like Python), and I have dreamed of having an outliner for writing occam code for years. This past summer, I wrote a new IDE for students using the language, and put the compiler on a server. However, I can now think about moving the IDE to a web-based outliner, leave the compiler on the server, and have a (nearly) completely web-based environment for parallel programming on the Arduino. And, after I get that working, I'm going to plug in ShareJS, so I have a collaborative, real-time outliner for programming in...

All I need is infinite hours in a day.

But, in the meantime, I wanted to take a moment to gush about an open source release that makes me happy. Dave released Frontier as open source software when Frontier's userbase was dwindling, not growing. (And, yes, it was a commercial product... I'm not throwing stones so much as stating how it appeared from a user's perspective.) Fargo was born just a few months ago (in terms of its release-to-public date), and releasing it early means that more outliner and Javascript nuts can contribute to the growth and ecosystem surrounding outliners on the web. 

Now that Fargo's infrastructure is open, I want to encourage you to give it a look and give outlining a try. If you live in the terminal, think mice are an anathema, and think org-mode is the all-being, it probably isn't for you... but, if you're like the other 99.999% of us, I think you should give it a look. Or, at least, be glad that another excellent idea has been released early and often. If nothing else, I suspect that some interesting mashups are coming, tying a web-based outliner together with programming, writing, and other content generation/management environments in use today.

Good luck Dave, as you continue to pursue your passion. I'm excited to see what the next steps are, and who dives into the code to help you build something new. Thank you for releasing early; it's exciting to see, and I think some very exciting things are still to come.

submit to reddit



To turn web pages into a static site, there's also the desktop application Nanoc, which is written in Ruby:

Vote up!
Vote down!
Open Minded

It is true: there are many, many website generation frameworks. However, there are few outliner-based frameworks, and it's nice to see the release of good tools for others to build on.

In fact, the nanoc site has a rather nice list:

That said, I'm not keen on getting into a discussion that compares the apparent merits of one web generation framework over another. It sounds an awful lot like a flame war... :)

Vote up!
Vote down!

Matt is passionate about the design and development of usable languages for embedded control. You can some of his work at, a rallying point for parallel programming on the popular Arduino platform. However, most of the time Matt keeps himself busy as a member of the faculty at Berea College.

What Docker 1.0 means for OpenStack