Quotas and usage for Marketplace app developers
How content design shaped a developer-facing usage monitoring system - from information architecture to interaction patterns - before Atlassian started charging developers for cloud resources.
How content design shaped a developer-facing usage monitoring system - from information architecture to interaction patterns - before Atlassian started charging developers for cloud resources.

TIMELINE
Nov 24 - Feb 25
ROLE
Content designer
SERVICES
Content design
Interaction design
Data analysis
Research
Prototyping
TOOLS
Figma
Optimal Workshop
Atlassian Design System
v0
This project demonstrates how content design operates as a strategic discipline in complex product work. I didn’t just write UI copy - I structured information architectures, ran card sorts, named navigation categories, shaped mental models around technical concepts, and influenced interaction decisions through content-first thinking.
Atlassian Forge is the cloud-native app development platform that powers the Atlassian Marketplace. Apps built on Forge consume three categories of AWS-backed infrastructure resources: Compute (Lambda), Storage (DynamoDB), and Logs (CloudWatch). Until this project, developers had zero visibility into how much of those resources their apps consumed.
That was about to become a serious problem. Atlassian announced plans to monetize Forge based on resource usage - meaning developers would soon be charged for compute, storage, and logging consumption. But the platform had no usage dashboard, no quota tracking, no alerting, and no cost estimation tools.
You can't charge developers for something they can't see. The trust risk was real: without visibility, developers might migrate back to Atlassian Connect, the legacy platform the company was actively moving away from.


Atlassian needed a monetization path for Forge. The business case was clear: Forge apps run on Atlassian's AWS infrastructure, and as adoption grew, so did the cost of subsidizing that compute. But you can't charge developers for resource usage if they have no way to see, understand, or manage that usage.
Usage data spanned three distinct AWS services, each with two different units of measurement:
GB-seconds for compute
GB for storage, number of reads/writes for key-value operations and logs
"GB-seconds" is not a unit most developers encounter daily. My job was to make these concepts comprehensible without oversimplifying them. The content had to bridge that gap precisely.
Through persona work, the team identified two core archetypes:
The Developer (cares about real-time performance, per-function granularity, anomaly detection)
The Billing Admin (cares about cost forecasting, budget constraints, cross-app visibility).
I had to design a content system that served both with the same data but overlapping and distinct vocabulary.
Quota and limit information was buried in a single monolithic documentation page. It mixed compute quotas, storage limits, installation caps, and UI constraints into one unstructured wall of text
The Developer Console had no usage or billing UI, and no established content patterns for resource dashboards. There was no consistent precedent for how Atlassian explains consumption data in-product.
I created the content framework - terminology, labelling conventions, description patterns, and the relationship between in-console content and external documentation.
Monetization was scheduled for Q3 FY26, but commerce integration timelines were fluid. The content system had to be scalable given the ambiguity. Labels, descriptions, and navigation structures that could accommodate billing features minimizing any rewrites when they arrived.

Findings from both card sorts translated into options

Finding 1: Five emergent categories.
Participants consistently grouped content into: Quotas and limits, Usage and metrics, Pricing, Resources and services, and General definitions. This directly informed the documentation restructuring - I split the monolithic page into distinct sections mapped to these mental models, each with its own navigation entry.
Finding 2: Quotas ≠ Usage in developers' minds.
54% of participants associated "quotas" with platform limits (the ceiling), while associating "usage" with current consumption (where they are now). This distinction was the single most important content finding of the project. It shaped the decision to separate the terminology of quota from the in-console usage dashboard.
Finding 3: Error messages belong with actions, not definitions.
9% of participants grouped error messages with "resources"- expecting them near the things that trigger errors, not in an abstract reference section. This validated placing alerting content near the usage detail views rather than in a separate error-handling area.
I participated in team and partner ideation/sparring sessions that included sketching, whiteboarding, and user flow mapping. These sessions weren't siloed by discipline - I contributed to interaction flows and layout decisions alongside the product designer, not waiting for handoff. Content decisions were on the table from the start, shaping what got sketched rather than annotating what had already been decided.






