Inspiration
We built Blocker Manager because blockers often get lost in chats and comments. We wanted a single place in Jira where every blocker is clearly described, visible to the whole project, and automatically updated based on the linked issue.
What it does
Blocker Manager lets software teams report blockers for a specific Jira project with key details: title, reason, who it affects, and what’s needed to resolve it. A blocker can optionally be linked to a Jira issue. If a link is provided, the blocker status is updated automatically based on the issue state; if not, the blocker can represent obstacles outside Jira (e.g., dependencies, approvals, external teams) and remains tracked in the Project Manager view:
- Resolved when the linked issue is Done
- Open when the linked issue is in any other status
- Project managers can view all blockers for the project in one dashboard to quickly spot risks and unblock delivery.
How we built it
We built the app as a Jira integration using Atlassian Forge, with the UI written in React and typed end-to-end with TypeScript. We used the Jira APIs to fetch issue data and determine workflow status, and we designed the data model so blocker details are stored in Forge Storage, while the blocker status is derived from the linked issue state. For data fetching and UI synchronization we used React Query, which helped us keep the interface responsive, handle loading/error states cleanly, and invalidate cached data when blockers or linked issues change.
Challenges we ran into
- Workflow differences: Jira status names vary between projects, so we had to make the “Done → Resolved” logic reliable across setups.
- Keeping status fresh: issues can change anytime, so we had to decide when to re-check linked issue status to avoid outdated blocker states.
- Designing for clarity: we iterated on the blocker fields to ensure reports stay actionable and not vague.
- Hackathon constraints: limited time forced us to prioritize a strong MVP and make smart trade-offs.
Accomplishments that we're proud of
- A working MVP built within hackathon time that solves a real team pain point.
- Automatic status synchronization between blockers and Jira issues.
- A clean, structured blocker form that improves report quality and accountability.
- A Project Manager view that centralizes all blockers and improves visibility across the project.
What we learned
- How to build Jira apps with Forge using TypeScript, including working with modules, permissions, and app storage.
- How to create a maintainable UI in React for structured reporting and project-level views.
- How to integrate with Jira issues and workflows via the Jira API and derive blocker status from issue state.
What's next for Blocker Manager
- Add filtering and search (by status, affected person/team, keywords).
- Add notifications when a linked issue transitions to Done.
- Improve status mapping using Jira status categories for better workflow compatibility.
- Add simple analytics (e.g., time-to-resolve blockers, most common reasons).
Built With
- canva
- figma
- forge
- gitlab
- intellij-idea
- jira
- react
- typescript





Log in or sign up for Devpost to join the conversation.