Inspiration

I wanted to build a Forge app that adds a personal touch to Confluence pages using Custom UI. The goal was to greet users by name and display relevant context like theme mode — offering a simple but powerful entry point into Atlassian Forge development.

What it does

ConfluGreet is a lightweight Forge macro for Confluence that: Greets the current user by their real display name Shows a backend response using Forge’s invoke() function Detects and displays the user’s Confluence theme (light/dark) Makes use of Custom UI for a fully controlled React-based frontend

How we built it

Set up the project using Forge CLI and Custom UI template Used view.getContext() to get user info and theme Called the /wiki/api/v2/users-bulk endpoint via requestConfluence() Used @forge/react components like Heading, Text, and Lozenge Implemented a custom backend resolver (getText) using Forge invoke()

Challenges we ran into

Figuring out the structure of the bulk user request and formatting the body correctly Ensuring that API calls worked only when accountId was present Understanding Forge’s event-based reactivity and dealing with async state updates

Accomplishments that we're proud of

Got my first dynamic Forge app running inside Confluence Pulled in real-time user data and handled dark/light mode Successfully bridged backend and frontend logic with invoke()

What we learned

Working with Atlassian Forge and Confluence’s REST APIs Using Forge UI kit components and Custom UI Managing app context and authentication inside Confluence Writing backend resolvers and connecting them to React frontend

What's next for ConfluGreet

Let users configure a custom greeting message Add more contextual info like current space, page title, or activity Publish this macro for use across different Confluence sites

Share this project:

Updates