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…
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.
Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
SOCIAL SHARE CARD GENERATOR