DEV Community

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

Posted on • Edited on

3

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 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, 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 Chart.js. 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.


My Journey as a Self-Taught Developer

As someone new to full-stack web development, I've found tools like Cursor incredibly helpful. Powered by the claude-3.5-sonnet model, Cursor has been my go-to for navigating challenging concepts. It's not just about writing code but understanding how and why certain solutions work.

Cursor helped me learn about optimizing API performance and designing efficient data structures. While I haven't explored other models like DeepSeek-V3 yet, I'm curious to see how they compare.

But here's where it gets complicated. As a self-taught developer who's still learning, I sometimes feel guilty about relying so much on AI. Am I truly learning, or just taking shortcuts? There are moments when I write code I'm proud of, but other times, I wonder if I'm simply stitching things together without fully grasping the details.

Lately, I've been reflecting on how AI is reshaping programming. Will coding soon be reserved for top-tier developers, leaving those like me at a disadvantage? It's thrilling to witness this evolution, but it also makes me question my place in this rapidly changing landscape.


How I Built Streak Calendar

Image description

The development process was broken into small, manageable steps, often guided by Cursor. For example, when starting the habit tracker feature, I asked, "How do I create a simple tracker that lets users set goals, track progress, and view summaries?" The responses gave me a clear direction. As I refined the idea, I asked follow-ups like, "How can I include weekly summaries?" and "What's the best way to handle server-side logic?"

Not all suggestions were perfect, but the process of refining them, clarifying goals, and iterating on solutions helped me learn and improve. For instance, the initial suggestion for handling user permissions was more complex than needed, so I rephrased my requirements and arrived at a simpler, more practical approach.


Frontend and Backend Development

On the backend, Cursor excelled in helping me create efficient data structures and write robust server-side logic. One specific task involved calculating weekly habit summaries. The first draft needed tweaks, but through iteration, adjusting queries, and improving error handling, I developed a reliable solution.

On the frontend, I started with mockups in Vercel's V0 and refined the interface with additional ShadCN/UI components where necessary. Ensuring the app was responsive across devices was a priority, so I tested layouts extensively, making adjustments to optimize usability on both mobile and desktop.


Reflections

This project has been a significant learning experience. Tools like Cursor didn't just help me build Streak Calendar—they made the development process approachable and engaging. They taught me how to break down problems, explore solutions, and gain confidence in my abilities.

One of the most important lessons I've learned is that progress comes from asking the right questions, experimenting, and being open to learning as you go. While I sometimes feel uncertain about relying on AI, I also see it as a tool that amplifies learning when used thoughtfully.


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.

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

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.

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay