About
My favorite software that I miss daily.
SageAgenda is a web reimplementation of Lotus Agenda. There have been a lot of todo lists and task managers. More recently, there have been electronic brains. None have ever delighted me the way Lotus Agenda did. So, I'm going to see if I can rewrite it.
Who is building this
I'm Brad Feld. We ran my first company, Feld Technologies, on Lotus Agenda from 1990 until we sold it in 1993, and nothing since has done for me what Agenda did.
Lotus Agenda had an elegance, combined with simplicity, that magically matched how my brain worked. It was always single-user - now called single-player - and that worked fine for me.
For a little while I thought Roam would replace Agenda. I used it for about six months and eventually gave up. The Roam community, which was vibrant at the time, stalled, and the app became less useful. I've also tried Obsidian and mostly just want to scream after a few days.
Everything that I've used in the past 30 years layered on complexity in an effort to be something much more than I needed. Sometimes the magic is in solving one problem extremely well.
The name
Part of what I'm doing is a tribute to Lotus Agenda. When I thought about what to name this project, I wanted to keep the Agenda part, but I knew I needed to replace the Lotus part.
Sage is an homage to Len Fassler. All of his companies were named Sage Something, including Sage Alerting Systems - the original name of the company that bought Feld Technologies. When Len, Rajat Bhargava, Steve Maggs, and I started the company that became Interliant, we initially called it Sage Technologies.
From a product perspective, Sage is what I want the rules engine to be. It files for you, and it knows when to ask instead of assume. That's the Initiative and Authority pair from the 1990 paper. A filing system that acts on every guess is annoying. One that asks about every guess is useless. The magic is the judgment in between. And no LLM is needed for that.
How it gets built
I'm building this in three tiers. The CACM paper fully specifies the first, partly specifies the second, and explicitly refuses to explain the third.
The engine
Items, notes, the category hierarchy, views, persistence, and a keyboard-first interface in two flavors.
The rules
Conditions, actions, the assignment queue with cascade, Initiative and Authority, and natural-language date parsing.
The inference
Update-through-views and query synthesis. The 1990 paper states the goal and declines to explain the method; the manuals and the running original turned out to answer most of it. Query synthesis is the rule the filters already follow, and deleting a category is built to what the original does. What is left is two readings of the original, each backing a choice this app has so far made alone.
Manual assignment and a working rules engine are already better than anything I use now. If I can get an inference layer working, it'll be awesome.
Progress has the detail - every piece that's built, and the measurement on the running original that each one rests on.
What this won't do
My hypothesis is that nobody has recreated Lotus Agenda effectively because everything tries to do a lot more things, rather than just focusing on what Lotus Agenda did brilliantly. So, there's a specific list of things I'm not going to do as part of SageAgenda.
Mitch Kapor tried this himself. Chandler ran from 2003 to 2009, tried to be all of the above at once, changed architecture on speculation, and ultimately failed. Beeswax worked in 2026 with the opposite approach. One person, one scope, no guessing about the future.
There's no fifth primitive. Four objects and two relations on the hierarchy. Anything richer gets expressed with conditions and actions. There are also no nested subtasks. Agenda left them out on purpose.
How I know any of this
An unusual thing about Agenda is that its design document is public. Five of its designers published the architecture in Communications of the ACM in 1990, while the product was still on sale. Six scanned manuals are also on the web, and the binary still runs.
Status
I started this on 6 September 2026. It'll be a project I do in between other things. My goal is for the machine I've built at IntensityMagic to run this autonomously, so the pace of progress is a combination of how much focus I give it and how much I'm willing to spend on tokens.
The repo is private and I haven't picked a license. There's nothing to run yet.