The Beginnings of Driftplan

Link to Driftplan

Created August 27, 2026 by Abdullah Khan

Driftplan started out as a quest I had to find a calendar app that worked the way my brain does. I used google calendar for years to plan out my schedule, but there was a problem.

The problem with calendar apps

Google calendar is useful to me to know when I have to do things. It can tell me when I have to go to class, when I have to go to work, when I have to pay my credit card bill, and all of that is incredibly useful. Without google calendar, I would not have been a functional person. And as I soon came to realize, I exhibit a lot of signs of ADHD. But the problem with google calendar is that I can never schedule anything that isn't an obligation. I would schedule a block of time to go to the gym, and then I just wouldn't. I would schedule a block of time to read a book, and then I just wouldn't. I would schedule a block of time to do my homework and then I just wouldn't. I would tell myself, "I must do this thing at this time because it is on my calendar. I must treat this as an obligation, just like work or school," but my pesky brain is too smart for that. It knows these deadlines are fake and it's not gonna get tricked into doing something responsible.

Perhaps I was going about it the wrong way. It's not like I dislike going to the gym. I love going to the gym. I just don't. I like reading books, I like doing homework, I like doing the things that a responsible person would do. I just don't do them. The problem is just that I forget about them. Having things on a schedule makes them feel like obligations and kind of takes the joy out of them. It's like when you start cleaning your room, and then your mom peeps by and tells you to clean your room. Suddenly, you don't want to do it anymore. So I need to remember to do it but in a time-agnostic way. Bro, just make a todo list.

The problem with todo lists

First of all, I'm not a functional enough person to just keep paper todo lists. If I make a paper todo list, I'll just lose the paper, or lose a pencil and just forget what I was doing. And I have lost stuff and forgotten what I was doing. Paper was never an option, so I started using Microsoft To Do. It was already built into my computer and it syncs to the phone app and it just works. And this worked, kind of. I would look at it occasionally and do my homework before the deadlines sometimes. The problem was just that it would only slightly help me do things that had a deadline, and nothing else. I have a lot of ambitions to do stuff. I want to make videogames, I want to read books, I want to start businesses, I want to learn physics and breakdancing, I want to make movies and art and all sorts of things. Having a thousand things in my todo list is almost as helpful as not having a todo list. I would just look at it, and get overwhelmed and do something else.

Perhaps I was going about it the wrong way. When I have a big list of things to do, it is effectively impossible for me to prioritize which things to do. If there's a hundred items, how am I supposed to know what things I can do today? Or which stuff I should do today? Looking at a big todo list causes the exact kind of problem that I'm trying to solve, it makes me anxious. And if I get anxious before I can even start, then of course I'm gonna procrastinate. That is what causes procrastination. But then I landed an internship doing operations and logistics at an engineering firm in my area and I worked on creating a Kanban system for this company, and I learned a lot during this internship.

The magic of Kanban

I had heard of Kanban bins before but working on a live system at a company taught me that it's not as scary as it sounds. Essentially, the system we implemented at the firm was just to automate ordering screws. But I was interested in the concept enough to look more into it because people also use it for project management. A project management Kanban system consists of 3 or more bins indicating the stage someone is at for a specific task. The most basic setup is a bin called "todo" with all the stuff you haven't started yet, a bin called "in progress" for stuff you're actively doing, and a bin called "done". You make cards for all the things in your todo list, and you put them in the todo bin. You pick a few or however many you can handle, and you put them "in progress", and when you're done, you put them in "done".

Here's all the problems this solves for me. It keeps track of state, while being time-agnostic. A todo list has only has 2 states for each item, crossed off or not crossed off, and seeing a lot of items that aren't crossed off is scary. With a Kanban system, the first step is to decide what you're actually going to do. Here, since the state of the card depends on which bin it's in, I only pick a few to actually do. If I have more energy, I can put more stuff in the in progress bin. If I have less energy, I can put fewer things in it. It gives me all the functionality of a todo list without having to mentally sort through what stuff is doable or not doable and high priority or low priority at the time that I'm supposed to be doing stuff, because I've already decided when I put the cards in the "up next" or "in progress" bins.

So I was once again, off on a hunt. Again, I can't do paper, so I went off looking for Kanban software that would actually work for me. I tried Trello, I tried some open source stuff, but none of them quite felt right. A software version of a physical tool should never be inferior. Just like how drawing on physical paper works, but if you draw in photoshop, you can control layers and have precise control over colors, and have the undo button. Computers exist to do thinking so that we don't have to. Every single kanban software I tried felt really annoying to use. And there was a single feature that I kept looking for in all of them, but none of them seemed to have it, or they would lock it behind a paywall.

Dependencies. You can't cook eggs before you go to the grocery store to get eggs. Some tasks need to be completed before other tasks can be started. If I have a thousand things in my backlog, I'm gonna pick what to do randomly, or based on vibes. I want to set dependencies at creation time and I want the computer to tell me that I can't cook eggs because I haven't gotten groceries yet so that I don't see "cook eggs" and start put an oiled up pan on the stove only to realize I don't have any eggs. "Just remember that you didn't get eggs." I can't remember! That's the whole reason I want todo lists and calendars and kanban bins, because they're supposed to remember things for me. Eggs is a silly example, but I can think of a thousand cases where it's not as obvious.

The beginnings of Driftplan

I had almost resigned myself to a life of annoying software that barely works as well as physical paper, and then I remembered that I'm a software engineer. I can just make software that does work for me. So the first thing I did was find some open source kanban software and just hack in support for dependencies. And it kind of worked. And then I kind of started to realize that I don't need a kanban system.

What I wanted was a calendar where if I start procrastinating, it didn't leave me with a useless fake schedule. If I have an event for "go to the grocery store to get eggs" at 12pm, and I just scrolled on reddit until 3pm and the next event is "cook eggs", the schedule is useless, I would just abandon it and just go through the rest of the day without a schedule. So I decided to create a calendar app that lets you easily fix your schedule. And so I created "chain drags". You can drag events up and down like usual, but if you drag from the side edge of the event, you can move the event and everything below it as well. So in this case, I can chain drag from get eggs, and then cook eggs moves as well.

Going to the gym and doing homework, and cooking eggs don't really have a set time they need to be done like going to class or a meeting, or a doctor's appointment, so these things should not really be treated the same. One can be done at essentially any time that you don't have something else going on, and the other is a commitment. So I added a little lock button you can press for "hard" events and "soft events". Soft events are things you plan to do and hard events are things you have to do, so you should be able to move around soft events and not move around hard events. And soft events are born from tasks that belong on a todo list, so what if you could just drag tasks directly from a todo list onto the schedule? That means that I don't need to try to predict if I'll be in the mood to do something, I can essentially create an event without having to give it a start and end time, and just give it one when I want to. I added support for dependencies in the todo list, so the app warns you if you try to schedule cook eggs before you've scheduled get eggs.

This changed the whole dynamic of schedules. What if the anxiety of calendars came from knowing that if I didn't do what the schedule told me, I would have to remake the whole schedule? Having the computer help me fix the schedule that I didn't follow made events feel more like suggestions than commands. It lets intrinsic motivation of wanting to do the things that I want to do guide me more than the extrinsic motivation of giving myself a fake deadline and forcing myself to do something I'm not in the mood to do. Making a less annoying calendar that accounts for me not doing the things on there made me more likely to do the things on there. Rather than the calendar being a boss telling me "you have to do this right now", it's a friend telling me "hey, you said you wanted to do this, you still up for it?". A boss telling me to do something does work because a boss pays me and there's the threat of getting fired if I don't. If I'm not getting paid and there no immediate consequence of ignoring an order, I'm never following an order. Whereas, I love helping friends.

On procrastinators

Of course, there's the other perspective. Driftplan gives you permission to procrastinate, so why wouldn't you just keep procrastinating? That's been a criticism of this app since the start and one that I've never answered well but I shall try here. This app cannot make you not procrastinate because it's fake. Every planner is fake because every plan is fake. If you write a plan and then don't follow through, then it's a lie, and Driftplan is no different. Driftplan encourages you to fix the lies because it was built under the assumption that shit happens. Sometimes you get sick, sometimes you have to take someone to the hospital, sometimes you get interrupted, sometimes you just can't take it anymore and you need a break. But what matters is that your plans can be salvaged. If you don't want to do the things that you planned, then it was never a plan. Delete those plans. Give up on those goals. Worry about the things you are gonna do instead of the things you aren't. No app is gonna make you go to the gym. No app is gonna make you follow your dreams. It's an important decision to decide not to do something. It's just as important as the decision to do something, and it takes real growth, and maturity and knowing yourself. Driftplan is gonna keep pushing your incomplete tasks forward to the next day, and if you don't want your tasks list to be filled with clutter that you're not gonna do, reschedule it for a day that you will, or put it in the backlog, or delete it. Driftplan just makes it convenient to reschedule when you fuck up, but the plans themselves are just notes you've written to yourself. If you decide to write lies in notes to yourself, that's not an app's place to stop you.

To be Continued

Okay this is getting really long, I'll talk about emergent design, market research, and some more of the decisions that went into Driftplan in a future blog post. If you'd like to take a look at the project, you can do so at www.driftplan.app