🚧 Work in progress — under active development, not feature-complete. Feedback and review are welcome via GitHub issues.
A local tool/resource discovery app. Scrapes GitHub Trending, GitHub Topics, HackerNews (Show HN/Ask HN), and Dev.to weekly, then ranks and categorizes what it finds.
- Collects from four source families, then normalises, deduplicates and ranks the results by engagement.
- Groups tools into eight practical categories for faster discovery.
- Serves cached results immediately while a refresh runs in the background.
- Packages the local server and frontend into a standalone macOS window with
pywebviewand PyInstaller. - Uses an original, code-generated radar icon;
make_icon.pyreproducibly builds every macOS icon size without external artwork or machine-specific paths.
scraper.py— multi-source scraper. Pulls GitHub Trending (by language/timeframe), GitHub Topics, HN Algolia search, and Dev.to, then deduplicates and ranks results by an engagement score.server.py— serves the frontend fromweb/and exposes a small JSON API:GET /api/tools— returnsdata/tools.json(the current scrape/ranking output)GET /api/refresh— triggers a background rescrapeGET /api/status— scraper status
app.py— wraps the server in a native macOS window viapywebview, so it runs as a standalone desktop app instead of "open a browser tab." External tool links open in an in-app child window.web/— frontend (index.html,styles.css,app.js) that renders the categorized/ranked tool list and a daily "Suggestion for Today."data/tools.json— the scraped + ranked output; auto-refreshes if older than 7 days.
Results are grouped into categories (Dev Tools & Libraries, AI & Productivity, Learning Resources, Design & Media, DevOps & Infrastructure, Data & Analytics, Security & Privacy, Mobile & Desktop Apps), ranked by total engagement within each category.
./run.shThis installs Python dependencies (requests, bs4, webview) if missing,
then launches app.py. The server listens only on 127.0.0.1:8742, so it is
not exposed to other machines on the network.
pyinstaller ToolRadar.specpython -m compileall -q app.py scraper.py server.py make_icon.py
python -m json.tool data/tools.json > /dev/nullGitHub Actions runs these offline checks on every push and pull request. Live source scraping is deliberately excluded from CI because upstream sites and network conditions are not deterministic.
Licensed under the Apache License 2.0.