Are you a developer looking to jump in and build your first Atlassian app? Welcome aboard – we’re happy you’re here.
Before you get started, let’s learn a little bit about Forge, Atlassian’s serverless app development platform. Built and maintained by Atlassian, it’s an accessible platform for developers to build apps and integrations – from simple automations to complex functionality. Forge makes it possible to build a fully-functional app in just a few hours, with features like hosting, multiple development environments, and API authentication built in.
In addition to documentation and an active, helpful developer community, the platform itself includes options and tools to support developers with a range of experience and backgrounds.
Building a Forge app is a fantastic way to grow as a developer and support Atlassian app users with better ways of working. If you have an idea you want to build, but aren’t sure if you’re equipped to be successful on Forge, here’s a list of the four technical skills you need to get started plus a tour of some tools to bridge knowledge gaps.
Skill One
Get set up locally with the Forge CLI
Forge apps are locally built, tested, and deployed using the Forge CLI, which is installed using npm. To get up and running, you’ll need a basic familiarity with the CLI, Node.js, and using a Node version manager.
In addition, it’s a good idea to be familiar with Docker, as this is the tool underpinning the Forge tunnelling feature, which allows you to see the results of your code changes in real time (similar to hot reloading).
Skill Two
Learn how to interface with RESTful APIs
Apps interact with Atlassian products, like Jira or Confluence, using APIs, which allow you to access data and business logic. Atlassian’s suite of APIs are REST-based. While a couple of products like Compass do have GraphQL APIs, anything with a GraphQL API has a REST equivalent as standard.
In order to interact with these APIs, you’ll need basic familiarity with using RESTful APIs.
Skill Three
Manage your code asynchronously
Following best practices for managing code asynchronously will allow you to build a better app. Async execution means that a process (or multiple processes) can run without waiting for a previous process to finish executing first.
It is easy to want to write your app so that it handles everything synchronously. However, this may not scale when your app is installed on large cloud instances with thousands of users and a lot of data. Users expect a snappy, delightful user experience and you don’t want to block any user flows with long-running code. Forge’s async events API allows you to defer running code for those things that aren’t in the critical path for users.
Skill Four
Understand the platform architecture
Forge is a serverless platform, meaning Atlassian manages all the server provisioning, scaling, and maintaining – leaving you free to simply develop your app and deploy it. For this reason, an understanding of serverless functions or Function-as-a-Service platforms (like AWS Lambda, which is what Forge runs on under the hood) is essential. It will help you conceptualize your app as functions that are invoked only when needed, scale up and down in response to demand, and are run in isolation, so you can separate concerns in a modular way.
During the development process, you’ll need to be thinking about your app out in the wild one day, especially with regard to user data. Cloud apps are typically installed and run on multiple Atlassian Cloud instances. Because data security is managed collaboratively between you and Atlassian (see shared responsibility), having a good mental model of multitenancy and Forge’s app runtime architecture will be essential in your app’s success.. Though users of your app share resources in the Atlassian cloud, they won’t be aware of each other – and their data will not be aggregated or shared on the backend.
Lastly, it’s helpful to be familiar with Forge’s platform quotas and limits. We want you to build to the limits of your imagination or user need, but there are some parameters. For instance, there are invocation limits and timeouts on both functions and whole apps, as well as storage and resources. Being cognizant of async processing will help here: the recommended way to avoid timeouts is to split long-running jobs and queue them.
How Forge can help you bridge technical knowledge gaps
Developers come to Forge from a variety of backgrounds and skill sets. However, the flexibility of the Forge platform means tools are available to bridge knowledge gaps. These include:
- User interface options
If you don’t want to make use of Custom UI, which allows you to build your own frontend from scratch, use UI Kit. UI kit is a set of pre-built components for straightforward, consistent, easy-to-build UIs. - Hosting and database management
Atlassian manages hosting and data storage for your app, so you don’t need to worry about setting up hosting accounts or provisioning a database. - Authentication
Forge manages authentication using OAuth 2.0 – see simple and secure authentication – this means Forge takes care of authentication with product APIs, storing credentials and using them to make API calls, and refreshing credentials. - Monitoring
Use the developer console to monitor stats on your app, including logs and installations.
There’s a whole wealth of resources to keep you learning and building apps: extensive documentation, Atlassian support, and the Atlassian developer community.
You probably already have all the skills you need to get going, but these resources can help you fill any gaps. We can’t wait to see what you build with Forge! Learn about building, deploying, and managing your app at Forge > Getting Started.