Onward‘s story of entering the world of Atlassian apps – and learning how to leverage Forge – took place over an action-packed two month period, full of valuable lessons and insights (not to mention a few late nights). We're here to share our timeline and a few of those insights with the wider developer community, but first, let us tell you a little about ourselves.
Before starting Onward, we've developed applications for marketplaces like Salesforce, Google Cloud, Android and iOS for over 10 years. While these marketplaces might be different from each other, our common ground is passion for solving customer problems. As we looked to what’s next, we knew we wanted to be part of an ecosystem that would enable us to rapidly innovate and solve for use cases that drive business outcomes .
That's what led us to Atlassian. Atlassian’s robust core product offering, developer-friendly platform with comprehensive APIs, and the Forge platform, coupled with a mature and vibrant marketplace, presented an exciting opportunity. From past experience, we knew we needed a tech stack that allows us to build enterprise grade applications, a marketplace where customers transact as opposed to just a storefront, and a feedback loop between us, the platform provider and end customers to support rapid and iterative development.
With that in mind, we set an ambitious target to get our app on the Atlassian Marketplace within just a few months. We knew it would be challenging, but we're happy to say we were able to launch our app on June 14 – just a little over two months since we wrote our first line of code.
Here's a quick look at our timeline – read on to hear our full story, highs, lows, and everything in between.
Before we began, we knew we needed to align on a set of guiding principles, but luckily this part came easily. It's critical that Marketplace partners have a clear focal point that describes how they intend to deliver unique value to the customer.
Example: Onward provides apps for Atlassian that reimagine worker engagement.
Once we had the goal part firmed up, we iterated on the vision and mission of the company.
Vision: To strengthen our customers' greatest resource—their employees. We do that by offering easy to use applications that promote worker engagement. Mission: To engage and energize the evolving global workforce by providing value-based, cost-effective and frictionless applications on Atlassian.
Throughout the build process, we leaned on these principles to guide us to make the right decisions and build the right company culture
Now, to the fun part.
Remote, Distributed and Global From Day 1.
My co-founder Prabhu and I are many miles apart. I live on the West coast of the US and Prabhu is on the East coast. Our UX designer is based out of London. Our development team is in India and our Architect is based out of the Philippines. Even though we were a small team, we were remote, distributed and truly global from day one. This presented a few challenges, including the need to schedule and plan in advance. The upside is we were able to work round the clock and this helped us maintain a high velocity.
This meant we often had multiple workstreams happening simultaneously or tightly sequenced, requiring a great deal of coordination:
- We did initial requirements gathering and created a design specification
- We had our designers build the UX screens
- Our Architect validated the spec and set up technical design review sessions
- Our development team built the application
There were a few hiccups, but we quickly got into the rhythm and set a meeting cadence that worked with everybody’s schedule.
Getting to Know Forge
Even though we had experience building highly scalable applications, we were completely new to Forge. One of our key concerns was the learning curve to start building enterprise applications. We began building our app in April and launched it in the Marketplace by June. We found that the Atlassian Developer Community welcomed us with open arms and people always responded with useful answers when we had newbie questions. For any developers getting started with Forge, we highly recommend leaning on the Atlassian Developer Community to source answers and make connections.
Measure Twice and Cut Once
We wanted to move at speed, but that required detailed planning to ensure we had clear scope and achievable milestones. Three factors played a crucial role in our agile & rapid development.
- First, because we built on Forge, the elimination of infrastructure setup allowed us to focus solely on application development. In the past, we experienced the burden of setting up stable infrastructure, ensuring security measures, and operational rigor, which can be time-consuming and require separate skill sets.
- Second, the use of standard technologies in Forge, such as Node.js and React, aligned with our existing background and facilitated a rapid learning curve. As a team we have a strong Node.js and React background, having built apps in our previous company that were used by millions of users. The availability of excellent Forge examples and external resources like Udemy courses further aided our understanding.
- Lastly, the completeness of the documentation and strong community support were invaluable. The thorough documentation enabled us to build without major roadblocks, while the responsive community provided assistance whenever needed.
So, what did we build? OnRewards is a peer recognition and rewards management solution tailored for service delivery teams. The app includes a range of features that highlight the complexity of what we were able to accomplish on Forge, including:
- Activity Feed: A feed displaying all rewards, comments, and historical data.
- Point Distribution: The ability to record transactions in Forge storage while applying validations.
- Trivia Stories: Fun trivia about a company, rewarding users who answer correctly.
- Recurring Rewards: Scheduled rules awarding points to users who meet specific criteria.
- Rewards Shop: Redeeming points for monetary and non-monetary rewards, with a transaction log for history.
Our skilled development team, coupled with the power of Forge, allowed us to leverage their talents and swiftly build, test, and launch the app.
Challenges and Workarounds
Every development story includes a few bumps in the road, and ours was no different. We encountered a few challenges, but were able to keep moving ahead through workarounds.
Single developer environment
Forge currently does not support multi-user development, which at times slowed down our development. During the testing phase, we partially overcome this challenge by utilizing the sharing feature in the Staging environment. The good news is, when we reviewed this with the Atlassian product team they highlighted the roadmap features that will address this issue.
Storage API limitations
We set a firm goal to build only on Forge, without leveraging remote services. This means the storage and all the assets need to be stored within Atlassian as opposed to an external public cloud service. At the moment, Forge hosted storage only allows you to perform query operations on the key and doesn't let you query based on the JSON values stored against each key. In addition, Forge hosted storage query only supports the startsWith condition. We had to come up with creative ways to set the key in order to meet all our querying needs. We are aware of the planned enhancements in this area and looking forward to leveraging them.
We were aware of storage size quotas and to overcome that we leveraged external services to host public content like static images. When we reviewed this with the Atlassian product team, they listened to our requests and reviewed the product roadmap with us. This helped us to plan our features and align our roadmap accordingly.
Launching our app on the Marketplace was only the beginning. With an ambitious roadmap in place, we have plans for enhancing OnRewards and developing new applications, such as OnRamp for automating employee onboarding and offboarding, and OnX for HR system integrations. We firmly believe that Forge will remain our platform of choice. We are committed to enhancing our existing apps and creating new ones, always seeking customer feedback to drive continuous improvement. Most rewarding of all is hearing initial positive feedback from some of our early adopters. Onward!