โจ Your engineering team's performance, forged into something useful.
A desktop app that plugs into JIRA and turns messy ticket data into clear metrics, beautiful charts, and actionable insights. No servers. No Docker. No "let me set up the backend real quick." Just install, connect, and see what your team's been up to. ๐
You connect to JIRA. Uplift Forge pulls your tickets, crunches the numbers, and gives you:
- ๐ญ 4 Persona-Specific Dashboards โ completely different metrics for Engineering Managers, Delivery Managers, Individual Contributors, and Members of Management
- ๐ Cross-Project Aggregation โ EM and Management personas track multiple JIRA projects simultaneously with aggregated metrics, epics, and attribution
- โฑ๏ธ Timeline Engine โ extracts status periods, cycle/lead time, rework detection, and flow efficiency from JIRA changelogs (calendar-time based)
- ๐ EM Dashboard โ cycle time distribution, throughput, contribution spread, aging WIP, bug ratio, rework rate, SP accuracy, first-time pass rate, review duration, work type distribution, lead time breakdown
- ๐ DM Flow Dashboard โ CFD, lead time histogram, WIP vs limit, tiered aging WIP, blockers, flow efficiency, Monte Carlo forecast, arrival vs departure, batch size trend, time to first activity, lead time breakdown
- ๐งโ๐ป IC Personal Dashboard โ private cycle time trend, throughput, time-in-status, rework, scope trajectory, team comparison (opt-in), personal goals, SP accuracy, first-time pass rate, review wait time, focus score
- ๐๏ธ Management Org Dashboard โ cross-project organizational health radar with throughput by project, cycle time comparison, bug escape rate, tech debt ratio, flow efficiency, headcount-normalized throughput, traffic-light KPIs, delivery predictability, work type by project
- ๐๏ธ Epic Tracker โ epic-level progress tracking with auto-computed risk scores and delivery risk analysis
- ๐ค AI Suggestions โ connect OpenAI or Claude to get persona-aware actionable improvement suggestions
- ๐ Explain Button โ every metric has a BookOpen icon that opens a modal explaining the data source, computation formula, filters, and config dependencies. Shows dynamic computation traces with real values (ticket counts, filter results, intermediate calculations) when available.
- ๐ฏ High Precision โ all metrics now utilize 2 decimal place formatting for surgical performance tracking.
All data stays on your machine. ๐ Your credentials live in your OS keychain. ๐ Nothing leaves your laptop (except JIRA API calls and optional AI provider calls).
git clone git@github.com:pmomio/uplift-forge.git
cd uplift-forge
npm installnpm startOn first launch you'll see a login screen. You need three things:
| Field | Where to get it |
|---|---|
| ๐ JIRA Base URL | Your Atlassian URL, e.g. https://your-org.atlassian.net |
| ๐ง Email | The email on your Atlassian account |
| ๐ API Token | Generate one at id.atlassian.com |
๐ Real-time Verification: Uplift Forge verifies your credentials against the JIRA API before saving them. If your API token is invalid or expired, you'll receive an immediate error message. ๐ก๏ธ
That's it. No OAuth dance, no callback URLs, no environment variables. Your credentials are encrypted at rest using your OS keychain (macOS Keychain / Windows DPAPI). ๐ก๏ธ
Head to Settings and:
- ๐ท๏ธ Set your JIRA Project Key (e.g.
ACTIN) - ๐ฅ Click Fetch Fields to load your statuses and optionally select your Story Points field
- ๐ฆ Classify your statuses into Active, Blocked, and Done categories
Hit save, and you're off to the races! ๐
On first launch, an Onboarding Wizard ๐งโโ๏ธ guides you through selecting your role. This choice is permanent โ reset the app to change it later. ๐
| Persona | What You See |
|---|---|
| ๐ฅ Engineering Manager / VP | Home, Metrics, Individual, Epics, Settings โ cycle time, throughput, contribution, aging WIP, rework, bug ratio, SP accuracy, first-time pass rate, review duration, work type distribution, lead time breakdown, per-engineer individual metrics. Multi-project support. ๐ |
| ๐ Delivery Manager | Home, Metrics, Epics, Settings โ Flow Dashboard (CFD, lead time distribution, WIP vs limits, tiered aging WIP, blockers, flow efficiency, throughput stability, Monte Carlo forecast, arrival vs departure, batch size trend, time to first activity, lead time breakdown) ๐ |
| ๐งโ๐ป Individual Contributor | Home, Individual, Settings โ Private personal dashboard (cycle time trend, throughput, time-in-status, rework, scope trajectory, team comparison, personal goals, SP accuracy, first-time pass rate, review wait time, focus score) ๐ฏ |
| ๐๏ธ Member of Management | Home, Metrics, Epics, Settings โ Organizational Health Radar (cross-project throughput, cycle time by project, bug escape rate, tech debt ratio, flow efficiency, headcount-normalized throughput). Multi-project. ๐ผ |
Each persona sees genuinely different metrics backed by a shared Timeline Engine that computes status periods, cycle/lead time, rework, and flow efficiency from JIRA changelogs. ๐ง
๐ Persona Isolation: Each persona can ONLY see its own metrics โ IPC handlers enforce persona guards preventing cross-persona data access. To change persona, use "Reset App" in the sidebar (goes back to login โ full fresh install state).
๐ Multi-Project Support: EM and Management personas can configure multiple JIRA project keys during onboarding and in Settings. Data is aggregated across all projects.
A persona-aware welcome screen with a getting-started guide. Shows different greetings based on your role. ๐
For Engineering Managers โ the EM Team Dashboard shows:
- ๐ Cycle Time Distribution โ p50/p85/p95 with 4-week trend
- ๐ Throughput by Work Stream โ ticket counts and SP by category
- ๐ Weekly Throughput โ trend chart over 8 weeks
- ๐ฅ Contribution Spread โ per-engineer output normalized against team average
- โณ Aging WIP โ tickets stuck in active statuses beyond warning/critical/escalation thresholds
- ๐ Bug Ratio by Engineer โ quality signal per team member
- ๐ Rework Rate โ percentage of tickets with backward status transitions
- ๐ฏ SP Estimation Accuracy โ active time from history vs estimated (SP ร sp_to_days ร 8h)
- โ First-Time Pass Rate โ percentage of tickets completed without rework
- โฑ๏ธ Avg Code Review Duration โ time tickets spend in review statuses
- ๐ Work Type Distribution โ horizontal bar chart by issue type
- ๐ Unestimated Ticket Ratio โ % of resolved tickets with no story point estimate
- ๐ Lead Time Breakdown โ active work vs waiting vs blocked percentages
For Delivery Managers โ the DM Flow Dashboard shows:
- ๐ Cumulative Flow Diagram โ 30-day stacked area chart of daily status counts
- โฑ๏ธ Lead Time Distribution โ p50/p85/p95 with histogram (day-range buckets)
- ๐ WIP Count vs Limit โ active ticket count with configurable WIP limit
โ ๏ธ Aging WIP (3 tiers) โ warning/critical/escalation based on configurable thresholds- ๐ซ Blocker Duration โ top blocked tickets sorted by blocked hours
- ๐ Flow Efficiency โ average and median (active time / lead time)
- ๐ Throughput Stability โ coefficient of variation of weekly throughput (1 - stddev/mean)
- ๐ฎ Monte Carlo Forecast โ 10,000 simulations predicting weeks to complete current WIP (50/85/95% confidence)
- ๐ Arrival vs Departure Rate โ 12-week dual-line chart of tickets created vs resolved
- ๐ฆ Batch Size Trend โ avg SP per completed ticket each week (12 weeks)
- โฑ๏ธ Time to First Activity โ average time from creation to first active status
- ๐ Lead Time Breakdown โ active work vs waiting vs blocked percentages
For Engineering Managers โ per-engineer metrics with team averages:
- ๐ Engineer Output Comparison โ bar chart of tickets and SP per engineer
- ๐ Expandable Engineer Cards โ cycle time p50/p85, rework rate, bug ratio, SP accuracy, first-time pass rate, complexity, focus ratio
- โ๏ธ Team Averages Bar โ baseline comparison for all metrics (includes SP accuracy + first-time pass)
- ๐จ Color-coded โ green/red vs team average (lower-is-better for cycle time, rework, bugs)
For Individual Contributors โ private personal metrics with growth framing:
- ๐ Cycle Time Trend โ weekly p50 over 8 weeks
- ๐ Weekly Throughput โ tickets done per week
- ๐ Time in Each Status โ how your time is distributed across workflow states
- ๐ Rework Rate โ your rework trend over time
- ๐ Scope Trajectory โ average SP per ticket by month (are you taking on more complex work?)
- โณ My Aging WIP โ your in-progress tickets with days-in-status
- ๐ฅ Team Comparison (opt-in) โ anonymous team medians for benchmarking
- ๐ฏ Goal Progress โ personal targets vs current performance
- ๐ฏ SP Estimation Accuracy โ your estimates vs actual active time from history
- โ First-Time Pass Rate โ percentage of your tickets completed without rework
- โฑ๏ธ Code Review Wait Time โ average time your tickets spend in review
- ๐ฏ Focus Score โ percentage of product work vs bugs/maintenance
For Members of Management โ organizational health radar across all projects:
- ๐ซ Total Tickets โ volume KPI across all projects
- ๐ Bug Escape Rate โ bugs รท total stories with traffic-light indicator (green <10%, amber <20%, red โฅ20%)
- ๐ง Tech Debt Ratio โ capacity on bugs + tech debt vs features with traffic-light indicator
- ๐ Flow Efficiency โ aggregate active time / lead time with traffic-light indicator
- ๐ค Headcount-Normalized Throughput โ tickets รท number of tracked engineers
- ๐ Cycle Time p85 by Project โ horizontal bar chart comparing projects
- ๐ Throughput Trend by Project โ multi-line chart (one line per project over 8 weeks)
- ๐ Weekly Throughput โ aggregate bar chart
- ๐ Delivery Predictability โ coefficient of variation per project (color-coded: green <30%, amber 30-50%, red >50%)
- ๐ Work Type by Project โ stacked horizontal bars showing issue type breakdown per project
Track epic-level delivery progress ๐. Available for Engineering Managers and Delivery Managers.
- ๐ Summary stats โ total epics, high/medium/low risk counts
- ๐ Epic cards โ expandable with progress bars, risk badges, ticket counts
โ ๏ธ Auto-computed risk scores โ weighted formula based on progress, overdue, blocked, bugs- ๐ค AI Risk Analysis โ per-epic AI suggestions for risk mitigation
- ๐ Your Role โ read-only badge (set during onboarding, immutable)
- ๐ JIRA Connection โ project key, data range, field mappings
- ๐ Metrics โ SP calibration, tracked engineers, status classification
- ๐ Attribution โ visual rule builder for TPD BU and Work Stream
- ๐ฅ๏ธ Application โ AI provider setup, version info, update check
The Timeline Engine extracts flow data from JIRA changelogs using calendar time:
- ๐ Status Periods โ every period a ticket spent in each status, with duration and category (active/wait/blocked/done)
- โฑ๏ธ Cycle Time โ first active status to done (calendar hours)
- ๐ Lead Time โ created to done (calendar hours)
- ๐ Flow Efficiency โ active time / lead time ร 100
- ๐ Rework Detection โ backward transitions in status order (e.g. Code Review โ In Progress)
- โณ Days in Current Status โ for aging WIP detection
Status classification is configurable in Settings: Active Statuses, Blocked Statuses, Done Statuses. ๐ง
- ๐ Local-first: All data lives on your machine. No servers, no telemetry, no tracking.
- ๐ Encrypted credentials: API tokens are stored using your OS's native secure storage (macOS Keychain, Windows DPAPI).
- ๐ GDPR consent: Users agree to a Privacy Policy and Terms of Service on first login.
- ๐ฃ Reset anytime: The "Reset App" button in the sidebar wipes all stored data, credentials, and AI keys โ returning you to the login page (fresh install state).
The only external calls are to the JIRA REST API (your instance) and GitHub (for update checks). ๐
| Command | What it does |
|---|---|
npm start |
๐ฅ Launch in dev mode (Vite HMR + Electron) |
npm test |
๐งช Run all tests |
npm run test:watch |
๐ Watch mode |
npm run test:coverage |
๐ Coverage report |
npm run lint |
๐ ESLint |
npm run test:e2e |
๐ญ Run all e2e tests |
npm run test:e2e:headed |
๐ Run e2e tests with visible window |
npm run test:all |
๐งช๐ญ Run unit + e2e tests |
npm run package |
๐ฆ Package the app |
npm run make |
๐๏ธ Build distributables (DMG / Squirrel / ZIP) |
npm run publish |
๐ Publish to GitHub Releases |
| Layer | Tech |
|---|---|
| Runtime | โก Electron 33 |
| Frontend | โ๏ธ React 19, ๐จ Tailwind CSS 4, ๐ Recharts, โจ Lucide icons |
| Language | ๐ TypeScript 5.9 (strict mode) |
| Build | ๐จ Electron Forge + Vite |
| Testing | ๐งช Vitest + Testing Library + jsdom |
| Date/Time | ๐ Luxon (timezone-aware) |
| Storage | ๐พ electron-store (JSON on disk) |
| Auth | ๐ API token, encrypted via safeStorage |
src/
main/ ๐ฅ๏ธ Electron main process
auth/ ๐ Credential storage (OS keychain)
ipc/ ๐ก IPC handler registrations
services/ ๐ง Business logic (config, JIRA, tickets, metrics, timeline, em/dm/ic/cto metrics, field engine, projects, updates)
renderer/ ๐จ React frontend
pages/ ๐ Home, Login, EmTeamDashboard, EmIndividualDashboard, DmFlowDashboard, IcPersonalDashboard, CtoOrgDashboard, Attribution, Epic Tracker
components/ ๐งฉ Sidebar, ConfigPanel, TicketTable, RuleBuilder, OnboardingWizard, etc.
shared/ ๐ค Types and IPC channel constants
test/
main/ ๐งช Service unit tests
Unit Tests: 675 tests across 33 test suites (Vitest + Testing Library). Coverage thresholds enforced:
| Metric | Threshold |
|---|---|
| โ Statements | 90% |
| ๐ Branches | 80% |
| โก Functions | 85% |
| ๐ Lines | 90% |
E2E Tests: ~54 end-to-end tests using Playwright + Electron ๐ญ. Tests launch the real packaged app with an isolated user-data directory and a local JIRA mock server.
# ๐ macOS DMG
npm run make
# ๐ All platforms (DMG, Squirrel installer, ZIP)
npm run makeReleases are published to GitHub via npm run publish. The app checks for updates automatically every 4 hours โฐ (or manually from Settings).
GNU GPL v3
Built with โค๏ธ by Parijat Mukherjee
