Founded amid the thriving Croatian tech scene in 2021, Caelor is a small Atlassian Marketplace partner doing big things. Caelor had its first Marketplace success with MacroSuite, an app that provides content formatting for Confluence. What started as a free app quickly became a paid product as more customers began to come in. The company realized things could really take off when MacroSuite hit its first 1,000 installs and they saw themselves trending on the front page of the Marketplace.
Soon afterwards, Caelor scored another hit with Custom Field Suite, the company's first on Forge. The Caelor team was an early adopter of the Forge platform, and Custom Field Suite is now not only their biggest app, but also one of the most popular apps built on Forge to date.
I recently crossed paths with the Caelor team at Atlas Camp, Atlassian's developer conference in Copenhagen. During the event, I had a chance to sit down with Krešimir Nikolić and Tomislav Nikolić, product manager and software engineer at Caelor, respectively (and also brothers). We chatted about Caelor's development on Forge and how the recently-onboarded Assets API powers their latest app, Shoppie.
"We always mention our Forge apps are hosted by Atlassian"
Building Custom Fields Suite gave the Caelor team a crash course in using Forge. With over 30 custom fields available through the app, they utilized nearly everything the Forge platform offers. While building on Forge in those early days wasn't without limitations, they found the platform easy to use and appreciated the built-in hosting and compute, logging, and multiple dev environments.
Forge's Atlassian architecture also came in handy when talking to customers. "Customers are always glad to hear that such a large company is taking care of app security and app hosting," Krešimir noted.
As the Forge platform continued to evolve, new capabilities became available that allowed the Caelor team to dream up new apps for customers. One of these was Forge support for Jira Service Management Assets. Assets is sometimes referred to as the "database of anything" – a flexible data store that holds any type of resources used by an organization, including hardware, software, networks, and even personnel. With Caelor's prior Assets experience in Data Center, the stage was set to do something new on Forge, but it wouldn't be until Caelor had an insightful encounter with a potential customer that the idea took hold for Shoppie.
Planting the seed
The need for a solution like Shoppie first came to Caelor's attention when a customer approached, requesting a custom build. The project didn't move forward as a one-off, but it did lay the foundation for what Shoppie would become.
Shoppie solves the problem of bringing an assets procurement platform to Jira Service Management. Consider the challenge of supplying incoming employees with the equipment they need: a laptop, keyboard, monitor, etc. Assets procurement platforms allow IT teams to manage, track, and distribute these items. With the Forge Assets import feature, Shoppie lets large companies use their existing data to create a shop-like experience on the Jira Service Management portal, allowing employees to self-serve their procurement needs.
With the goal of creating a "friendly clerk at the forefront of the customer portal," it was time to build. Tomislav, the lead developer on the project, walked me through the implementation.
The "GOAT" Forge modules
Shoppie relies heavily on two Forge modules: trigger and portalRequestCreatePropertyPanel. In particular, Tomislav cited the portalRequestCreatePropertyPanel module as one of the things that makes Shoppie great. Instead of replacing the request form, "the app can merely extend it."
Triggers are used in several ways. First, they're used to post-process items in the app's shopping cart by handling the issue property created by portalRequestCreatePropertyPanel. There is also a trigger module that listens to the avi:jira:created:issue event, and finally, a scheduled trigger runs on an hourly basis to clean up reserved cart items from storage, freeing up those items and discarding the carts.
Forge storage was another much-used feature, and the Caelor team engaged in very creative ways to get the most out of it, extending, abstracting, and building custom data structures. "It also goes without saying, the function modules are a treat to work with," Tomislav told me.
Tips for working with Assets
For developers who are unfamiliar with working with Assets, the Caelor team offered some thoughts on how data is modeled. "Assets are a complicated bunch; every object type attribute can have a different ID, despite semantically representing the same thing as all other attributes," Tomislav said. "That alone was exciting in and of itself, because in the customer portal facing catalog, the distinction between attributes of same semantical meaning can't exist."
The Caelor team was also mindful that admins could be quite knowledgeable about Assets and attributes and have highly specific configuration needs. "We had to give them a very high degree of control over what attribute goes where, per category, while maintaining a great user experience," Krešimir noted.
So what's the verdict, now that Shoppie is in the Marketplace? "The reception has been phenomenal," Krešimir told me. "Customers tell us the app is revolutionary in the Atlassian Marketplace."
The app has evolved quite a bit from its initial drafts, and continues to get better and better based on customer requests and UX refinement. Next, the team hopes to deliver a customizable banner, a revised version of the Issue Panel offering much more control to the Agent, product bundles – and that's just the beginning.
Thank you to the Caelor team for chatting about how their app works under the hood, using Forge and Assets. You can find Caelor and Shoppie on the Atlassian Marketplace.