ZubairImtiaz3 / GitIssuefy

A web app that lets you track issues in your favorite open-source projects based on your selected labels, and receive notifications through Discord.

Home Page:https://git-issuefy.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GitIssuefy - Track Issues With Labels

Next JS TypeScript Supabase TailwindCSS

A web app that lets you track issues in your favorite open-source projects based on your selected labels, and receive notifications through Discord.

logo


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!

Getting Started Locally

First install dependencies using npm i and then run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

About

A web app that lets you track issues in your favorite open-source projects based on your selected labels, and receive notifications through Discord.

https://git-issuefy.vercel.app


Languages

Language:TypeScript 99.0%Language:CSS 0.8%Language:JavaScript 0.2%