Inspiration
Business teams—HR, Legal, Finance, and IT—often struggle with "notification fatigue." Critical policy updates or system changes are frequently buried in long email chains or Slack channels, leading to a lack of alignment and compliance risks. We wanted to build a solution that meets users where they are: directly inside Jira and JSM. The goal was to create a tool that offers the flexibility of subtle notifications for general news and "hard-stop" modals for critical acknowledgments, ensuring that the right message reaches the right person at the right time.
What it does
- Custom Announcements for Jira & JSM allows administrators to create and manage targeted alerts across Jira and Jira Service Management.
- Admins can deploy announcements to the Help Center, Portal Page, Request Page, or the internal Work Item View.
- Announcements can be restricted to specific spaces, ensuring relevance (e.g., a Legal update only appearing in the Legal Service Desk).
- Admins can choose between a small, unobtrusive side pop-up or a centered modal dialog.
- A powerful editor supports full Markdown, image uploads, code formatting, links and more.
- Every announcement includes an "Acknowledge" button that logs the user, timestamp, and location of the interaction for audit purposes.
How we built it
Forge & React: We leveraged the Forge Custom UI with React to build a highly responsive and interactive administration dashboard.
Tiptap Editor: We integrated the Tiptap open-source editor to provide a seamless rich-text experience, allowing for flexible content creation including Markdown support and media embedding.
Forge Storage API: To ensure the app remains within the Atlassian ecosystem, all data is stored using Forge’s native storage, maintaining strict data residency.
Challenges we ran into
A major technical hurdle was managing the Forge storage limits. Since storing images directly as Base64 strings for each announcement would have quickly exceeded the storage key size limits.
To solve this, we developed a custom chunking and stitching logic. When an image is uploaded via the editor and saved, the app splits the data into smaller chunks and stores them as separate storage keys. When a user views an announcement, the app retrieves these keys and "stitches" them back together. This architectural workaround dramatically increased the volume and quality of images that can be included in a single announcement while staying entirely within the Forge infrastructure.
Accomplishments that we're proud of
We are proud of the technical solutions implemented to ensure a premium user experience when viewing announcements. When a user has multiple announcements to view that have images, the app begins fetching the image chunks for the next announcement in the background. This means that by the time the user navigates to the next message, the media is already rendered and ready to view. We're also proud of the image chunking solution, as it allowed us to provide a high-end feature without relying on external, non-compliant storage providers.
What we learned
Building this app was a lesson in balancing "enforced" communication with a positive user experience. We learned that for an announcement to be effective, the admin needs total control over its urgency—choosing when to be subtle and when not be. Technically, working within the Forge environment pushed us to find creative solutions for data management, proving that you can build high-performance, media-rich applications while keeping everything strictly within the Atlassian ecosystem.
What's next for Custom Announcements for Jira & JSM
Features currently in development:
Scheduled Announcements: The ability to set "Start" and "End" dates for automated announcements.
Permission Management: Allow admins to grant access to other busniess teams to create announcements specifically for their space
Group Restriction: Further narrowing down visibility based on user groups or roles.
Confluence & Jira links: Streamlining the inclusion of Confluence and Jira links to help teams connect announcements to existing documentation and work items.


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