Inspiration
Jira users employ various web tools in the course of their workflow. Often they need to search for or fill in relevant information in the tool based on the customer or issue, which is slow, repetitive and inefficient.
We built Shortcuts for Jira so users don’t need to waste time searching and navigating around. Instead, dynamic links help users jump to the exact information they need for the job.
What it does
Shortcuts for Jira are dynamically generated URLs to any web tool. It allows you to inject almost any of your Jira data into URLs. For example:
- Inject a customer reference into your CRM or billing system URL to quickly pull up a customer record with a single click.
- Inject timestamps or search queries into your log viewer URL to inspect relevant logs while debugging issues.
Shortcuts for Jira harnesses the power of Jira expressions to dynamically fetch, transform and inject Jira data. Shortcut URLs are easy to set up: wherever you wish to inject Jira expression results in your URL, just use a pair of double curly braces, for example, {{issue.id}}. The Shortcut exerciser lets you test your Shortcut easily with different issues.
How we built it
The Forge app is built on top of a custom Forge project architecture based on Nx Forge, which allows for a modular and scalable developer workflow. The user interface consists of React-based Custom UI modules. Forge Custom UI modules talk to Forge backend resolvers via tRPC for which we built custom protocol adapters to enable RPC over the Custom UI bridge.
Challenges we ran into
The Forge platform makes it very easy to get started with a simple app project. However, we felt that the examples and generated project layout did not scale. Finding an efficient developer workflow is left up to the developer. This was a challenge for us because we started to spend significant time figuring out developer tooling instead of developing the app. On the plus side, we learned a lot about our setup and tooling, and believe we have found nice solutions (refer to accomplishments below).
Accomplishments that we're proud of
The idea behind Shortcuts for Jira is simple and easy to understand. Yet, once you start digging into the aspects of injecting live data into URLs, the possibilities become endless. We are proud to have brought a simple idea to life that has the potential to become a powerful tool in our customer’s toolboxes.
In terms of technical accomplishments, we are proud of innovations in the area of Forge project setup and developer efficiency and ergonomics when working with the Forge framework.
- We created a modular Forge project architecture based on Nx Forge, which allows us to easily architect Forge apps from reusable and composable modules. This project architecture allows us to easily build and deploy one or more Forge projects, including any number of Custom UI projects, and even build cross-product Forge apps with dead-simple code sharing.
- We created custom RPC protocol adapters for the popular tRPC framework to support RPC calls over the Forge Custom UI bridge. The benefits of this solution cannot be overstated; hence I would like to highlight a few benefits:
- Automatic type-safety: tRPC relies on Typescript to ensure that client code (Custom UI) and server code (Forge function/resolvers) are always in sync. If we make a breaking change to the API of a Forge function, the compilation of the Custom UI code will fail (without generating additional code!).
- Simple: tRPC solely relies on Typescript to ensure the client-server contract is valid - no code generators, no schema declarations required.
- Performance: tRPC has great support for server-side rendering. If the Forge ecosystem supports server-side rendering, I am sure tRPC will be able to leverage that.
- Developer ergonomics: Through the tRCP interface, IDEs will provide code completion for available Forge functions and even support jump-to-source (server) from Custom UI code.
What we learned
This project allowed us to gain a better understanding of the Forge platform, tooling and APIs. This will be essential knowledge for our future journey on and towards Forge.
What's next for Shortcuts for Jira
With Shortcuts for Jira, we laid out the groundwork to connect Jira to the web. There are still some sharp edges to round off and work to be done to make Shortcuts more configurable. Additionally, improving the user experience when working with Jira expressions will remain a continuous effort.
Built With
- froge
- nx
- trpc
- typescript
![Michael Rüegg [Mibex Software] Michael Rüegg [Mibex Software]](http://d112y698adiu2z.cloudfront.net/photos/production/user_photos/002/636/767/datas/medium.jpg)
Log in or sign up for Devpost to join the conversation.