Story Planner By: Stephan Sokolow

A free, open-source tool to help keep track of things while planning and writing a story or other complex written work.
Target Audience
Design Philosophy

An interactive concept mockup which you may experiment with, and some un-published progress on translating it to a functioning Django-based prototype (screenshot) before dogfooding and iterating on the design. (Feedback welcome)

The Django prototype also features a distraction-free view mode which is key to the goal of not burdening users with the existence of features they don't use.

It is quite literally the same page as the normal mode, but with different CSS rules active. The intent being to shape my conception of the interface into something powerful and well-suited to keyboard-centric writing activities but still looking good and feeling natural for a more traditional mouse-centric look and feel.

Features not yet in either version
Completing Mocked-up Features
  • Actual editing of content
  • Collapse/expand handles for chapter/section headers
  • Generalize all chapter-related functionality (headers, per-chapter HTML, etc.) to support a hierarchy of sections.
"Keyboard-first" Interaction
  • Hotkey-triggered context menus with "type to filter, then press Enter" selection
  • Automatic highlighting/hyperlinking (in a subdued way) of words/phrases marked as being associated with supplemental information, allowing access to reference materials by positioning the cursor over or next to such a link and pressing a hotkey.
  • "Name placeholder" support with programmatic renaming
Integrated Reference Material Handling
  • Basic wiki functionality
  • Comparison matrix view for key=value data such as personality traits.
  • Consider whether a concept map [1] [2] view would be useful enough to justify and how much the maintenance burden for the user could be minimized.
Reasonable Alternative Visualizations
  • Topic-oriented word-count charts and graphs [1] [2] for identifying things such as unbalanced amounts of focus on different characters.
  • In-universe timeline [1] [2]
  • Support for switching cards between chronological and narrative ordering in the default visualization
  • Maybe support for importing maps and pushpinning events onto them like in Campfire?

    If so, I'll probably want to also include something with an interface like the measure tool in Google Earth but enhanced to quickly calculate travel times in the face of varying terrain, states of restedness, and modes of conveyance.

Upload-ready Export Support
  • Single-page HTML
  • One-page-per-chapter HTML
  • ePub ebook (convertible to Mobipocket for Kindles)
  • OpenDocument for compatibility with other tools [1] [2] [3] [4], if it's not too difficult.
  • Some human-editable textual format (Markdown? ReST? asciidoc?)
  • Explore the feasibility of offering support for sandboxed export plugins to support things like fimfiction-style BBcode or specially-converted HTML to work around's decision to do things like silently stripping %.
  • Explore the feasibility of offering reliable HTML import support.
Easy Installation and Collaboration
  • Rebase on top of TiddlyWiki 5 to get...
    • operation as either a server or a single, self-editing HTML file
    • easy storage and cross-referencing of supporting information.
    • full-text searching

    (Maybe for version 2.0. Gaining the requisite knowledge of TiddlyWiki internals was a demotivating factor for years. It's easier for me to just reinvent the relevant wiki and search stuff on top of Django and use something like py2exe for Windows users.)

Known Competitors

To date, I have not found any tool that follows the design philosophy that I'm trying to embody and all of the closest ones fail the "is it free so I can convince fanfiction authors to try it?" test.

However, nothing exists in a vacuum, so here is an overview of the prior art I have encountered, in the order I encountered it:

Anthemion Writer's Café

Back in the early 2000s, the precursor product to this (StoryLines 1.x) was my inspiration for this project.

While I thought the overall effect of the timeline widget was cool, I lacked the vocabulary to call it "counter-productively skeuomorphic", and could only say that I didn't like the way it precluded putting a useful amount of text in each note card and that something just felt unsatisfying about horizontal being the primary scrolling direction on a desktop application.

If StoryLines 2.x (which is part of Writer's Café) works for you, that's good, but I'd never be satisfied with that design without the ability to zoom and pan as naturally as you can with a real corkboard and a pair of legs. That's what I mean by counter-productively skeuomorphic. It chases a UI paradigm that it's not technically possible to properly implement with current hardware.

LyX (Free)
While it's much less a total document production aid and more a semantic word processor, LyX was my inspiration for various features related to writing rather than planning.

Examples include the semi-automatic generation of an outline, the merits to a WYSIWYM approach to text composition (ie. font changes should indicate semantic rather than presentational details), and enforcing semantic-ness by discarding repeated presses of the Enter key or Spacebar while displaying an explanatory message in the status bar.

If nothing else, in this day and age of online publication, WYSIWYG is an illusion. You can't control the screen size of the reader's chosen device and you may be posting on a site which only gives you a restricted subset of semantic markup and imposes its own theme on your work, so why not just focus on the semantics to begin with, trust the browser to be smart enough to lay it out "well enough", and avoid getting mired in tweaking trivial presentation details?

If you really need to get the typesetting and other presentation details just perfect, that's something for after the composition is done anyway.

FocusWriter (Free)
FocusWriter is a distraction-free writing tool. However, it is unlike other such tools in that it recognizes that features exist for a reason.

I was introduced to it by an article named FocusWriter and how I came to despise WriteRoom and it helped to shape my conception of what a distraction-free writing option could be in a more featureful system.

While it is primarily a rich text editor, it is notable in offering a primitive semi-automatic outliner, a tracker for daily writing goals, timers, advanced "word count" support, and support for saved sessions, all accessed via panels which auto-hide at the edges of the screen when in fullscreen mode.


I was made aware of this apparently popular tool after the initial draft of my design.

There's no Linux version and I've actively tried to avoid looking too much into it to avoid copying ideas, but the tiny screenshots and described features from the site's landing page suggest that my experimentation with my developing prototype is driving me in a similar direction.

(eg. A tool that replaces your word processor and aids out-of-order writing, includes integrated storage for reference materials, and can export to ready-to-upload formats.)


I discovered this tool via a sponsorship on a Shadiversity video I watched on September 29th, 2019.

The download version doesn't work on Linux and I'm not interested in Software as a Service but there are three things I can comment on based on the preview in the sponsorship blurb:

  • I get the impression it probably isn't the easiest interface to navigate with both hands on the keyboard.

  • Maybe it's just because I'm an aspie, but their character bio view worries me. It feels like something where you could spend far too much time distracting yourself from your content to focus on customizing fine presentation details your readers will never see.

    Until user testing has proven otherwise, I'll continue to assert that a simple wiki page (markup or WYSIWYG) with support for using comfortable definition list markup to specify key-value pairs is closer to the ideal for ROI.

    However, it does prompt me to think more deeply on how best to allow the author to specify a template so they don't miss certain fields in certain bio cards. At the time, all I had was ensuring support for in-place editing in my plans for a comparison matrix which, by its very nature as a table, shows empty cells for missing data. (The comparison matrix originally being intended for checking whether you're making your characters too similar.)

  • Their ad deprived me of the ability to come up with the idea of integrated mapping on my own schedule, if it proved fitting.

    (In order to keep the UI focused and friendly for someone who isn't yet sold on the idea of using more than a text editor and their own memory, I'm being conservative about planning for new features. See also YAGNI.)

I don't intend to consider investigating my competitors more deeply until my own original experimentation for how to design a good UI starts to run dry.

However, to do my due diligence, I did skim through the options listed on after discovering Campfire. Not one of the free options had the design philosophy I'm aiming for. At the closest, they still looked more like programmer's text editors with distraction-free modes sometimes bolted on.