TRWEdit is a novel writing oriented text editor that I’ve been developing slowly to support my novel writing efforts. On December 15, 2018, I created the first Git commit for the project. It is now December 20, 2019. Over a year has passed since I started the project.

Most of my fun projects only last for a month or two at most. They are created to serve a short term purpose. For example, I created a console application to crawl the listings at all of the used car dealerships in the area and track stats for their car inventories. When I bought a car, I didn’t need this utility anymore.

TRWEdit was built to serve a long term need for me. It takes months and months of time to write and do research for a book. I needed an application that met my eccentric needs for story writing. I tried other applications, but nothing was exactly where I wanted it. The solution, obviously, was to reinvent the wheel.

One year’s worth of wheel reinventing in and the project has some incredibly useful functionality, for me at least. According to my commit history, the only month in the past year that I haven’t done any active development was during November of 2019.

To celebrate a year’s worth of development, I’m going to break down the my development efforts by month.

TRWEdit Change Log

December, 2018

My initial work on the editor was done in a frenzy during the holiday weeks. The plan was to get so much done that I would have to keep working on the project after the holidays.

  • Basic text editor functionality
  • Added the ability to add cross referencing links to documents
  • Added concepts: People, places, things, events, and ideas
  • Added a quick way to choose a concept to reference as you type
  • Added ability to save documents
  • Created plot element structure: Universe, Series, Book, Chapter, and Scene
  • Added ability to view as many different scenes and concepts as you want at the same time
  • Added ability to move plot elements around between chapters and books

January, 2019

  • Added mind mapping functionality using reference concepts
  • Added generic text documents, called scratchpads
  • Added focus timer that won’t let you close the app until it expires
  • Added basic statistics window
  • Added automatic file revisioning
  • Bug fixes

Amusingly enough, I haven’t used mind mapping or the focus timer since I implemented the features. I stopped needed the focus timer when I kicked my video gaming habit.

February, 2019

  • Made searching for cross references case insensitive
  • Added basic spellchecking to document editor. It lets you know that you misspelled a word, but it won’t tell you how to correct it (on purpose)

March, 2019

  • Added prompt on application close to save work. I’ll give you one guess why I added that particular bit of functionality…
  • Added ability to generate an EPUB document for a book

April, 2019

April was when I stopped planning for my first book and started writing. From this point forward, I only implemented functionality that I knew I needed right away.

  • Added statistics so I could see the net word count change for a scene while I was editing it.
  • Redid document saving entirely
    • Only saves documents that have been modified, as opposed to literally everything. This reduces disk space consumption a lot.

May, 2019

  • Improved UI for universe text statistics

June, 2019

  • Added ability to filter statistics based on plot element type

July, 2019

  • Added global text search for story scenes
  • Completely revamped cross references to make them way more flexible.
    • Cross references can now have any number of relationships with any number of other concepts. Before, all the relationships were hard coded.

August, 2019

  • Save all universe data in recovery file when the application shuts down due to an unexpected error. (You only get two guess this time as to why I implemented this)
  • Added real-time statistics in the document editor for things like word count, word count changes, and keystrokes.

September, 2019

  • Added more real-time statistics for the document editor
  • Added writing stage indicator (outlining, drafting, revising…) for chapters, to help you keep track of overall progress for each part of the book.
  • Pacing visualizer UI
  • Fixed several bugs in document saving routine
    • Each document is only saved if it has been modified. Before, changing the text of a scene caused the scene’s planning document to get saved to disk again as well.
  • Wrote a routine to delete all the duplicate documents that got saved to my project directory.

October, 2019

  • Fixed a bug where the application crashed when saving an empty scene for the very first time.

December, 2019

  • Added auto save and document recovery functionality. (Because sometimes your laptop will power off without warning)
  • Added query builder so I can reconstruct the universe at any point in time
  • Added API to get the change in word count for the universe over time
  • Added basic text search in document editor to make it easier to find certain phrases in a document.

Planned Features

  • Finish implementing auto save for all types of documents
  • Add global text replace functionality to complement global search
  • More universe queries so I can make fancier charts to post online

Future Development Plans

At some point in the future, I might decide to open source this whole project. I can’t do that right now because:

  1. I don’t want to publish anything until I’ve found all the major bugs
  2. I need to make the codebase compliant with the open source software licenses of the dependencies that I’ve copied into the project and modified

There’s no way I would charge people for something like this. Charging money implies that I should provide customer support. I’d rather support users of the software in the open source way, and give people the option to donate to the cause if they felt like it.


Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *