DEV Community

Cover image for Building Streak Calendar: My Journey into Open-Source with the Help of AI
Ilya Aizenberg
Ilya Aizenberg

Posted on

Building Streak Calendar: My Journey into Open-Source with the Help of AI

When I started working on Streak Calendar, it was a personal project born out of two goals: quitting smoking (a promise to my son) and creating a habit tracker that actually worked for me. Most tools I tried didn't have the simple, visual, row-based progress view I wanted, so I decided to build it myself. In this dev.to post—my very first—I'm excited to share the journey of developing Streak Calendar. Hopefully, over time it will evolve into a tool that I hope inspires and supports others in their own journeys.

What sets Streak Calendar apart is its unique combination of features: support for multiple calendars, multilingual interfaces, timed tasks, and both monthly and row-based views. Unlike many alternatives, it's completely free and open-source, giving users the freedom to adapt it to their needs. Whether you're tracking good habits or managing bad ones (like cigarette consumption), this tool offers an intuitive and highly customizable experience.

Check it out here: www.streakcalendar.com
GitHub Repository: github.com/ilyaizen/streak-calendar


AI-Powered Development and a Modern Tech Stack

Streak Calendar wouldn't exist without AI-powered development tools, which have been game-changers for me as a relatively inexperienced developer. Tools like Cursor AI and ChatGPT allowed me to build features faster than I ever thought possible while making web development enjoyable again. Sure, I might rely on AI too much, and maybe it's a mistake—but honestly, it's made the process creative and fun. Tasks that once took months now take days, with AI streamlining coding, debugging, and even brainstorming when I encounter roadblocks.

The project's tech stack reflects a modern, efficient approach to web development, and hosting it on Vercel has made deployment smooth and hassle-free. I highly recommend Vercel for its simplicity and reliability, especially for new web projects.

  • Framework: Next.js
  • Backend: Convex (though I'm planning to migrate due to free-tier limitations)
  • Authentication: Clerk
  • Styling: Tailwind CSS
  • UI Components: shadcn/ui

For animations, icons, and charts, I used libraries like Framer Motion, Lucide React, and Victory. Convex stood out for backend operations, offering a streamlined and polished experience. However, I did face challenges with their free plan—despite minimal usage, I received warnings about over-usage and eventual service disruptions due to exceeding database bandwidth limits. While I'm exploring alternatives for better scalability, I still appreciate Convex's innovative capabilities and ease of use.


Challenges and Lessons Learned

Working with Cursor AI has reshaped how I approach development. Here's what I've learned:

  1. Frequent commits are key: Cursor AI encourages rapid, continuous commits, helping avoid breaking changes and making it easy to revert to a stable version if needed. This practice has been critical for maintaining stability during fast iterations.

  2. Structured planning reduces errors: Before implementing features, I ask Cursor AI to generate a detailed plan and confirm the approach. This ensures clarity and minimizes potential missteps.

  3. Development is fun again: Beyond the technical advantages, working with Cursor AI has made the entire process enjoyable, transforming challenges into opportunities to learn and grow.

These lessons have helped me balance rapid development with code quality, and I look forward to refining this approach further.


The Future of Streak Calendar

Streak Calendar is currently in its alpha stage, meaning it's functional but still evolving and actively developed. Users can expect occasional disruptions as I implement new features. To ensure data safety, I've included an import/export feature, allowing users to manually back up their data.

Looking ahead, my plans include:

  • Migrating away from services like Vercel and Convex to enable more affordable self-hosting options.
  • Introducing a Docker container to simplify deployment for advanced users.
  • Adding new features and refinements to enhance usability and customization.

I'm excited about these changes and believe they will make Streak Calendar even more accessible and versatile.


Thank you for taking the time to read this post! As this is my first dev.to article, I'm especially eager to hear your thoughts. I hope sharing my journey with Streak Calendar has been insightful and maybe even a bit inspiring. If you have any feedback, ideas, or just want to connect, I'd love to hear from you in the comments.

Top comments (2)

Collapse
 
makechi02 profile image
Makechi™

I've started using the tool. It's amazing. I'll be providing feedback in the next few days.

Collapse
 
ilyaizen profile image
Ilya Aizenberg

Thank you! I would really appreciate it.