This is a submission for the GitHub Finish-Up-A-Thon Challenge
What I Built
IssueWatch is a mobile app built with React Native and Expo that turns the chaos of open source issue tracking into a calm, intelligent feed delivered straight to your phone.
The idea came from a real frustration. I wanted to contribute to open source, but I had no reliable way to know when a good issue dropped on a repository I cared about. By the time I found it, ten people had already commented. I was always late.
So I built the tool I wished existed.
You subscribe to GitHub repositories, pick the labels you care about — good first issue, bug, help wanted — add optional keyword filters, and the app does the rest. The moment a matching issue opens, your phone gets a push notification. Not a generic one — an AI-triaged one that already tells you the severity, the type, and a one-line summary of what the issue is actually about before you even tap.
IssueWatch is for contributors who want to be first. For maintainers who want to stay on top of incoming bugs. For anyone who lives in open source and needs a smarter way to filter the noise.
Demo
Repo
Biki-dev
/
Opensource-issue-notify
Open-source GitHub issue tracker with real-time notifications, issue monitoring, and mobile alerts.
IssueWatch
About
IssueWatch is a powerful, open-source mobile application and backend system designed to help developers and teams stay on top of their GitHub issues. It provides real-time push notifications for new issues, comments, and activity on tracked repositories, ensuring you never miss a critical update. With features like personal GitHub token integration for enhanced rate limits and private repository access, and a tiered scheduler for efficient monitoring, IssueWatch streamlines your workflow and keeps you informed.
✨ Features
- Real-time Notifications: Get instant push notifications for new issues and comments on your tracked GitHub repositories.
- Personal GitHub Token Integration: Connect your personal GitHub token to unlock higher API rate limits and track private repositories.
- Tiered Scheduler: An intelligent backend scheduler optimizes GitHub API calls based on your token status, ensuring efficient and timely updates.
- Issue Tracking & Detail View: Follow specific issues, view their details, and monitor comment activity directly within…
The Comeback Story
IssueWatch started as a backend-heavy side project — a Node.js server that could poll GitHub and send push notifications. The core scheduler worked. The database models were solid. But the mobile app was incomplete, rough around the edges, and nowhere near ready to show anyone.
Here is what was missing or broken when I picked it back up:
What existed:
- Basic Express server with auth routes
- MongoDB models for users, repositories, subscriptions, notifications
- A working scheduler that polled GitHub on a timer
- A bare-bones React Native app with navigation set up
What I finished:
Mobile App — rebuilt from rough screens to a polished product
- Designed and built the entire UI system from scratch — custom tab bar with animated indicators, skeleton loaders, haptic feedback, smooth moti animations throughout
- Built the Dashboard screen with live stats, an activity chart that reads from the notification database instead of hammering the GitHub API, and expandable issue cards
- Built the Subscriptions grid with mute, hide, and edit-labels inline actions
- Built the Inbox with swipe-to-dismiss, severity filters, repository filters, and the Follow feature
- Built the Following tab with full comment thread rendering, markdown support, maintainer badges, and new comment indicators
- Built the Repo Detail screen showing full GitHub metadata, README rendered in markdown, stats, and a one-tap refresh
- Built the GitHub Token Settings screen with live rate limit status
- Fixed the onboarding flow and authentication edge cases
- Added web platform support via platform-specific chart components
Backend — hardened and extended
- Added AI triage using OpenRouter and NVIDIA as providers — every new issue is classified by severity, type, effort, and summarized in one sentence
- Built a tiered scheduler — default users check every 60 minutes, personal token users every 30, premium every 15
- Built the comment poller service — tracks followed issues, detects new comments, and sends targeted push notifications
- Added the issue tracker routes and MongoDB model for the Following feature
- Fixed duplicate notification bugs with atomic upserts and compound unique indexes
- Added AES-256-GCM encryption for stored GitHub tokens
- Added metadata fetching — stars, forks, watchers, open issues, PRs, license, topics, README — fetched at subscribe time and cached
- Built repository detail and refresh endpoints
- Added orphaned subscription cleanup on startup and a daily cron cleanup job
- Added push receipt verification running every 15 minutes via Expo's receipt API
The gap between where this project was and where it is now is the entire product. The foundation was there. Everything you can see and use was built in this push to finish it.
My Experience with GitHub Copilot
Copilot was present throughout this build in ways that genuinely changed how fast I could move.
The place it helped most was in the repetitive but critical work — the kind of code that has to be correct but follows clear patterns. Writing MongoDB aggregation pipelines, setting up axios interceptors, structuring the tiered cron scheduler, building out the push notification chunking logic with Expo's SDK — Copilot would get me 80% of the way there on the first suggestion, and I would refine the remaining 20% to fit the exact requirements of the project.
For the React Native UI, Copilot was surprisingly good at completing component patterns once it understood the design system I was building. After writing two or three card components by hand, suggestions for the next one were almost exactly right — matching the shadow styles, the moti animation patterns, and the NativeWind class conventions I had established.
Where I had to stay sharp was in the logic that required deep context about the whole system — like the interaction between the scheduler, the notification deduplication, and the push receipt verification. Copilot would suggest plausible-looking code that missed a subtle constraint. Knowing when to accept, when to modify, and when to ignore entirely was the real skill. Copilot made me faster. It did not replace thinking.
The honest summary: this project would have taken significantly longer without it. Not because I could not write the code — but because the volume of work required to go from an incomplete side project to a finished, shippable product is enormous. Copilot compressed the time on the mechanical parts so I could spend my energy on the parts that actually required judgment.
Built With
Built with React Native, Expo, Node.js, Express, MongoDB, GitHub API, Expo Push Notifications, and OpenRouter AI.
Every notification. Every triage. Every comment update. Delivered to your pocket.

Top comments (0)