Product Design Internship

Anchor Macro Reinvention

blurry photo of sunset over ocean with logo on top

Skills

Systems Thinking

 

Interaction Design

 

Duration

Four Months

 

Role

Product Designer

 

gif image

A legacy feature transformed into an intuitive collaboration tool. Reduces configuration time from 2-3 minutes to 15 seconds.

Context

During my summer 2024 internship on the Confluence Page Extensions team at Atlassian, I inherited what seemed like a straightforward project. The goal was to improve the anchor macro, a feature that allows users to create a hyperlink to a specific part of a Confluence page. What I discovered was a feature so broken that the team had plans to depreciate it.

 

 

What is a macro?

Macros are pre-built, functional components that Confluence users can insert into pages, adding capabilities that go beyond basic text and image. The are interactive, and extend the functionality of basic Confluence pages. They are inserted through Confluence’s slash command menu or the elements browser.

 

The anchor macro is the 8th most used macro in Confluence. Its particularly helpful on long pages, where collaborators can guide readers to specific areas that require their attention.

gif image

The existing experience

The user must insert the anchor macro, name the anchor in the right rail, and then manually create their anchor link in the URL bar.

Name anchor

Create link with #[name]

Editor configuration icon

gif image
gif image
gif image

To link an anchor within the editor, the user links #[name] onto a highlighted piece of text.

gif image
gif image
gif image

Why it matters

On the roadmap for Confluence Cloud is the transition to Live Pages, which centers automatic saves and real-time, dynamic editing on documents, with no need to hit the publish button. To make the anchor macro seamlessly compatible with real-time collaboration, its important that all Confluence macros are as WYSIWYG as possible,

Approach + Limitations

Pain points

For page creators 👤

    • Technical complexity: Users need to fully understand URL structure to be able to manually construct an anchor link
    • Multi-step workflow: The process required 6+ steps across multiple page states
    • Poor discoverability: This macro is poorly ranked in slash command menu, making it difficult to find unless users knew its exact name

For Page contributors 👤 and passive consumers 👤

    • No visual indication: Published pages show no hint of where anchors exist
    • Broken mental model: There is no clear relationship between an anchor name and its function
    • Content flow interruption: The anchor macro's visual design disrupts the reading experience
gif image
gif image

Technical constraints

Unlike most other macros (table macro, status indicators, Jira issues macro etc.) which add tangible elements to a page, anchors are fundamentally about extracting something from the page, creating a reference point for navigation. This mismatch meant that it made more sense for anchor to be less visible in the within the editing process.

 

Engineering constraints meant the anchor had to remain within Confluence’s existing macro framework. The solution had to remain a macro, meaning it could not generate a link without user input, or remove the naming step.

Defining an MVP

When defining the MVP, I established clear boundaries for what we would exclude due to engineering constraints and project scope. The anchor macro would remain limited to existing entry points (slash command and element browser) since expanding access methods wasn't technically feasible within our timeline. Engineering constraints also required avoiding new configuration options. 

Design Recommendation

Good (shipped design)

✅ Single-click URL generation: Users get a shareable link instantly

✅ Clear anchor identification: Visual indication of which anchor is linked to

❌ Right-rail configuration still required: Maintains some complexity

❌ Inline presence interrupts flow: Visible elements still disrupt content

 

 

 

gif image

Editing an anchor

 

 

gif image

Removing an anchor

Better

✅ Models existing flow while reducing content disruption

✅ Shows user where the macro is located

❌ Macro constraints cause an unintuitive endpoint

 

 

 

gif image

Copy on hover

 

 

gif image

Navigating to an anchor link

Looking Ahead

While the MVP addressed immediate usability problems, the ideal long-term solution would eliminate the macro framework entirely. Users would simply highlight any content and instantly generate shareable links without inserting separate elements. This would treat anchors as a native page feature rather than an add-on, seamlessly supporting live collaborative editing where multiple users can create and share content references in real-time.

Best✅ Intuitive, no need for macro configuration✅ Leverages interaction patterns that users were already familiar with❌ Less precision in longer blocks of content

gif image

Copy link from drag handle menu

gif image

Highlight anchored text on navigation

Takeaways

Owning a design meant challenging even my most basic assumptions. Sometimes the best way to improve something is to replace it entirely. There is also the art of balancing user needs with what the business can actually deliver. I was able to ship a valuable improvement, rather than waiting for the perfect solution.

 

Working with a project manager, content designer, and engineer within the team taught me the value of stakeholder feedback at every step of the way. I also learned to consider the future of the Confluence Cloud and it’s design system.

© Aaliyah Taylor 2025

email

Product Design Internship

Anchor Macro Reinvention

blurry photo of sunset over ocean with logo on top

Skills

Systems Thinking

Interaction Design

Duration

Four Months

Role

Product Designer

Context

Approach + Limitations

Design Recommendation

Looking Ahead

gif image

A legacy feature transformed into an intuitive collaboration tool. Reduces configuration time from 2-3 minutes to 15 seconds.

Context

During my summer 2024 internship on the Confluence Page Extensions team at Atlassian, I inherited what seemed like a straightforward project. The goal was to improve the anchor macro, a feature that allows users to create a hyperlink to a specific part of a Confluence page. What I discovered was a feature so broken that the team had plans to depreciate it.

 

 

What is a macro?

Macros are pre-built, functional components that Confluence users can insert into pages, adding capabilities that go beyond basic text and image. The are interactive, and extend the functionality of basic Confluence pages. They are inserted through Confluence’s slash command menu or the elements browser.

 

The anchor macro is the 8th most used macro in Confluence. Its particularly helpful on long pages, where collaborators can guide readers to specific areas that require their attention.

gif image

The existing experience

The user must insert the anchor macro, name the anchor in the right rail, and then manually create their anchor link in the URL bar.

Name anchor

Create link with #[name]

Editor configuration icon

gif image
gif image
gif image

To link an anchor within the editor, the user links #[name] onto a highlighted piece of text.

gif image
gif image
gif image

Why it matters

On the roadmap for Confluence Cloud is the transition to Live Pages, which centers automatic saves and real-time, dynamic editing on documents, with no need to hit the publish button. To make the anchor macro seamlessly compatible with real-time collaboration, its important that all Confluence macros are as WYSIWYG as possible,

Approach + Limitations

Pain points

For page creators

    • Technical complexity: Users need to fully understand URL structure to be able to manually construct an anchor link
    • Multi-step workflow: The process required 6+ steps across multiple page states
    • Poor discoverability: This macro is poorly ranked in slash command menu, making it difficult to find unless users knew its exact name

For Page contributors and passive consumers

    • No visual indication: Published pages show no hint of where anchors exist
    • Broken mental model: There is no clear relationship between an anchor name and its function
    • Content flow interruption: The anchor macro's visual design disrupts the reading experience

Technical constraints

Unlike most other macros (table macro, status indicators, Jira issues macro etc.) which add tangible elements to a page, anchors are fundamentally about extracting something from the page, creating a reference point for navigation. This mismatch meant that it made more sense for anchor to be less visible in the editing process.

 

Engineering constraints meant the anchor had to remain within Confluence’s existing macro framework. The solution had to remain a macro, meaning it could not generate a link without user input, or remove the naming step.

gif image
gif image
gif image

Defining an MVP

When defining the MVP, I established clear boundaries for what we would exclude due to engineering constraints and project scope. The anchor macro would remain limited to existing entry points (slash command and element browser) since expanding access methods wasn't technically feasible within our timeline. Engineering constraints also required avoiding new configuration options. 

 

 

Design Recommendation

Good (shipped design)

✅ Single-click URL generation: Users get a shareable link instantly

✅ Clear anchor identification: Visual indication of which anchor is linked to

❌ Right-rail configuration still required: Maintains some complexity

❌ Inline presence interrupts flow: Visible elements still disrupt content

 

 

 

gif image

Editing an anchor

 

 

gif image

Removing an anchor

Better

✅ Models existing flow while reducing content disruption

✅ Shows user where the macro is located

❌ Macro constraints cause an unintuitive endpoint

 

 

 

gif image

Copy on hover

 

 

gif image

Navigating to an anchor link

Looking Ahead

While the MVP addressed immediate usability problems, the ideal long-term solution would eliminate the macro framework entirely. Users would simply highlight any content and instantly generate shareable links without inserting separate elements. This would treat anchors as a native page feature rather than an add-on, seamlessly supporting live collaborative editing where multiple users can create and share content references in real-time.

Best✅ Intuitive, no need for macro configuration✅ Leverages interaction patterns that users were already familiar with❌ Less precision in longer blocks of content

gif image

Copy link from drag handle menu

gif image

Highlight anchored text on navigation

Takeaways

Owning a design meant challenging even my most basic assumptions. Sometimes the best way to improve something is to replace it entirely. There is also the art of balancing user needs with what the business can actually deliver. I was able to ship a valuable improvement, rather than waiting for the perfect solution.

 

Working with a project manager, content designer, and engineer within the team taught me the value of stakeholder feedback at every step of the way. I also learned to consider the future of the Confluence Cloud and it’s design system.

portrait of aaliyah

 

work

about

resume

email

© Aaliyah Taylor 2025

Product Design Internship

Anchor Macro Reinvention

blurry photo of sunset over ocean with logo on top

Skills

Systems Thinking

Interaction Design

Duration

Three months

Role

Product Designer

Context

Approach + Limitations

Design Recommendation

Looking Ahead

gif image
gif image
gif image
laptop gif

A legacy feature transformed into an intuitive collaboration tool. Reduces configuration time from 2-3 minutes to 15 seconds.

Context

During my summer 2024 internship on the Confluence Page Extensions team at Atlassian, I inherited what seemed like a straightforward project. The goal was to improve the anchor macro, a feature that allows users to create a hyperlink to a specific part of a Confluence page. What I discovered was a feature so broken that the team had plans to depreciate it.

 

 

What is a macro?

Macros are pre-built, functional components that Confluence users can insert into pages, adding capabilities that go beyond basic text and image. The are interactive, and extend the functionality of basic Confluence pages. They are inserted through Confluence’s slash command menu or the elements browser.

 

The anchor macro is the 8th most used macro in Confluence. Its particularly helpful on long pages, where collaborators can guide readers to specific areas that require their attention.

gif image

The existing experience

The user must insert the anchor macro, name the anchor in the right rail, and then manually create their anchor link in the URL bar.

Name anchor

Create link with #[name]

Editor configuration icon

gif image
gif image
gif image

To link an anchor within the editor, the user links #[name] onto a highlighted piece of text.

gif image
gif image
gif image

Why it matters

On the roadmap for Confluence Cloud is the transition to Live Pages, which centers automatic saves and real-time, dynamic editing on documents, with no need to hit the publish button. To make the anchor macro seamlessly compatible with real-time collaboration, its important that all Confluence macros are as WYSIWYG as possible.

Approach + Limitations

Pain points

For page creators 👤

    • Technical complexity: Users need to fully understand URL structure to be able to manually construct an anchor link
    • Multi-step workflow: The process required 6+ steps across multiple page states
    • Poor discoverability: This macro is poorly ranked in slash command menu, making it difficult to find unless users knew its exact name

For Page contributors 👤 and passive consumers 👤

    • No visual indication: Published pages show no hint of where anchors exist
    • Broken mental model: There is no clear relationship between an anchor name and its function
    • Content flow interruption: The anchor macro's visual design disrupts the reading experience

Technical constraints

Unlike most other macros (table macro, status indicators, Jira issues macro etc.) which add tangible elements to a page, anchors are fundamentally about extracting something from the page, creating a reference point for navigation. This mismatch meant that it made more sense for anchor to be less visible in the editing process.

 

Engineering constraints meant the anchor had to remain within Confluence’s existing macro framework. The solution had to remain a macro, meaning it could not generate a link without user input, or remove the naming step.

Defining an MVP

When defining the MVP, I established clear boundaries for what we would exclude due to engineering constraints and project scope. The anchor macro would remain limited to existing entry points (slash command and element browser) since expanding access methods wasn't technically feasible within our timeline. Engineering constraints also required avoiding new entry points or configuration options. 

 

 

Design Recommendation

Good (shipped design)

✅ Single-click URL generation: Users get a shareable link instantly

✅ Clear anchor identification: Visual indication of which anchor is linked to

❌ Right-rail configuration still required: Maintains some complexity

❌ Inline presence interrupts flow: Visible elements still disrupt content

 

 

 

gif image

Editing an anchor

 

 

gif image

Removing an anchor

Better

✅ Models existing flow while reducing content disruption

✅ Shows user where the macro is located

❌ Macro constraints cause an unintuitive endpoint

 

 

 

gif image

Copy on hover

 

 

gif image

Navigating to an anchor link

Looking Ahead

While the MVP addressed immediate usability problems, the ideal long-term solution would eliminate the macro framework entirely. Users would simply highlight any content and instantly generate shareable links without inserting separate elements. This would treat anchors as a native page feature rather than an add-on, seamlessly supporting live collaborative editing where multiple users can create and share content references in real-time.

Best✅ Intuitive, no need for macro configuration✅ Leverages interaction patterns that users were already familiar with❌ Less precision in longer blocks of content

gif image

Copy link from drag handle menu

gif image

Highlight anchored text on navigation

Takeaways

Owning a design meant challenging even my most basic assumptions. Sometimes the best way to improve something is to replace it entirely. There is also the art of balancing user needs with what the business can actually deliver. I was able to ship a valuable improvement, rather than waiting for the perfect solution.

 

Working with a project manager, content designer, and engineer within the team taught me the value of stakeholder feedback at every step of the way. I also learned to consider the future of the Confluence Cloud and it’s design system.

portrait of aaliyah

 

work

about

resume

email

© Aaliyah Taylor 2025