Inspiration
Dozens of public repos build up over the years, and it becomes impossible to remember which ones actually tell a visitor how to reach you and which ones are dead ends. This project turns that manual scroll-through-every-repo check into a one-click scan.
What it does
Type any GitHub username. ReadmeCTA Scanner pulls every public, non-fork repo for that user and checks each README for a contact/hire marker word (default: hire, editable). Results split into two columns -- repos that already have the marker, and repos that don't -- each linking straight to the repo.
How I built it
A single static HTML file: plain JavaScript, no framework, no build step. It calls GitHub's public REST API directly from the browser (/users/{username}/repos then /repos/{owner}/{repo}/readme per repo), base64-decodes each README, and does a case-insensitive substring search for the marker. No backend, no login, no API key.
Challenges I ran into
GitHub's unauthenticated API is capped at 60 requests/hour per IP, which a large repo list can burn through mid-scan. Rather than hide that, the app catches the 403 rate-limit response, shows the user exactly how many repos it checked before hitting the wall, and still renders whatever results it already had instead of throwing the scan away.
What I learned
Planning the scope, PRD, and technical spec before writing any code kept the build tight -- the whole thing stayed a single file because I'd already decided upfront what was in and out of the proof-of-concept boundary.
What's next
Optional authenticated requests to lift the rate limit, and an export of the "missing CTA" list as a ready-to-paste markdown checklist.
Built With
- backplane-javascript
- css
- css3
- github
- github-api
- html
- html5
- javascript
- vanilla-js
Log in or sign up for Devpost to join the conversation.