A decade after the launch of OnDemand, bringing Atlassian’s flagship products to the cloud, Atlassian is once again revolutionizing how we use these ubiquitous technologies.
Introducing (drum roll please) — Atlassian Forge.
What is Atlassian Forge?
Forge is Atlassian’s next-generation cloud development platform. Announced in 2020 and released for general availability in 2021, Atlassian Forge allows development teams to create applications for Jira, Jira Service Management, Confluence, and Compass, with more products slated for the Forge platform in the near future.
Atlassian knows that each customer has unique challenges. And while its tools are powerful out-of-the-box, some of those challenges require a bespoke solution. Atlassian recognizes the value of allowing teams to extend their platforms’ functionality, and today more than 4,000 apps are available on its Marketplace.
Forge is an end-to-end cloud platform consisting of functions backed by AWS Lambda, flexible UI components, and a DevOps toolchain in the form of the Forge Command Line Interface (CLI). Forge builds upon the legacy of the Connect platform, allowing developers to continue to build feature-rich, secure, custom applications for the Atlassian platform. What sets Forge apart is that it does all this without requiring your infrastructure to build and host the application.
Atlassian Forge’s Three Revolutionary Components
Developing applications in the cloud, for the cloud, reduces the complexity of developing and hosting Atlassian applications. Forge achieves this through three revolutionary new components:
Function-as-a-Service (FaaS)
The Function-as-a-Service (FaaS) Atlassian-managed platform delivers compute and storage power for application developers to build reusable business functions hosted in AWS Lambda.
Forge UI
Forge UI components provide the foundation to deliver a consistent user experience guaranteed to work across all devices with very little code.
Forge CLI
The Forge Command Line Interface (CLI) is a DevOps toolchain baked into the framework allowing teams to create, test, build, and deploy applications from the command line or integrate with popular CI/CD pipelines.
Forge abstracts the complexity and cost of Atlassian application development by providing a managed cloud environment for building, hosting, and operating applications. It assures developers and consumers that applications created with Forge have Atlassian’s best-in-class security baked in through every stage of the development process — from the application templates to the scanning processes in the Forge CLI.
Furthermore, the Forge UI components abstract the complexity of building components for multiple device platforms. Developers write UI code once, and Forge builds the UI for web and mobile devices. And with the Function-as-a-Service model backed by AWS Lambda, teams can create a suite of reusable microservices capable of automatically scaling from 10 to 10,000 requests.
Benefits of Atlassian Forge
Imagine what you can achieve in a short time by combining the power of the Forge platform with all of the information available to you via Confluence, Jira, and Service Desk APIs.
1. Easier Integrations
Forge integrates seamlessly and securely with Atlassian APIs. Need to integrate with third-party APIs? That’s not a problem for Forge. Build your integrations in the FaaS platform, turning them into reusable microservices.
2. Bring Your Own UI Framework
Prefer more control over your UI components? In addition to the UI kit, Forge supports custom UI components, allowing you to use your favorite and familiar Single-Page Application technology stack, such as React, in Forge components.
3. Atlassian Cloud
Forge applications run within the Atlassian cloud alongside customers’ Atlassian applications. Storage APIs ensure that customer data is persisted securely and complies with privacy regulations. The FaaS platform allows developers to build reusable microservices without the complexity of managing infrastructure.
4. Harness the Power of Serverless Computing
Forge applications are serverless by design. Forge FaaS components are backed by AWS Lambda functions. And Forge UI components leverage Single-Page Application technologies. When deployed to the Atlassian cloud with Forge CLI, your application automatically scales as user demand increases, ensuring stable, predictable performance under any load.
With Forge, the sky’s the limit.
Are you ready to begin your journey with Forge? A rich set of guides and tutorials by Atlassian kickstart the Forge experience, providing illustrations and examples for many common use cases.
Get Started With Atlassian Forge in Minutes. Literally.
Get started in minutes with Forge application templates. Let’s see just how long it takes to build a Confluence macro that retrieves information from the Confluence API and displays it on a page.
1. Create the Application
Create an application using the Forge CLI. The Forge CLI asks a few questions to determine the type of application to be created. Then Forge creates a boilerplate application ready for development.
modus/repos % forge create Creating an app in your current directory: /Users/modite/Projects/modus/repos Press Ctrl+C to cancel. Name your app. The app name can include dashes, spaces, and underscores. ? Enter a name for your app: user-welcome Start with a template. Each template contains the required files to be a valid app. ? Select a category: UI kit ? Select a template: confluence-macro ✔ Creating app... ℹ Downloading template ℹ Registering app ℹ Creating environments ℹ Installing dependencies ✔ Created user-welcome Your app is ready to work on, deploy, and install. We created 3 environments you can deploy to: development, staging, production. Change to directory user-welcome to see your app files.
2. Deploy the Application
First, deploy the application to the Atlassian cloud.
repos/user-welcome % forge deploy Deploying your app to the development environment. Press Ctrl+C to cancel. Running forge lint... No issues found. ✔ Deploying your app to development... ℹ Packaging app files ℹ Uploading app ℹ Validating manifest ℹ Snapshotting functions ℹ Deploying to environment ✔ Deployed Deployed your app to the development environment.
Once the application is deployed, install it into a specific site.
repos/user-welcome % forge install Select the product your app uses. ? Select a product: Confluence Enter your site. For example, your-domain.atlassian.net ? Enter the site URL: moduscreatedev.atlassian.net Installing your app onto an Atlassian site. Press Ctrl+C to cancel. Your app will be installed with the following scopes: - read:me ? Do you want to continue? Yes ✔ Install complete!
That’s it! The deployed application has been linked to my Atlassian Cloud Confluence site.
In just three minutes and writing zero lines of code, I have created and deployed a new Confluence macro to my site.
Now create a new Confluence page and add the Macro.
After saving the page, the macro displays the message: “Hello world!”.
3. Update the Application
Let’s replace the default message. We will call a Confluence API to retrieve information about the current user and display that information in the macro.
The current macro consists of just fifteen lines of code.
import ForgeUI, { render, Fragment, Macro, Text } from "@forge/ui"; const App = () => { return ( Hello world! ); }; export const run = render( } /> );
Let’s import Forge API components and add a function to make the API call and display the user’s name in the UI. Forge handles the API security on our behalf so we can focus on the business logic. And all of that is accomplished with just seven more lines of code.
import ForgeUI, { render, Fragment, Macro, Strong, Text, useState } from '@forge/ui'; import api, { route } from '@forge/api'; const fetchCurrentUser = async () => { const response = await api.asUser().requestConfluence(route`/wiki/rest/api/user/current`); const user = await response.json(); return user; }; const App = () => { const [user] = useState(async () => fetchCurrentUser()); return ( Welcome to Forge <strong>{user && user.publicName}</strong>! ); }; export const run = render(} />);
With our code changes complete, we can deploy the changes to the Atlassian cloud.
repos/user-welcome % forge deploy Deploying your app to the development environment. Press Ctrl+C to cancel. Running forge lint... Error: The deploy failed due to errors in the app code. Fix the errors before rerunning forge deploy, or run forge deploy --no-verify to skip the linter. /Users/modite/Projects/modus/repos/user-welcome/src/index.jsx 5:56 error Confluence endpoint: GET /wiki/rest/api/user/current requires "read:content-details:confluence" scope permission-scope-required X 1 issue (1 error, 0 warnings) Run forge lint --fix to automatically fix 1 error and 0 warnings.
The deploy command inspects the application for errors and security problems. The linter detects that the application is making a new API call; however, the application has not declared that this permission is required. The Forge CLI assesses the situation and provides the remedy.
Forge’s intelligent linting rules can correct many common problems that arise during development. After running forge lint to correct the required permission in our application, we deploy again.
repos/user-welcome % forge lint --fix ✔ Fixed 1 error and 0 warnings
After refreshing the page, the updated macro is displayed containing a customized message for the currently logged in Confluence user. In just 15 minutes, we’ve created a new Confluence macro, securely integrated with the Confluence API, and displayed information to the user using UI components that look great on any device. And we did it all without a single piece of infrastructure to support the project.
The Next Generation of Atlassian Apps
Forge builds upon the legacy of the Connect platform, allowing developers to continue to build feature-rich, secure, and custom applications for the Atlassian platform. Backed by AWS Lambda, flexible UI components, and a DevOps toolchain, it empowers organizations to experience a different level of Atlassian customization. The fact that you don’t even need an infrastructure to build and host the app, makes Forge accessible to a wider range of businesses than Connect.
Would you like to learn how Forge can help enhance your Atlassian experience? Talk to Modus. As an official Platinum Enterprise Solution and Cloud Specialization Partner for Atlassian, our experts have helped several Fortune 1000 organizations optimize their workflows.
Matthew Warman
Related Posts
-
Modus Create is Now an Atlassian Platinum Solution Partner
We are thrilled to announce that Modus Create has achieved the highest level of Atlassian…
-
How to Use Components in Jira
Jira components can streamline your project and help your team stay organized. Read best practices,…