OrgExplorer transforms GitHub organizations into interactive, visual intelligence dashboards. Explore repository relationships, contributor networks, activity trends, risk metrics, and organizational healthβall without leaving your browser.
- Repository relationship mapping
- Contributor collaboration networks
- Activity trends and growth patterns
- Bus factor & single-point-of-failure detection
- Technology stack distribution
- Real-time organizational metrics
-
Fully Browser-Based β Runs entirely in the browser with GitHub's REST API. No backend server required.
-
Organization Dashboard β Overview of repositories, stars, contributors, creation timeline, tech stack, and activity metrics.
-
Repository Analytics β Deep insights into repository health, commit frequency, contributor density, issue trends, and language composition.
-
Contributor Network Visualization β Graph-based view of how contributors collaborate across repositories.
-
Bus Factor & Risk Detection β Identify single points of failure and contributor concentration risks.
-
Activity & Growth Trends β Track repository creation patterns, commit activity, and engagement over time.
-
Authenticated Mode β Optional GitHub GraphQL API for enhanced data access and deeper analytics.
Frontend: React 18 Β· TypeScript Β· TailwindCSS Β· Vite
Visualizations: D3.js Β· Recharts
Data: GitHub REST & GraphQL APIs
Storage: IndexedDB (browser-based caching)
Build: Vite with React plugin
flowchart TD
%% =========================
%% USER BROWSER - MAIN FLOW
%% =========================
subgraph USER_BROWSER["User Browser"]
%% -------------------------
%% UI LAYER
%% -------------------------
subgraph UI_LAYER["UI Layer"]
UI1[Organization Selector]
UI2[Repo List]
UI3[Contributor View]
UI4[Graph View]
UI5[Settings View<br/>Add PAT / Refresh Data]
end
%% -------------------------
%% LOGIC LAYER
%% -------------------------
subgraph LOGIC_LAYER["Logic Layer"]
L1[User Interaction with UI]
L2[UI State Handling<br/>Selection Tracking]
L3[Cache Validation Logic<br/>Check IndexedDB]
L4[Rate Limit Awareness]
end
end
UI1 --> L1
UI2 --> L1
UI3 --> L1
UI4 --> L1
UI5 --> L1
L1 --> L2
L2 --> L3
%% =========================
%% CACHE CHECK
%% =========================
L3 --> CACHE_DECISION{Data cached<br/>in IndexedDB?}
CACHE_DECISION -- Yes --> LOAD_CACHE[Load Data from IndexedDB]
CACHE_DECISION -- No --> API_FLOW_START[Start Data Fetch <br/>GraphQL / REST]
%% =========================
%% AUTH MODE DECISION
%% =========================
subgraph AUTH_LAYER["GitHub API Request Logic"]
AUTH_CHECK{PAT Available?}
AUTH_CHECK -- Yes --> AUTH_MODE[Request using PAT<br/>Higher Rate Limit]
AUTH_CHECK -- No --> UNAUTH_MODE[Unauthenticated Mode<br/>60 req/hour]
end
API_FLOW_START --> AUTH_CHECK
AUTH_MODE --> API_REQUEST
UNAUTH_MODE --> API_REQUEST
%% =========================
%% GITHUB API LAYER
%% =========================
API_REQUEST[GitHub API Request]
API_REQUEST --> GITHUB_LAYER[GitHub API Layer<br/>GitHub Server]
GITHUB_LAYER --> RESPONSE_CHECK{Data Response}
RESPONSE_CHECK -- Success --> STORE_DATA[Store in IndexedDB]
RESPONSE_CHECK -- Failure --> ERROR_STATE[Error Message<br/>Failed to Load Data]
STORE_DATA --> LOAD_CACHE
%% =========================
%% LOCAL STORAGE LAYER
%% =========================
subgraph LOCAL_STORAGE["Local Storage Layer"]
subgraph INDEXED_DB["IndexedDB (via idb)"]
DB1[Org Store]
DB2[Repo Store]
DB3[Contributor Store]
DB4[Graph Store]
DB5[Node-Edge Store]
DB6[Metadata]
end
subgraph LOCAL_STORAGE_META["localStorage"]
LS1[Last Fetched]
LS2[TTL]
LS3[GitHub Rate Info]
LS4[Known Present Flags]
end
end
STORE_DATA --> INDEXED_DB
STORE_DATA --> LOCAL_STORAGE_META
LOAD_CACHE --> VISUAL_PAGE_1
LOAD_CACHE --> VISUAL_PAGE_2
%% =========================
%% VISUALIZATION PAGE 1
%% =========================
subgraph VISUAL_PAGE_1["Page 1 - Repo + Contributors Graph"]
subgraph GRAPH_LAYER_1["Visualization Layer (Graph Visualization)"]
G1_NODE[Node Builder]
G1_EDGE[Edge Builder]
G1_LAYOUT[Layout Engine]
G1_INTERACT[Interaction Layer<br/>Hover β Tooltip<br/>Click β Detail Panel]
end
G1_NOTE[Shows one repo with all contributors<br/>Node & Edge Form]
end
%% =========================
%% VISUALIZATION PAGE 2
%% =========================
subgraph VISUAL_PAGE_2["Page 2 - All Repos Graph"]
subgraph GRAPH_LAYER_2["Visualization Layer (Graph Visualization)"]
G2_NODE[Node Builder]
G2_EDGE[Edge Builder]
G2_LAYOUT[Layout Engine]
G2_INTERACT[Interaction Layer<br/>Hover β Tooltip<br/>Click β Detail Panel]
end
G2_NOTE[Shows all repos<br/>Node & Edge Form]
end
- Frontend (React + D3.js)
- Data Processing Layer (analytics engine)
- GitHub REST API
- Optional GitHub GraphQL API
- Database (IndexedDB for caching, local storage for user settings)
- UI Rendering Layer (dashboard, graphs, panels)
Data flows:
User β Frontend β API β GitHub APIs β Processing Layer β Database β UI Rendering
User enters organization name
β
REST API fetches public insights
β
Analytics engine computes metrics
β
Dashboard renders visual intelligence
β
(Optional) User enables authenticated mode
-
Clone & Install
git clone https://github.com/AOSSIE-Org/OrgExplorer.git cd OrgExplorer npm install -
Run Development Server
npm run dev
Open http://localhost:5173 in your browser.
-
Build for Production
npm run build
For detailed setup instructions, see CONTRIBUTING.md.
We welcome contributions from developers, designers, and open-source enthusiasts. See CONTRIBUTING.md for:
- How to report bugs and suggest features
- Development workflow and coding standards
- Pull request guidelines
- Community communication
Licensed under the GNU General Public License v3.0. See LICENSE for details.
- AOSSIE Community
- GitHub API Documentation
- React, Vite, and D3.js communities
Β© 2026 AOSSIE. All rights reserved.
