Back to blog
Sep 25, 2024
3 min read

Gitissuefy: Tracking Open-Source Issues Made Easy

A web app that notifies developers of new GitHub issues matching their preferred labels in thier favorite projects, streamlining open-source contribution.

Test Relative Image

The Story Behind GitIssuefy

The idea for Gitissuefy was born out of a personal experience while contributing to Mattermost. I’d been actively involved in the project, but I noticed a recurring problem: by the time I discovered new issues that matched my skills and interests, they were often already assigned to other contributors.

This experience highlighted a gap in the open-source contribution workflow. GitHub lacks this feature to notify contributors about new issues based on specific labels. That’s where Gitissuefy comes in.

The Development Journey

Tech Stack

For Gitissuefy, I chose a modern and efficient tech stack:

  • Next.js: For building a fast, SEO-friendly React application
  • Appwrite: As a backend-as-a-service platform for rapid development
  • Tailwind CSS: For utility-first styling
  • Shadcn UI: For consistent and customizable UI components
  • Framer Motion: To add smooth animations and enhance user experience

Challenges and Solutions

  1. One of the key challenges was that GitHub doesn’t provide webhooks for public repositories, making it tricky to get real-time data updates. On top of that, GitHub’s API has strict rate limits, which can be problematic when making frequent requests.

    • To overcome this, I implemented GitHub OAuth to authorize users and make API calls on their behalf. I set up a cron job to run every two minutes, fetching the latest data using each user’s access token. This approach not only bypasses rate limits but also scales effectively as more users join.
  2. Another challenge was designing a notification system that would be timely yet not overwhelming. Email notifications require third-party services, which can be costly, so

    • I opted for a more developer-friendly solution—Discord Since many developers already use Discord, I created a bot that sends notifications directly to users whenever a new issue is detected. This way, notifications are both accessible and cost-effective.
  3. The final and my favorite challenge was efficiently managing the workflow of fetching issues, updating the database, retrieving notifications, and sending them through the bot—all for multiple users simultaneously.

    • To handle this, I used Redis and Bull Queue to process the data in a scalable, organized way, ensuring everything runs smoothly without overwhelming the system.

Key Features

  1. User-friendly Interface: An intuitive dashboard that allows easy management of tracked projects and labels.
  2. Customizable Label Tracking: Users can select specific labels and combine multiple label combinations they’re interested in across various repositories.
  3. Real-time Discord Notifications: Receive instant notifications on Discord when new issues matching your selected labels are created or labeled later.
  4. Cross-project Issue Discovery: Find opportunities across various open-source projects in one place.

Conclusion

Gitissuefy represents my commitment to improving the open-source contribution experience. By bridging the gap between issue creation and developer notification, I hope to foster more active and diverse participation in open-source communities.

Try Gitissuefy and share your feedback. Your thoughts and contributions are always welcome!