Stay Updated

New tutorials, tips, and Atlassian insights. No spam, unsubscribe anytime.

L
LeanZero

An approachable expert helping teams simplify their Atlassian ecosystems. Sharing knowledge and building community, one solution at a time.

Services

  • Atlassian Migrations
  • Atlassian FastShift
  • Atlassian Maintenance
  • Forge App Development
  • AI Development Consultation

Topics

  • Jira
  • Jira Service Management
  • Confluence
  • Bitbucket
  • Atlassian Forge
  • Cloud Migration
  • Local AI
  • AI Coding
  • All topics

Company

  • Blog
  • Tutorials
  • Contact

Community

  • Join Discord
  • Support this site

© 2026 LeanZero. All rights reserved.

Privacy Policy|Terms of Service|Service Level Agreement|Trust Center
LZ·/SERVICES·REV 2.6
  1. Home
  2. Services
  3. Forge App Development
Prototype from €500

Atlassian Forge App Development

Custom apps for Jira and Confluence, built on Atlassian's own platform — priced before you commit.

Build your quoteSee an app we shipped
§01
The platform

What Atlassian Forge actually is

Forge is Atlassian's app platform for Jira, Confluence and Jira Service Management. You write the app; Atlassian runs it. There is no server to provision, no certificate to renew and no third-party cloud for a security team to review — the functions execute inside Atlassian's own infrastructure, next to the data they operate on.

In Atlassian's own words, Forge “replaces Connect” and “will become Atlassian's only app development platform.” That is the whole reason this page exists rather than a page about Connect.

It runs on Atlassian's infrastructure, not yours

A Forge app is a manifest plus some functions. The manifest declares which modules the app adds, which Atlassian scopes it needs and every external domain it is allowed to call. For a security team that turns “where is this vendor hosting our data” into “what does this manifest ask for” — a question with a written answer.

UI Kit or Custom UI — which one your app needs

UI Kit renders Atlassian's own components, so the app inherits Jira's look and behaviour for almost no front-end work. Custom UI gives you a sandboxed frame and your own React build, which is what a rules table or a console actually needs — at the cost of owning the styling, dark mode included. We wrote a tutorial on getting that right because it is the part that bites.

What Forge will not do for you

It is not general-purpose hosting. Long work has to move onto the async queue instead of running inline. Every call to a system that is not Atlassian has to be declared up front and is shown to whoever installs the app. And some problems are not app problems at all — see below before you pay us anything.

You may not need an app at all

Two of the tutorials we publish here solve real Jira problems with configuration and zero code: blocking time logging on specific work types using workflow properties and getting a default field value back when “None” disappears. If your problem is one of those, we will say so — and it costs you nothing.

§02
The alternatives

Forge, Connect, ScriptRunner, or native automation?

A custom app is the most expensive of the four ways to change how Jira or Confluence behaves. Here is honestly where each one fits, and the point at which each stops.

Native automation

Good at

No-code rules for the common shapes — transition on a condition, notify someone, sync a field, run on a schedule. Free, instant, nothing to deploy.

Where it stops

A fixed vocabulary reacting to events. Anything with its own screen, its own data model, or judgement that a rule builder cannot express is out of scope.

ScriptRunner & friends

Good at

Deterministic scripted logic for teams that already have the Groovy or JS skills and the appetite to maintain what they write.

Where it stops

You write and own code inside somebody else's app, on top of a second vendor licence — and you cannot ship the result to anyone else.

Atlassian Connect

Good at

The framework a large share of existing Cloud Marketplace apps still run on. If you already have a Connect app, it still works today.

Where it stops

Atlassian is retiring it on a published timeline. New Connect apps cannot be listed at all, and existing ones are frozen. Starting here is buying a migration.

Atlassian Forge

Good at

Atlassian-hosted compute and storage, a declared permission model, and every extension point the platform offers — validators, panels, custom fields, admin pages, scheduled jobs.

And then some

It is the platform Atlassian is standardising the whole ecosystem on, so an app built here is the one that does not need rebuilding in two years.

Connect is on an end-of-support countdown

Atlassian published the timeline in March 2025 and it runs in three phases, two of which have already passed. Since 17 September 2025, no new Connect app can be listed on the Marketplace at all — a new Cloud app “must be created on Forge and may not contain any Connect modules.” From 31 March 2026, existing Connect apps are frozen: vendors can still fix what is broken, but they cannot add new modules, scopes or surfaces. At the end of 2026 Connect reaches full end of support and becomes, in Atlassian's phrase, “use at your own risk.”

For Marketplace apps this is mostly the vendor's problem. For the integration your own team wrote in-house on Connect years ago, it is entirely yours — nobody is coming to migrate that one.

The deadline nobody's watching (it isn't 2029)The app problem nobody warned you aboutAtlassian migration services
§03
Modules

What we build on Forge

Named by the module, because that is what actually gets declared in the manifest and what decides whether your idea is a two-day app or a two-week one.

Workflow validators, conditions and post-functions

Gate a Jira transition, hide it entirely, or act after it fires. This is the densest part of the platform and the one we know best — CogniRunner is built entirely out of these three module types.

See it shipped

Issue panels, page panels and banners

Contextual surfaces that sit inside the issue or the Confluence page — showing data, offering an action, or warning about state. Sentinel Vault's page banner tells a reader a file on that page is sealed before they touch it.

See it shipped

Custom fields

Field types Jira does not ship — with their own edit view, their own read view, and their own rules about what a valid value is. The part people underestimate is search and indexing behaviour, not the UI.

Admin and configuration pages

The screen where an admin configures the app: settings, permissions, roles and scopes. CogniRunner ships Viewer, Editor and Admin roles with a scope that narrows a role to a user's own rules — so delegation does not mean handing over everything.

Async events and scheduled jobs

Queued consumers and cron-style triggers for anything too slow or too periodic to run inside a request. Sentinel Vault runs an hourly expiry sweep, an hourly index rebuild, a daily nudge and a real-time attachment trigger.

External integrations and declared egress

Calls out to systems that are not Atlassian — an LLM provider, an internal API, a CMDB — each domain declared in the manifest and visible to the installing admin. We published a full tutorial on wiring an LLM into a Forge app for Jira.

Read the tutorial
§04
Proof

We ship our own Forge apps

Two of them, publicly listed on the Atlassian Marketplace, both open source. That is a more useful thing to judge us on than an adjective.

CogniRunner

Forge app for Jira · AGPL-3.0

A semantic layer for Jira workflows. Native validators check structure — required, not empty, matches a regex. CogniRunner checks meaning: it sends field content, attachments and related issues to an AI model and evaluates them against criteria you describe in plain English, then validates, decides and acts on the transition.

  • ·Four rule types: validators, conditions, semantic post-functions and static post-functions
  • ·Duplicate detection via agentic JQL search, and analysis of attached files and images
  • ·Bring your own key — OpenAI, Anthropic, Azure OpenAI, OpenRouter, AWS Bedrock, LM Studio — or the zero-key Atlassian Forge LLM with no external egress
  • ·Runs on company-managed and team-managed Jira projects
MarketplaceSourceFull write-up

Background reading: the gap nobody filled and local AI, zero-key models and actions that write back.

Sentinel Vault

Forge app for Confluence · paid via Atlassian · open source

Confluence has no native file locking — any user with edit access can upload a new version of any attachment at any time. Sentinel Vault adds a platform-enforced seal layer on top of Confluence attachments and page sections, plus an enforced approval workflow — violations are detected in real time and reverted automatically.

  • ·Seals track ownership, expiry, version and download state
  • ·Real-time triggers on attachment and page-content events, with surgical re-insertion of removed media embeds
  • ·Async realm scan runs on an extended 900-second timeout for space-wide audits
  • ·No external dependencies at all — no third-party services, no API keys, no egress; everything in Forge storage
MarketplaceSourceFull write-up
§05
How it runs

How a Forge build runs, step by step

Three stages, and you get a price at each one before it starts. Almost nobody in this market publishes a number — that is the whole reason we do.

1

Prototype

€500 – €1,000

days, not weeks

Every engagement starts here. We build the risky part first — the module that actually has to work — and put it on a demo site or, if you prefer, your own instance. You click it. Nothing about the price of the full build is guessed until this exists.

2

Flat-rate build to UAT

€1,000 – €12,000

~2 days to ~1 month

Once the prototype is in front of you, the size is no longer a guess and we quote a flat price for the rest: S €1,000 (~2 days), M €2,000 (~1 week), L €4,000 (~2 weeks), XL €12,000 (~1 month). Anything larger we scope together rather than pretend a tier covers it.

3

Production, support and a Marketplace listing

€50/hour

no retainer lock-in

Going live, the Atlassian listing review if you want the app published, and everything after launch is billed by the hour at a flat €50. No retainer, no minimum. We can also set your own developers up to keep building on it.

Already running Atlassian Cloud and just need someone to keep the app healthy? That is Atlassian maintenance, same flat hourly rate.

§06
Price it

Build your Forge quote

Every engagement starts with a €500–€1,000 prototype. Describe the app and see a transparent UAT price — the final size is confirmed after the prototype.

Describe your app — I'll scope it
L

Hi! I'll help you scope a custom Jira/Confluence app — in plain English, no tech jargon. To start: what would you love this app to do, or what headache should it take off your plate?

Your estimate

Calculating

I'll reveal a transparent flat price the moment we've got the full picture — no surprises.

Maintenance & support, if you need it

Going to production, ongoing changes, and keeping the app healthy after launch are billed by the hour at a flat €50/hour — no retainer lock-in. We can also help your own team get set up to develop with AI.

§07
The hard parts

What a Forge quote usually leaves out

None of this is in the sales pitch, and all of it decides what the app costs. The numbers below are the ones we actually work against — platform limits marked as platform limits, and our own design choices marked as ours.

ConstraintValueNotes
Synchronous function timeout25 secondsForge platform limit. CogniRunner budgets 22 seconds for an agentic validation so it always returns a verdict rather than timing out on the user.
Async queue consumer timeout900 secondsThe escape hatch from the 25-second cap. Sentinel Vault's realm scan consumer runs here for space-wide seal audits.
External egressDeclared per domainEvery non-Atlassian domain the app calls is listed in the manifest and shown to the admin installing it. Undeclared calls fail.
App storageForge platform storageApp data lives inside Atlassian, per installation. Sentinel Vault keeps everything there and has no external dependency at all.
Attachment size — our cap10 MB / fileA CogniRunner design limit, not a Forge one. Files above it are skipped, and the AI is told they were skipped rather than silently losing them.
Total attachments — our cap20 MBCombined size across all attachments per CogniRunner validation. Again ours, chosen to fit the 25-second budget.
Upload size — our cap4 MB / fileSentinel Vault's inline panel and overlay upload zone. Ours, not the platform's.

The 25-second synchronous limit — and the async escape hatch

A Forge function invoked synchronously has 25 seconds. That is plenty for a panel and nowhere near enough for a space-wide audit or a model call chain. The fix is architectural, not a flag: the slow work moves onto an async queue whose consumer gets a much longer timeout — 900 seconds in Sentinel Vault's realm scan. Anyone quoting you a Forge app without asking which of your operations are slow has not thought about this yet.

Payload and storage limits you design around, not against

App data lives in Forge's own storage, per installation. The interesting constraints are usually the ones you impose on yourself to stay inside the time budget — CogniRunner skips attachments over 10 MB and caps a validation at 20 MB total, and tells the model what it skipped so the reasoning stays honest. Those are our numbers. We will tell you which of your numbers we would pick, and why.

Egress permissions and the security review

The moment your app calls something outside Atlassian, that domain goes in the manifest and the admin installing it sees it. It changes the security conversation and it changes what you have to be able to answer. A clean automated scan, incidentally, is not the same thing as a secure app — we wrote up exactly why, including the classes of risk Forge scanning structurally cannot see.

Testing a deployed app, not a mocked one

Forge apps render inside an iframe on a real Atlassian site, behind a real login. Unit tests against mocks will happily pass while the deployed app is broken. We drive the real, deployed UI — here is how we run end-to-end tests against a deployed Forge app, including getting past the login that headless browsers cannot.

Theming that survives dark mode

Choose Custom UI and you own the styling, which means you own dark mode. It is the single most common way a Forge app looks unfinished on day one, and it is entirely avoidable — dark mode done right in Forge Custom UI.

§08
FAQ

Frequently asked questions

What does a Forge app cost?

Every engagement starts with a €500–€1,000 prototype. After you have clicked it, the build to a UAT-ready app is flat-priced by size: €1,000 for a small focused app, €2,000 for a few connected features, €4,000 for a bigger multi-part app and €12,000 for a large full-featured one. Production go-live, support and Marketplace work are billed at a flat €50 per hour with no retainer.

How long does a Forge app take?

The prototype takes days. From there the UAT-ready build runs roughly two days for a small app, a week for a few connected features, two weeks for a multi-part app and about a month for a large one. The listing review, if you want the app on the Atlassian Marketplace, sits outside our control and adds time.

Do we own the code?

Yes. You get the code, the knowledge and ongoing support, so you can keep building on it with us or without us. Both of the apps we publish ourselves are open source — CogniRunner is AGPL-3.0 with the full source on GitHub — which is a fair indication of how we feel about locking code away.

Should a new app be built on Forge or Connect?

Forge. Since 17 September 2025 a new Cloud app cannot be listed on the Atlassian Marketplace on Connect at all, and from 31 March 2026 existing Connect apps are frozen — vendors can no longer add new modules, scopes or permissions. Connect reaches full end of support at the end of 2026. Building anything new on Connect today is buying yourself a migration.

Can you take over an existing Connect app?

Yes, and this is the work with a real deadline attached. Marketplace vendors are carrying their own apps across, but the integration your team wrote in-house years ago is nobody else's job. We rebuild it on Forge, starting from the same €500–€1,000 prototype so you can see the risky part working before committing to the rest.

Do you handle the Atlassian Marketplace listing and security review?

Yes. We have taken two of our own apps through it — CogniRunner for Jira and Sentinel Vault for Confluence are both publicly listed on the Atlassian Marketplace. We also publish what we learned about Forge security scanning, including why a clean automated scan is not the same as a secure app.

Does the app work on team-managed projects?

It depends on the module, and we tell you which before you buy rather than after. CogniRunner, for example, runs on both company-managed and team-managed Jira projects. Some Jira extension points behave differently between the two, so the answer is part of the prototype, not an assumption.

Where does our data go?

By default, nowhere outside Atlassian. Forge runs your app on Atlassian's own infrastructure and stores its data in Atlassian's platform storage. Sentinel Vault has no external dependency at all — no third-party services, no API keys, no egress. If an app does need to call something outside Atlassian, that domain has to be declared in the manifest and is shown to whoever installs it.

Get a price before you commit

Describe the app in a couple of minutes and see the prototype and UAT numbers, or just ask us whether it needs to be an app at all.

Build your Forge quote
Ask on Discord