Wow, what a week! I had anticipated a launch two weeks ago, but decided to hold off until I'd shipped a couple of last-minute features, namely expanding the program's vocabulary with nearly 200 new place types, and updating it to fail forward if it encounters words that it doesn't recognize. On Thursday, I finally bit the bullet and made my first public announcement on Hacker News.

This was a bit of a make-or-break moment for me, because while I knew what I had built was useful to me, I had no idea if other people would "get it". Certainly the concept proved difficult to explain to friends in a way that made sense. If I failed to gain traction on HN, I planned to make a few attempts elsewhere, then effectively shelve the project and move on to other things.

Instead, a lot of people seemed to be as excited by it as I was. I spent all day and evening on Thursday responding to messages via Discord, HN, and email, as well and shipping a quick bug fix in response to user feedback. On Friday, I woke up to find my first subscriber on Buy Me a Coffee (thanks, Rafael!). Energized, I dove into development of the first of the two feature requests that've come up by far the most: making the input case-insensitive. This is not a thing that Rust makes particularly easy, certainly not to do efficiently, but I came up with a clever solution and had that deployed at the end of the day.

Issues closed last week

  • More permissive parser accepts commands with unknown words

  • Add a ncurses-style box view for characters and locations

  • Added the more alias for generating additional suggestions

  • Updated the tutorial for the 0.2 milestone release

  • Fixed the more alias not being available on browsers lacking local storage support

  • Support thing types that the generator can't name independently

  • Added approximately 180 new place types

  • Added (and then emboldened) the Buy Me a Coffee link

  • Fixed styling on the input box in dark mode

  • Made autocomplete case-insensitive

This week

I had a lot of trouble maintaining the discipline of not working on the project over the weekend, but this is currently my full-time job, and I keep an according work schedule.

My plan for this week is to deliver the other big request: command history. That will probably be simple enough, but it dovetails nicely into a few other adjacent features and quality-of-life changes that I'll also hammer away on this week. Specifically, I want to persist some amount of scrollback upon repeat visits, as well as saving undo history between visits. (Also implied by the preserved scrollback is a clear command, in case you don't want that history any more.) I'm not 100% sure how many of those features I'll deliver this week, but we'll see how it goes.

The other thing I intend to do is work out my roadmap for the following two weeks. I will be taking most of the month of December off, so I want to figure out which features I need to deliver before I can step back for a little while. Off the top of my head, there are two big ones:

  • Introduce relationships between things.

  • Allow people to import and export their data.

Lacking any sort of cloud sync feature, I don't want to leave people without a way to keep their data safe for long. For most of the development period, the journal was a bit of a toy feature, but now that it's feasible to have an entire campaign sketched out in there, the stakes are a lot higher. I've had quite a few requests for storing descriptions and notes in the journal, but I don't want to touch that until export and cloud sync are viable options to keep your data safe. (Look for that in the new year.)