Some reflections on my side project‘s first anniversary

I can hardly believe it, but my beloved side project officially turned one year old last week. What started as a fun experiment has blossomed into a fully-functional web application that I‘m truly proud of. This past year has been an exhilarating journey of learning, growth, and incremental progress—and I‘ve enjoyed every step of the way.

As I reflect on this first major milestone, a few key themes come to mind. I‘d like to share my thoughts on the accelerated learning unlocked by diving deep on a side project, the importance of perseverance through inevitable challenges, and the power of documenting the journey along the way. I‘ll also make the case for how tackling an ambitious project one baby step at a time can lead to remarkable results.

My hope is that these reflections resonate with other developers working on side projects of their own and possibly inspire some of you to pursue that passion project you‘ve been dreaming about. Trust me, it‘s worth it.

Project Background

First, a bit of background. My side project is a web application called Taskably, a task management tool designed to optimize personal productivity. As someone who perpetually feels behind on my ever-growing to-do list, I had a vision for a streamlined app to help me organize, prioritize, and power through my most important tasks.

When I first dreamed up the idea, I was a junior full-stack developer with a couple years of professional experience under my belt. I felt reasonably competent with JavaScript and had some familiarity with React, Node.js, and MongoDB from my day job. But I knew there were huge gaps in my skillset, especially when it came to architecting a complex application from scratch.

Nonetheless, I was excited to have a meaty project to sink my teeth into. I knew it would be challenging, but I was motivated to learn whatever was necessary to bring my vision to life. Thus began my year-long adventure of side project development.

A Year of Accelerated Learning

Diving into Taskably unlocked a degree of accelerated learning I‘ve never experienced before. Since I was in full control of the project scope and technical choices, I had the freedom to explore tools and concepts that piqued my interest, knowing they would expand my capabilities as a developer.

Some of the most impactful things I learned include:

  • TypeScript: For enhanced code quality and developer productivity
  • React Query: For seamless data fetching and state management
  • Chakra UI: For quickly building flexible, accessible React components
  • PostgreSQL: For a rock-solid relational database
  • Prisma: For a delightful database toolkit and ORM
  • Docker: For streamlined development and deployment
  • AWS: For reliable and scalable cloud hosting

I didn‘t set out to learn all of these things—I discovered them organically while researching how to solve specific problems I ran into. Each time I integrated a new tool or technique, I felt myself leveling up as an engineer. The act of building something real that I cared about made the learning feel effortless and instantly applicable.

What‘s more, the visible progress I made on Taskably every week motivated me to keep growing. The more I built, the more excited I became about the project‘s potential, which inspired me to invest even more in expanding my skillset to do it justice. It was an incredibly positive, self-reinforcing feedback loop.

The Power of Perseverance

That‘s not to say it was always smooth sailing. As any engineer will tell you, software development is rife with obstacles and frustrations. There were days I felt completely stuck and moments I was tempted to abandon the project altogether.

One of my biggest challenges was implementing user authentication and authorization. Despite reading multiple tutorials and poring over library documentation, I struggled to translate the concepts to my specific project architecture. I spun my wheels for weeks, feeling defeated and questioning if I was cut out for this work.

But I kept coming back to it, chipping away at the problem little by little. I realized that even when I felt hopelessly blocked, I was still making micro-progress by deepening my understanding of the subject. And then finally, after dozens of hours wrestling with auth, everything clicked into place. I had never felt so proud and energized.

That experience taught me the importance of perseverance—of pushing through the discouragement and trusting that consistent effort will eventually yield a breakthrough. It‘s not always easy in the depths of debugging, but I‘ve learned to savor the challenge, knowing that each roadblock is an opportunity to emerge a better engineer on the other side.

If you find yourself up against a wall, here are some strategies I‘ve found helpful:

  • Stand up and take a walk to clear your head and gain a fresh perspective.
  • Rubber duck your problem by explaining it out loud, which often reveals a solution.
  • Scour StackOverflow, GitHub issues, and documentation for people who have solved similar issues.
  • Phone a friend or colleague to talk through what you‘ve tried and brainstorm new angles of attack together.
  • Celebrate tiny wins and focus on the incremental understanding you‘re gaining, which makes the effort worthwhile even when it feels fruitless.

Document the Journey

One practice that‘s been invaluable during this side project journey is diligently documenting my process. I started off with a simple dev log in a GitHub wiki, jotting down a few bullet points every time I wrapped up a coding session. What task was I working on? What went well? What were my stumbling blocks? What are my next steps?

As Taskably grew in complexity, so did my knowledge base. I began keeping more organized notes on problems I had solved—including code snippets, configuration details, and links to helpful resources. I also documented architectural decisions along with my rationale to make my thinking clear for my future self.

What I didn‘t fully appreciate at the time was how crucial this documentation would prove for maintaining momentum. As a busy professional, my side project time was limited to a few evenings and weekends a month. It was all too easy to lose context in the interim, struggling to recall where I had left off or what I had already figured out.

By writing things down, I made it far easier to re-engage with the project after an extended break. A quick scan of my dev log and decision notes brought me back up to speed and allowed me to dive right back into development. Just as critically, the act of articulating my lessons learned in writing helped solidify my understanding and transform new concepts into lasting knowledge.

Even if no one else ever reads your side project notes, I promise you will reap the rewards of recording your journey. And you may just find that your writings become valuable learnings to share with the broader developer community. I‘ve already spun up a few blog posts based on my Taskably docs!

Baby Steps to Big Achievements

If you had shown me the current live version of Taskably a year ago and told me I would build it, I wouldn‘t have believed you. It‘s far more functional and polished than I could have imagined when I started out. And yet, I never actually set my sights on building this exact end product—it emerged naturally from a series of small, iterative improvements.

With every new feature or design tweak, I focused only on achieving the next increment of progress. Early on, that meant basic CRUD functionalities and dead-simple UI components. I didn‘t agonize over scalability or pixel-perfection—I just tried to make the next part work and work a little better than the last part.

Over time, all of those baby steps compounded to truly remarkable results. New features like recurring tasks, keyboard shortcuts, and Markdown support slowly but surely brought the app closer to my original vision. Under-the-hood improvements to testing, performance, and developer experience made the codebase more and more pleasant to work in.

The magic of this incremental approach is that it makes even the most ambitious projects feel achievable. By focusing on one tiny problem at a time, the way forward is always clear—learn exactly what you need to unblock the next baby step. It‘s impossible to feel intimidated when you‘re not staring up at the towering mountain of a finished product.

So dream big with your side project ideas but execute small. Constrain your scope and tackle manageable chunks that keep you motivated and making steady progress. Trust that those little enhancements will snowball into something incredible if you stick with it.

A Labor of Love

When I look back at how much Taskably has evolved over the past year, I‘m filled with pride and gratitude for how much I‘ve grown as a developer. The countless hours I‘ve poured into this labor of love have paid dividends in technical skills gained, experience managing a complex project, and perhaps most importantly, confidence in my ability to build meaningful things.

No tutorial or online course can replace the sheer learning velocity of working on a side project you‘re deeply invested in. By controlling the scope and direction, you‘re free to explore the concepts that excite you and challenge you in all the right ways. The breakthroughs you make will be so much sweeter because you‘ve fought hard for them.

If you take away one thing from my ramblings, let it be encouragement to go out and build something you care about. It doesn‘t have to be a grand or original idea—it just has to energize you. Bring patience and persistence, follow your curiosity, and trust that tiny steps will carry you to extraordinary places. I can‘t wait to see what you create!

In the spirit of learning in public, I‘ve open-sourced the Taskably codebase for any curious developers to poke around. The app itself is live at taskably.app if you‘d like to give it a spin. And I certainly welcome any feedback, questions, or comments on this post or the project—let‘s keep the conversation going!

Similar Posts