Ben Crowder

Blog: #productivity

20 posts :: tag feed :: about the blog :: archive

Liszt intro

First in the series introducing my personal productivity tools. Buckle up, this is going to be nerdy. And long.

Liszt is my to-do list app. Named after the composer, though I regret it a little since I butcher his name by pronouncing it lisht to differentiate it from the ordinary list. Heresy. The next version will have a better name, though. It’s a Python app running on Django.

Disclaimer: I don’t think this app is perfect. (Or any of the other tools I’ll talk about, for that matter.) I’ll describe things as they are, acknowledging here that there’s a lot of room for improvement.


This is what the dashboard looks like, populated with some dummy data:


And on mobile, where the controls move to the bottom for easier access:


The top bit is my stats panel, with the data pulled in from my other tools’ APIs. Daily writing counts, daily words left, total words written on the novel (all three from Storybook), daily pages left (from Bookshelf), and daily goals left (from Momentum). I’ll cover those tools later.

There’s also a slide-in menu on the side, with my most commonly used top-level lists:


Double-clicking on a list item opens up an edit panel, which also allows me to move the item to another list with some commonly used lists included as buttons (this whole panel is kind of clunky and needs improvement):


Payload syntax

The basic idea behind Liszt (and this is common to many of my apps) is the text-based payload, which enables some nice cross-app integrations (more on this when I cover Gate and Quill). Adding items looks like this:


A Liszt payload (the text entered into the add tray) has one item per line, with optional blank lines and optional list specifiers. If there’s no specifier, it’ll assume the current list if there is one, otherwise it’ll default to ::inbox. (I use the double-colon prefix to mark lists, with a slash to specify sublists.) Here’s a fuller example of the syntax, again with dummy data:

Process email :5
Review the merge requests :10

Read up on Python futures :::
Refactor [::work/notifications/refactor]
Write up the design doc

The first two items (which have belt-mode durations, I’ll explain those in a minute) would go into the ::today list (which is the dashboard list). The last three items would go into the ::work/notifications list, as pictured here:


Of these, the first line sets a subtitle by putting it after the triple-colon marker. I use this all the time.

The second line is a symlink of sorts, pulling in the top item from the linked list (different meaning here) and showing it in place, with the Refactor text shown as the subtitle. I used to use this more often but haven’t as much lately.

You can also see that this list has a child list (::work/notifications/refactor).

Belt mode


If an item has a duration marker included, that triggers belt mode (ala conveyer belts), as evidenced by the new bar at the top of the screen in the image above.

Brief backstory: I initially wrote an Electron app called Belt that did the same sort of thing, then a few months ago ported it to Go as a menubar app. Shortly after I finished that, I realized it would make much more sense in Liszt and brought the functionality in.

And what is that functionality? It’s just an easy way to time tasks from the list. When I hit Start, it switches into belt mode (also changing the favicon so I can tell that it’s running and turning on focus mode so I can only see the task I’m actively working on):


When the timer runs out, it plays a sound and brings up a panel allowing me to continue on to the next item in the list, stop belt mode, or add more time to the timer. (There are also keyboard shortcuts for all of this.)


How I use Liszt

On my laptop, I have Liszt open in Firefox as a pinned tab. On my phone, I have it saved to my homescreen as a PWA.

Every morning I go through the main lists and move the items I’m going to work on to the today list. I then work out of the today list the rest of the day, opening it often.

I use belt mode most days, primarily to help me stop avoiding tasks I don’t really want to work on (but that still need to be done).

The future

Lately I’ve grown enamored of the idea of storing data as plain text files in directories, rather than using an actual database like Postgres or Mongo. There are plenty of apps where this doesn’t make sense, but for personal, small tools, it works nicely, so I’m planning to migrate Liszt off SQLite to plain text, and I am very excited about it. Yes, I am that kind of a person.

While Django is fine (we use it at work and I love it), I’m planning to move to FastAPI, which I’m already using for Ditto and Arc. It’s a bit faster and feels more lightweight. I think in my mind I mostly use Django because of the ORM and admin; once I’ve given that up, the baby goes out with the bathwater.

I’m also looking forward to simplifying things, removing vestigial functionality, and sanding down as many of the friction points as I can.

Reply via email or via office hours

Over the last several years I’ve built a number of personal productivity tools (almost all of them web apps) that I’ve never written about here. In the spirit of working in public, that’s about to change.

There are around fourteen twelve of them, though, so I’ll be spacing them out a little, with other posts interspersed here and there for the sake of our sanity. Also, while you’ll be hearing about them in a relatively short timeframe, remember that they weren’t written all at once, and that the older ones have been iterated on for a long time.

I generally won’t be releasing the source code, FYI. I still fiddle with these apps on the regular, and feeling an obligation to maintain stability for outside users would put a severe damper on that. Sorry. That said, the ideas are all free for the taking, and I’m happy to answer questions. (I feel I should lower the expectations here. These apps aren’t amazing or groundbreaking. Consider them small curiosities.)

I’ll have the first post in the series up soon.

Edit: Here they all are.

Reply via email or via office hours

By way of the Glue chat comic (interesting ideas, by the way), I came across John Palmer’s excellent posts on spatial interfaces and spatial software. Mmm. As a productivity nerd and a hobbyist toolmaker (there are probably ten or so personal tools I’ve been using over the past several years that I’ve never blogged about, but that’ll change soon), I’m very, very interested in these kinds of ideas. Particularly in using 3D interfaces for productivity. I’ve thought a bit about doing that in VR, but I hadn’t really considered building tools in 3D even outside of VR.

No concrete ideas yet, just little threads leading off to various areas that I’m interested in exploring (todo lists, website/blog engines, writing/outlining tools, etc.).

At this point the plan is to use Three.js for prototyping some ideas to see if it’s viable. My initial sense is that for the kinds of tools I’m interested in, I’ll probably need a good way to render/edit text from within Three.js, and it looks like rendering to a canvas and then using the canvas as a texture will work. Anyway, more to come.

Reply via email or via office hours

Came across Cal Newport’s phone foyer method this morning. My wife and I tried it out today and what do you know, it really does feel different. Who knows whether we’ll actually end up sticking with it, but at this point I hope we do.

Reply via email or via office hours

I used to keep track of genealogy research todo items in an app of my own make (Gent), but lately I’ve had better success with a combined todo/notes approach using Google Docs. (I create a document for each family I’m researching — or for groups of families when I feel like it makes sense — and pretty much just use lots of bulleted lists.)

As for the research itself, I recently made compact family charts (I’ll blog about those sometime soon) and have been filling in the gaps in my lines. As part of that, most recently I’ve been sourcing everything on my Iorio line in Morrone del Sannio, since I did most of the research on microfilm back before sourcing was easy. (Sidenote that’s probably also a post for another day: in the last month or so I’ve found that I can now do pretty much all the research on my phone, which has led to a fairly big increase in how much time I spend doing genealogy.)

Reply via email or via office hours

Productivity in small slices

Over the past few months I’ve been getting Cal Newport’s newsletter, the focus of which has been largely on deep work (go figure) and the need to block out enough undistracted time to do truly great work.

That’s the ideal situation, of course, but for me — where my creative pursuits aren’t my day job, and where I want to spend time with my wife and kids — I end up having to work mainly with small slivers of time here and there. It’s not perfect, but you can get a surprising amount of work done in small chunks over time.

I find that three of the things that help me be productive in those moments are:

Think. More specifically, I try to spend some of my downtime (shower, walking) thinking about and around and through current projects. This is especially useful in pushing through problem spots. For me, the work goes far more smoothly when I take time to think through things first.

Journal. As a close counterpart to thinking, journaling about projects helps me talk myself through what needs to be done and how to go about it. A month or so ago I started doing a daily brain dump journal entry where I talk to myself about what I’m working on, and it’s been really, really helpful, especially because I now have something external I can look at to remember where I was on a given project (important when I’m not able to work on every project every day) (I tend to work on several projects at a time).

Next actions. One of the main things I took away from David Allen’s GTD methodology, identifying next actions is an integral part of how I work. My available creative time often comes in chunks of two or three minutes, which is just about the right length of time for a concrete next action. My daily journaling has turned into the best time to identify these.

There’s nothing groundbreaking here, of course, but hopefully these are somewhat helpful.

Reply via email or via office hours


For a while I had been itching to have a better way to track genealogy research todo items — something that organizes items by family and links back to Family Tree, mainly. And thus Gent was born:


I’ve been using it for a couple months now and really like it. Before, I felt disorganized and didn’t know where all my notes were; now, even if I come back to my research after a month or two away, it’s easy to get back into it.

The app is built on Django (Python), and I’m calling it a 0.1 release since there are almost certainly bugs I haven’t found. But it does work for me. (For what that’s worth.)

Reply via email or via office hours

The power of next actions

I have a habit of not finishing illustrations I’ve started. Right now, for example, my art tracker spreadsheet tells me that eleven of the forty-one illustrations I’ve started in 2011 so far are unfinished.

Ordinarily, if I still haven’t finished an illo and it’s been a week or two since I last worked on it, it’s basically dead in the water. I forget about it. It languishes. And then it makes my list of abandoned projects for the year.

Sometimes that’s a good thing. If the idea behind the piece can’t support its own weight, it’s better to let it go. But more often than not, the idea was just fine.

So, what I’ve started doing (and should have started doing a long time ago) is making a list of my unfinished pieces and then deciding what my next action needs to be for each one. For one piece, it’s to draw the characters more clearly and clean up the linework. For another, it’s to try a new perspective to make the object in the distance loom larger. For another, it’s to rework the idea so it’s more interesting, because right now it’s kind of static. And so on.

It’s working.

Take my “Return from Exile” piece the other day. It began as a loosening exercise in Photoshop that looked kind of like the inside of a cave. I then forgot about it and kind of stopped caring. It was definitely in danger of being abandoned forever. But when I made my list and figured out that my next action was to smooth out the rough strokes, bam, I got back into the illustration and I was able to finish it.

Sometimes I forget that the project management techniques I’ve learned from coding and design and my other projects can just as easily be applied to art. Art isn’t voodoo.

Reply via email or via office hours

Project tracker PDF

For those who liked the project tracker, here’s a PDF version (I’m now calling it a project tracker instead of a project calendar):


You can print it out, fold it up, and carry it in your pocket, or post it on your refrigerator or desk, or three-hole punch it (there’s room on the top margin for that) and put it in a binder. You do have to fill out the month, days, and days of the week manually, but there’s a little more flexibility this way.

Project Tracker Printed

Reply via email or via office hours

Project calendar


It’s a project calendar for keeping track of (a) which projects I’m working on and (b) when I’ve worked on them. That way I can easily see where my time is spent and possibly where I need to adjust things. (“Looks like I’m neglecting my writing. Time to fix that.”)

I started out using the back of my Field Notes notebook, since it has a handy grid, but I ran into a problem: when I finish the notebook, I no longer have my project calendar with me.

Enter Google Spreadsheets:


The grey boxes mean that the project has ended. Each month is its own sheet, which keeps things tidy. (Projects that end don’t need to be on the next month’s sheet.)

And the best part? It’s super easy to maintain. I can just copy and paste the black boxes, and when I start a new month, it only takes a few seconds to clear out the boxes and change the days of the week.

Speaking of tracking things, I forgot to blog about my writing log (which I used to use back when I was writing more frequently):

Writing Log

I’m also planning to make a grid-based log for scripture reading and family history and other church-related things I want to do more diligently.

Update: You can now download a Google Docs template of the project tracker.

Another update: There’s now a project page for this.

Reply via email or via office hours