A full-stack web application for discovering and browsing GitHub trending and starred repositories. Supports dual deployment modes: a traditional API+SQLite backend, or a static GitHub Pages site with pre-exported JSON data.
- GitHub Trending β Browse daily, weekly, and monthly trending repositories with snapshot history.
- GitHub Starred β View your starred repositories with
starred_attimestamps and incremental sync. - Filtering & Search β Filter by language, topics, date snapshot, stars range; search by name/description; sort by stars, updated, created, or starred date.
- Dual Mode β Run as a full-stack app (Hono API + SQLite) or deploy as a static site (GitHub Pages) with incremental JSON data chunks.
- Multi-theme β Default, Notion, and Linear theme support.
- Filter Persistence β Filter state is saved to localStorage and restored on page reload.
- Bun or Node.js 18+
- GitHub CLI (
gh) installed and authenticated (gh auth login) - Firecrawl API key (optional, falls back to
ghCLI)
git clone <repo-url>
cd innate-feeds
bun install
bun run install:allbun run devThis starts:
- Backend API at
http://localhost:4000 - Frontend dev server at
http://localhost:3000(proxies/apito backend)
cd backend
# Sync trending repos (all periods: daily, weekly, monthly)
bun run sync:trending
# Sync your starred repos (full)
bun run sync:starred
# Sync only recently starred (last 24h, incremental)
bun run sync:starred:recent
# View stats
bun run statsAPI mode:
cd frontend && bun run build
# Serve frontend/dist/ and run backend with: cd backend && bun run startStatic mode (GitHub Pages):
# Export data + build frontend in static mode
bun run build:static
# For project pages with a sub-path
VITE_BASE_PATH=/your-repo bun run build:pagesinnate-feeds/
βββ backend/
β βββ src/
β βββ app/ # server.ts (Hono API), cli.ts (CLI)
β βββ collector/ # github.ts, firecrawl.ts, sync.ts
β βββ data/ # export/import static JSON
β βββ db/ # SQLite schema, queries, path config
βββ frontend/
β βββ src/
β βββ pages/ # TanStack Router routes (trending, starred)
β βββ components/ # FeedCard, FilterBar, AppSidebar, etc.
β βββ services/ # feeds.ts (API + static mode client)
β βββ hooks/ # usePersistedFeedFilters
β βββ lib/ # utils, theme, filter storage
β βββ types/ # TypeScript domain types
βββ git-repo-scanner/ # Standalone Go CLI for scanning local git repos
βββ package.json # Root workspace scripts
| Layer | Technology |
|---|---|
| Frontend | React 19, TanStack Router, Vite 6, Tailwind CSS v4 |
| Backend | Hono 4, @hono/node-server |
| Database | SQLite via better-sqlite3 (WAL mode) |
| Data Sources | GitHub CLI (gh), Firecrawl |
| Validation | Zod |
| Runtime | Bun / Node.js 18+ |
| Variable | Default | Description |
|---|---|---|
PORT |
4000 |
Backend API server port |
DB_PATH |
~/.innate/feeds.db |
SQLite database file path |
INNATE_HOME |
~/.innate |
Data directory (DB_PATH overrides) |
VITE_STATIC_MODE |
β | Set to true for static/GitHub Pages mode |
VITE_BASE_PATH |
/ |
Base URL path for GitHub Pages project sites |
GITHUB_TOKEN |
β | Used by git-repo-scanner for higher API rate limits |
Private project.