Ihar Trafimovich on 02 Oct 2024

New Year’s resolution gone wild: How I accidentally built a productivity app

Welcome to the first post of this blog, where I’ll share my experience of creating a personal note-taking and habit-tracking app. What started as a simple New Year’s resolution unexpectedly grew into a productivity tool that I now rely on every day.

Is there really a perfect system for managing all these thoughts?

In 2024, I made a New Year’s resolution to start writing notes. At first, I didn’t have a clear goal or understanding of why this was important — I just saw that many people were doing it, and I thought I’d give it a try. I had made several attempts before, but none of them resulted in a consistent habit.

Working at Fibery, where we’re building a product with the motto “second brain for the company,” got me thinking more about personal note-taking systems.

There are a bunch of popular systems out there, like Tiago Forte’s “Second Brain” for organizing incoming information and moving projects forward, the Zettelkasten method for connecting ideas and gaining insights, or Andy Matuschak’s concept of “Evergreen Notes” focuses on refining your knowledge over time by continuously improving and updating notes. I was also interested in the idea of a “Digital Garden,” which is about sharing your knowledge publicly as it grows.

The key takeaway from exploring these systems is that the primary goal is to understand your own needs and develop a system that works for you. And giving it a fancy name is optional.

How I managed to find flaws in Obsidian

I decided to try Obsidian. Obsidian doesn’t promote any one system but offers the flexibility to build whatever structure suits your needs. With its powerful features like backlinks, a markdown text editor, and tagging, Obsidian seemed perfect for creating a network of interconnected ideas.

However, despite these strengths, maintaining a structured system in Obsidian required more discipline than I had anticipated. So I ended up only following my journaling practice to fulfill my New Year’s resolution..

I also tried using Obsidian for task management, focused work with the Pomodoro timer, and habit tracking, but it all felt a bit clunky. These tools didn’t work well together, and I started thinking about what I really needed in a system that could combine everything in one place.

My Obsidian setup

My Obsidian setup

Can voice notes replace my missing therapist?

I discovered voice notes when I started using the Whisper plugin in Obsidian. I stutter, but it was still faster than typing. And surprisingly, this discovery had a huge impact on my mental clarity. My daily notes became less specific, but I realized that the point isn’t to reread them later, but to get thoughts out of my head, making room for new ideas.

When you write, you can always go back and correct what you’ve written. In voice notes, this isn’t possible — everything said is recorded as-is. Therefore, it’s harder to make precise formulations, and thoughts constantly jump from topic to topic. This makes the notes less structured, but more spontaneous and perhaps more creative. I wanted to process the notes immediately using LLM to make them more concise, but the Obsidian plugins for this were rather disappointing.

Is it possible to cheat yourself with gamification?

Besides notes, I wanted to track my daily habits. Inspired by “Atomic Habits” by James Clear, I wanted to log when I performed certain activities throughout the day. As I said before, I tried using frontmatter in Obsidian’s daily notes, but they weren’t really designed for habit tracking.

Traditional habit trackers focus on streaks: as long as you do something every day, everything’s fine, but the moment you miss a day, your streak is broken, and motivation plummets. I started thinking about how I actually wanted to track my habits. I always wanted something more analytical, able to show me progress over time.

I came up with the idea of giving each habit a weight in points, which would reflect the effort it takes to maintain. This would allow me to see how I’m progressing over longer periods — not just day by day, but over months or even years.

I also thought about tracking negative habits, but instead of framing them as “avoidances,” I’d record them just like any other habit, but with a negative score. This subtle shift would make it easier to accept and manage them.

Gamification elements emerge here naturally. Even though I knew the points would be arbitrary, on some days, it might motivate me to rack up more points for the satisfaction of seeing progress.

Does the world really need another app?

At some point, I realized that instead of trying to make existing tools work, I could just build my own. As a programmer and designer, I had the skills to create something that fit my specific needs. I chose to work with the Evolu library, which follows a local-first approach. The benefits of local-first are well known: instant UI feedback, offline availability, and user privacy. For me, it was important not to have access to user data and to avoid the hassle of managing backend infrastructure.

Currently, the app runs on a Raspberry Pi at home, but I plan to move it to a more robust infrastructure eventually.

Will AI take my job and build apps better than me?

One of the highlights of building this app was how AI sped up the development process. For example, I sketched out a habit-tracking form on paper, uploaded it to Claude, and got a working React component as a result. While I ended up rewriting much of it later, this quick start saved me a lot of time.

First steps with the new habit form component

First steps with the new habit form component

Using AI tools like Claude and Cursor AI allowed me to focus on design and the overall flow of the app, rather than getting stuck in the details of coding. This helped me keep momentum during the 2.5 months it took to develop the app, even while working on it in my spare time.

My Github in 2024

My Github in 2024

As a result, I saved mental energy and felt happier throughout the process. Many tasks boiled down to clicking the ‘accept’ button, something I could easily do in the evening with a beer in hand.

Why stick to one app when you can juggle ten of them?

Currently, we have a unique and quite advanced habit tracking system and a fairly basic note-taking system that allows voice input. The question arises: why are these features in one app at all?

My experience at Fibery has taught me that a system can be unconventional yet effective. Both habit tracking and note-taking can improve well-being, but both require discipline. It’s easier to maintain the habit (yes, it’s so meta!) of using one app rather than switching between many, even if each one excels in its specific domain.

Well, what now?

Building this app has been a personal project, and while it might be considered a product anti-pattern to build something primarily for oneself, I’m already seeing benefits in my daily life. Even if the app never grows beyond my personal use, it’s already serving its purpose.

Moving forward, I plan to add features like a Pomodoro timer, a task tracker, and more advanced categorization of notes. I believe that linking and tagging is work better suited for AI rather than humans. For now, I’m focused on refining the product and seeing where it takes me.