跳至主要内容

⬇️⬇️⬇️ 欢迎关注我的 telegram 频道和 twitter ⬇️⬇️⬇️


联系方式: Twitter Github Email Telegram

I Recreated My Own Version of TickTick with AI

September 9, 2026 1526 字 阅读约 8 分钟
文章目录(8)

Introduction

I had been using TickTick for quite a while, and the subscription cost me over 100 RMB a year. It wasn’t a lot of money, but I still wanted to see whether AI could rebuild it around my own habits and make a version just for me.

It actually worked. I named it Dodo.

Why I built my own

I had always used TickTick to manage tasks, habits, and important dates. It is genuinely useful, and its cross-platform sync is mature. Paying over 100 RMB a year for it isn’t expensive on its own.

But once you subscribe to several pieces of software, each one takes a little, and it adds up over a year. And the features I actually use over the long term are only a small part of TickTick.

I don’t need team collaboration, a complicated calendar, or a pile of templates and themes. What I actually open every day is much simpler: what I need to do today, which tasks are overdue, whether I finished my habits, and a few birthdays and anniversaries.

AI had also become pretty capable at writing code, so I wanted to try something: instead of copying all of TickTick, could I rebuild only the parts I use every day?

I built Dodo

Dodo is a self-hosted task management web app. The backend uses FastAPI, the frontend uses Vue 3, and the data lives in PostgreSQL. I also made it a PWA, so I can add it straight to my home screen from my phone’s browser.

It currently has these features:

  • Inbox, folders, and custom lists
  • Today, the next 7 days, and overdue tasks
  • Tasks, subtasks, priorities, and search
  • Due dates, with an optional specific time
  • Daily, weekly, monthly, yearly, and custom recurring tasks
  • Custom intervals, weekdays, monthly dates, end dates, and repeat counts
  • Drag-and-drop sorting for tasks and subtasks
  • Completing and reopening tasks, plus trash, restore, and permanent deletion
  • Boolean habits and habits tracked by quantity
  • Today’s habits, check-ins, progress, and archiving
  • Countdowns, anniversaries, and birthdays
  • Solar and lunar calendars, yearly recurrence, and pinning
  • CSV data export and restore
  • Desktop and mobile layouts

I also migrated my old TickTick tasks, subtasks, habits, habit logs, and recurrence rules into it. This wasn’t an empty demo page. I ran it with my real old data.

Dodo is what I open every day now, so I no longer need to renew TickTick.

Todo software looks simple, but it is full of details

At first, I also thought Todo software was simple. An input box, a checkbox, and a database. That should be about it.

Once I started building it, I found out it was nothing like that.

Take a recurring task. Repeating every Monday looks like one simple rule. But after I complete this occurrence, should the original task move to next Monday, or should the app create a new task? When I edit it, should the change apply only to this occurrence, this and all future occurrences, or the entire rule? If it repeats 10 times, how should completed occurrences be counted? If I remove the due date, should the recurrence rule stay?

Then there is “Today.” It is not enough to query tasks whose date equals today. Overdue unfinished tasks need to appear first. Tasks completed today need to count toward the progress total. A recurring task moves to its next occurrence after completion. And if a task has no specific time, the page should not force it to display 00:00 or 23:59.

Mobile gestures also took a long time to get right. Swipe right to complete, swipe left to undo, drag vertically to reorder, and tap to open the details. All of those gestures sit on the same row, so they can easily interfere with each other. Drawers, overlays, scroll areas, and bottom navigation can look completely normal, yet one missing style can make them impossible to tap.

Caching was another issue. If the page clears everything and reloads whenever I switch views, it flashes, which gets annoying. I later changed it to show locally available data first and refresh quietly in the background. It was not a big change, but it feels much better when I use it every day.

None of these things is especially difficult on its own. The problem is that there are so many tiny details, and one feature often affects another. Writing the feature is only the beginning. A lot of the work afterward is clicking through the real page, changing things, and clicking through it again.

How much did AI actually help?

AI really did write most of the code for this project.

My job was to explain what I wanted, notice what felt wrong on the page, and decide which features should stay or go. AI read the code, wrote the frontend and backend, added database migrations, ran tests and builds, and then opened the real page to check it.

It was not a matter of saying, “Recreate TickTick for me,” and having a complete project appear a few minutes later. The actual process felt more like working with a very fast developer.

I would say: this button is too flashy, remove it. The task detail panel is too wide, tighten it up. Don’t refresh the whole page after a habit check-in. The mobile sidebar won’t scroll, keep looking. It would make the change and run the tests, then I would keep using it and fix the next problem I found.

I also threw away quite a few things along the way. I built a monthly calendar, found it too easy to mis-tap, and removed the whole thing. I also cut tags and some other complicated features. I don’t need every feature TickTick has. This app is for me, so it only needs to follow my habits.

The biggest value of AI was not coming up with the product for me. It shortened the long distance between “I want it to work like this” and “this actually works.”

It is not really free

Not paying for TickTick does not mean Dodo costs nothing.

I already had my own server, database, domain, and deployment environment. AI coding still uses tokens, and I spent a fair amount of time testing and adjusting things. If the only goal were to save a little over 100 RMB, building a whole system from scratch would make no financial sense.

But saving money was not the only thing I wanted.

I control my own data, I can change features whenever I want, and if I decide to connect Telegram, Feishu, or my own AI assistant one day, I do not need to wait for an official product roadmap. More importantly, the software can slowly become something made specifically for me. Other people might think it is missing a lot, while I find it easier to use.

Life may get harder for a lot of small software products

After finishing Dodo, I came away with a pretty strong feeling.

In the future, anyone may be able to use AI to recreate software they have subscribed to for years. Of course, not every kind of software can be rebuilt this way. Payments, maps, cloud storage, real-time collaboration, and professional design tools rely on a lot of infrastructure and years of accumulated work. They are not easy to replace.

But life may get harder for smaller products with less complicated features, especially personal tools.

Even though I could already write code, I probably would not have spent weeks building both a frontend and backend just to save a little subscription money. AI lowered that barrier a lot. I do not need to build a TickTick that can be sold to everyone. I only need a version that works for me.

Those are two very different levels of difficulty.

Commercial software has to handle thousands of different needs. It needs cross-platform sync, compatibility, customer support, payments, and collaboration. I only need to serve one user: myself. I decide where a button goes and how a task repeats.

We may see more and more software like this in the future, built to serve just one person. It may not be polished or feature-complete. It may not even have anything resembling a product roadmap. But it is good enough, and it fits its user extremely well.

For many subscription software products, the real competitor may not be another company. It may be a user telling AI, “Make me my own version of this.”

Final thoughts

TickTick is still a mature product. Dodo cannot replace all of it either. I do not have a reminder system, a full calendar, a Pomodoro timer, team collaboration, or native apps.

But I do not need any of those things right now.

For me, being able to manage tasks, habits, and important dates, open the app on both my phone and computer, and keep control of my own data is enough.

Software used to decide which features I got, and I adapted to it. Now it is the other way around. I tell AI how I work, and it helps shape the software around that.

Feel free to follow my blog at www.bboy.app

Have Fun