{"id":50789715,"url":"https://github.com/ramonclaudio/gitbar","last_synced_at":"2026-06-12T10:02:46.606Z","repository":{"id":353385018,"uuid":"1145411105","full_name":"ramonclaudio/gitbar","owner":"ramonclaudio","description":"A menubar GitHub dashboard built with Tauri (TypeScript + Rust). PRs, issues, repos, and activity in one window.","archived":false,"fork":false,"pushed_at":"2026-04-23T17:14:39.000Z","size":1800,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-23T18:31:12.129Z","etag":null,"topics":["dashboard","desktop-app","developer-tools","github","graphql","macos","menubar","open-source","react","rust","shadcn-ui","tailwindcss","tauri","typescript","vite"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ramonclaudio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-29T19:23:09.000Z","updated_at":"2026-04-23T17:14:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ramonclaudio/gitbar","commit_stats":null,"previous_names":["ramonclaudio/gitbar"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ramonclaudio/gitbar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramonclaudio%2Fgitbar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramonclaudio%2Fgitbar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramonclaudio%2Fgitbar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramonclaudio%2Fgitbar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ramonclaudio","download_url":"https://codeload.github.com/ramonclaudio/gitbar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ramonclaudio%2Fgitbar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34238715,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","desktop-app","developer-tools","github","graphql","macos","menubar","open-source","react","rust","shadcn-ui","tailwindcss","tauri","typescript","vite"],"created_at":"2026-06-12T10:02:44.755Z","updated_at":"2026-06-12T10:02:46.596Z","avatar_url":"https://github.com/ramonclaudio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Gitbar\n\n![Gitbar Demo](.github/assets/demo.gif)\n\nI kept bouncing between GitHub tabs for PRs, issues, and activity. Wanted one menubar window for all of it. So I built this.\n\nMenubar GitHub dashboard built with Tauri.\n\n## Layout\n\n2-panel layout with resizable sections:\n\n- **Left**: stats, contribution calendar, activity feed (mine/others), repositories (mine/contributed), split into two resizable panes\n- **Right**: PR list and issue list in resizable panes. Click in for detail view with full markdown body, comments, reviews.\n\nPRs show diff stats, reviewers, approval status, branch info. Issues show reactions, linked branches, task progress. Repos show stars, forks, language, topics, visibility.\n\nPrivacy toggle (lock icon) hides private repos, PRs, and issues across all panels. Useful for screenshots and livestreams.\n\nLight/dark theme, persisted to localStorage.\n\n## Performance\n\n3 parallel GraphQL queries + REST events, not one blocking call:\n\n1. **Viewer**: repos, stats, calendar\n2. **PR searches**: created, review requested, assigned, mentioned\n3. **Issue searches**: created, assigned, mentioned\n\nProgressive rendering: viewer data renders as soon as it arrives. PR/issue data fills in when searches complete. Activity loads last in the background.\n\n- Stale-while-revalidate: cached data renders instantly, fresh data loads behind the scenes\n- localStorage persistence: survives app restarts, instant cold start\n- 30-minute cache TTL: subsequent opens within window are instant (no network)\n- Username persisted: events query fires in parallel on first load instead of waiting for viewer response\n- IntersectionObserver: only visible items rendered, more load on scroll\n\n## Stack\n\n- Tauri v2 (native wrapper, ~5MB binary)\n- React 19\n- Vite 7\n- Tailwind v4\n- shadcn/ui (scroll area, avatar, badge, button)\n- `react-resizable-panels`\n\n## Prerequisites\n\n- [Bun](https://bun.sh)\n- [Rust](https://rustup.rs) (required by Tauri)\n- [gh CLI](https://cli.github.com) authenticated (`gh auth login`)\n\n## Setup\n\n```bash\nbun install              # install deps\nbun run tauri dev        # dev mode\nbun run tauri build      # build\n```\n\nUses `gh auth token` to get a token at runtime. No env vars needed.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framonclaudio%2Fgitbar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framonclaudio%2Fgitbar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framonclaudio%2Fgitbar/lists"}