You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Merge iPad design article
* Fix redirection link
* Add the iPad article back
* Add property links
* Update docs/concepts/add-in-development-best-practices.md
Co-authored-by: Sam Ramon <[email protected]>
---------
Co-authored-by: Sam Ramon <[email protected]>
Copy file name to clipboardExpand all lines: docs/concepts/add-in-development-best-practices.md
+66-58Lines changed: 66 additions & 58 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,108 +2,115 @@
2
2
title: Best practices for developing Office Add-ins
3
3
description: Apply the best practices when developing Office Add-ins.
4
4
ms.topic: best-practice
5
-
ms.date: 10/10/2024
5
+
ms.date: 07/28/2025
6
6
ms.localizationpriority: medium
7
7
---
8
8
9
9
# Best practices for developing Office Add-ins
10
10
11
-
Effective add-ins offer unique and compelling functionality that extends Office applications in a visually appealing way. To create a great add-in, provide an engaging first-time experience for your users, design a first-class UI experience, and optimize your add-in's performance. Apply the best practices described in this article to create add-ins that help your users complete their tasks quickly and efficiently.
11
+
Great add-ins provide unique, compelling functionality that extend Office apps in visually appealing ways. To build a successful add-in, you'll need to create an engaging first-time user experience, design a polished UI, and optimize performance. Follow the best practices in this article to help your users complete tasks quickly and efficiently.
- Create add-ins that help users complete tasks quickly and efficiently. Focus on scenarios that make sense for Office applications. For example:
18
-
- Make core authoring tasks faster and easier, with fewer interruptions.
19
-
- Enable new scenarios within Office.
20
-
- Embed complementary services within Office applications.
21
-
- Improve the Office experience to enhance productivity.
22
-
- Make sure that the value of your add-in is clear to users right away by [creating an engaging first-run experience](#create-an-engaging-first-run-experience).
23
-
- Learn how to create an [effective AppSource listing](/partner-center/marketplace-offers/create-effective-office-store-listings) to promote your add-in.
24
-
- Make the benefits of your add-in clear in your title and description. Don't rely on your brand to communicate what your add-in does.
25
-
- Your add-in must provide sufficient value to justify users' investment. Your add-in shouldn't be a simple utility or of limited scope.
Build add-ins that help users complete tasks quickly and efficiently. Focus on scenarios that make sense for Office apps, such as:
18
+
19
+
- Make core authoring tasks faster and easier with fewer interruptions.
20
+
- Enable new scenarios within Office.
21
+
- Embed complementary services within Office apps.
22
+
- Improve the Office experience to enhance productivity.
23
+
24
+
Make sure users understand your add-in's value immediately by [creating an engaging first-run experience](#create-an-engaging-first-run-experience).
25
+
26
+
When you're ready to promote your add-in, learn how to create an [effective AppSource listing](/partner-center/marketplace-offers/create-effective-office-store-listings).
27
+
28
+
- Make your add-in's benefits clear in the title and description. Don't rely only on your brand to communicate what your add-in does.
29
+
- Ensure your add-in provides sufficient value to justify users' investment. It shouldn't be just a simple utility or have limited scope.
- Engage new users with a highly usable and intuitive first experience. Note that users are still deciding whether to use or abandon an add-in after they download it from the store.
34
+
New users are still deciding whether to use or abandon your add-in after downloading it from the store. Here's how to win them over.
31
35
32
-
- Make the steps that the user needs to take to engage with your add-in clear. Use videos, placemats, paging panels, or other resources to entice users.
36
+
-**Make the next steps clear.** Use videos, placemats, paging panels, or other resources to guide users through your add-in.
33
37
34
-
-Reinforce the value proposition of your add-in on launch, rather than just asking users to sign in.
38
+
-**Lead with value, not registration.** Reinforce your add-in's value proposition when it launches rather than immediately asking users to sign in.
35
39
36
-
- Provide teaching UI to guide users and make your UI personal.
40
+
-**Provide helpful guidance.** Include teaching UI to guide users and make the experience feel personal.
37
41
38
42

39
43
40
-
- If your content add-in binds to data in the user's document, include sample data or a template to show users the data format to use.
44
+
-**Show users what to expect.**If your content add-in binds to data in the user's document, include sample data or a template to show users the expected data format.
41
45
42
46

43
47
44
-
- Offer [free trials](/partner-center/marketplace-offers/monetize-addins-through-microsoft-commercial-marketplace). If your add-in requires a subscription, make some functionality available without a subscription.
48
+
-**Offer free trials.** If your add-in requires a subscription, make some functionality available without one.
45
49
46
-
-Make the sign-up experience simple. Prefill information, such as email and display name, and skip email verifications.
50
+
-**Simplify sign-up.** Prefill information like email and display name, and skip email verifications when possible.
47
51
48
-
- Avoid pop-up windows. If you have to use them, guide the user to enable your pop-up window.
52
+
-**Avoid pop-ups.** If you must use them, guide users on how to enable your pop-up window.
49
53
50
-
For patterns that you can apply as you develop your first-run experience, see [UX design patterns for Office Add-ins](../design/first-run-experience-patterns.md).
54
+
For patterns you can apply when developing your first-run experience, see [UX design patterns for Office Add-ins](../design/first-run-experience-patterns.md).
51
55
52
56
## Use add-in commands
53
57
54
-
-Provide relevant UI entry points for your add-in by using add-in commands. For details, including design best practices, see [add-in commands](../design/add-in-commands.md).
58
+
Provide relevant UI entry points for your add-in by using add-in commands. These commands help users discover and access your add-in's functionality directly from the Office ribbon. For details and design best practices, see [add-in commands](../design/add-in-commands.md).
55
59
56
60
## Apply UX design principles
57
61
58
-
- Ensure that the look and feel and functionality of your add-in complements the Office experience. See [Design the UI of Office Add-ins](../design/add-in-design.md).
62
+
Follow these key principles to create add-ins that feel native to Office:
63
+
64
+
-**Match the Office experience.** Ensure your add-in's look, feel, and functionality complement the Office experience. See [Design the UI of Office Add-ins](../design/add-in-design.md).
59
65
60
-
-Favor content over chrome. Avoid superfluous UI elements that don't add value to the user experience.
66
+
-**Prioritize content over chrome.** Avoid unnecessary UI elements that don't add value to the user experience.
61
67
62
-
- Keep users in control. Ensure that users understand important decisions, and can easily reverse actions the add-in performs.
68
+
-**Keep users in control.** Make sure users understand important decisions and can easily reverse actions your add-in performs.
63
69
64
-
- Use branding to inspire trust and orient users. Don't use branding to overwhelm or advertise to users.
70
+
-**Use branding thoughtfully.** Inspire trust and help orient users, but don't overwhelm or advertise to them.
65
71
66
-
-Avoid scrolling. Optimize for 1366 x 768 resolution.
72
+
-**Minimize scrolling.** Optimize for 1366 x 768 resolution.
67
73
68
-
-Don't include unlicensed images.
74
+
-**Use licensed images only.** Avoid legal and branding issues that come from unlicensed images.
69
75
70
-
- Use [clear and simple language](../design/voice-guidelines.md) in your add-in.
76
+
-**Write clearly.**Use [clear and simple language](../design/voice-guidelines.md) in your add-in.
71
77
72
-
-Account for [accessibility](../design/accessibility-guidelines.md) - make your add-in easy for all users to interact with, and accommodate assistive technologies such as screen readers.
78
+
-**Design for accessibility.** Make your add-in easy for all users to interact with and accommodate assistive technologies like screen readers. See our [accessibility guidelines](../design/accessibility-guidelines.md).
73
79
74
-
-Design for all platforms and input methods, including mouse/keyboard and [touch](#optimize-for-touch). Ensure that your UI is responsive to different form factors.
80
+
-**Support all platforms and input methods.** Design for mouse/keyboard and [touch](#optimize-for-touch). Ensure your UI responds well to different form factors.
75
81
76
82
### Optimize for touch
77
83
78
-
- Use the [Context.touchEnabled](/javascript/api/office/office.context#office-office-context-touchenabled-member) property to detect whether the Office application that your add-in runs on is touch enabled.
84
+
Touch support is essential for modern Office add-ins.
85
+
86
+
-**Detect touch support.** Use the [Context.touchEnabled](/javascript/api/office/office.context#office-office-context-touchenabled-member) property to detect whether the Office app your add-in runs on is touch-enabled.
79
87
80
88
> [!NOTE]
81
89
> This property isn't supported in Outlook.
82
90
83
-
- Ensure that all controls are appropriately sized for touch interaction. For example, buttons have adequate touch targets, and input boxes are large enough for users to enter input.
84
-
85
-
- Don't rely on non-touch input methods like hover or right-click.
91
+
-**Size controls appropriately.** Make sure all controls work well with touch interaction. For example, buttons need adequate touch targets, and input boxes should be large enough for users to enter text easily.
86
92
87
-
-Ensure that your add-in works in both portrait and landscape modes. Be aware that on touch devices, part of your add-in might be hidden by the soft keyboard.
93
+
-**Don't rely on hover or right-click.** These input methods aren't available on touch devices.
88
94
89
-
-Test your add-in on a real device by using [sideloading](../testing/sideload-an-office-add-in-on-ipad.md).
95
+
-**Support both orientations.** Ensure your add-in works in both portrait and landscape modes. Remember that on touch devices, the soft keyboard might hide part of your add-in.
90
96
91
-
> [!NOTE]
92
-
> If you're using [Fluent UI React](../quickstarts/fluent-react-quickstart.md) for your design elements, many of these elements are built into the design system.
97
+
-**Test on real devices.** Use [sideloading](../testing/sideload-an-office-add-in-on-ipad.md) to test your add-in on actual touch devices.
93
98
94
99
## Optimize and monitor add-in performance
95
100
96
-
- Create the perception of fast UI responses. Your add-in should load in 500 ms or less.
101
+
Performance directly impacts user satisfaction. Follow these guidelines to keep your add-in fast and responsive:
97
102
98
-
-Ensure that all user interactions respond in under one second.
103
+
-**Aim for quick loading.** Your add-in should load in 500 ms or less to create the perception of fast UI responses.
99
104
100
-
-Provide loading indicators for long-running operations.
105
+
-**Respond quickly to interactions.** All user interactions should respond in under one second.
101
106
102
-
-Use a content delivery network (CDN) to host images, resources, and common libraries. Load as much as you can from one place.
107
+
-**Show progress for long operations.** Provide loading indicators for operations that take time.
103
108
104
-
-Follow standard web practices to optimize your web page. In production, use only minified versions of libraries. Only load resources that you need, and optimize how resources are loaded.
109
+
-**Use a CDN.** Host images, resources, and common libraries on a content delivery network (CDN). Load as much as possible from one place.
105
110
106
-
- If operations take time to execute, provide feedback to users. Note the thresholds listed in the following table. For additional information, see [Resource limits and performance optimization for Office Add-ins](../concepts/resource-limits-and-performance-optimization.md).
111
+
-**Follow web optimization best practices.** In production, use only minified versions of libraries. Load only the resources you need and optimize how they're loaded.
112
+
113
+
-**Provide feedback for longer operations.** When operations take time to execute, give users feedback based on the thresholds in the following table. For more information, see [Resource limits and performance optimization for Office Add-ins](../concepts/resource-limits-and-performance-optimization.md).
@@ -116,31 +123,32 @@ For patterns that you can apply as you develop your first-run experience, see [U
116
123
|Extended|>500 ms|>10 seconds|Long enough to do something else while waiting. Might need feedback.|
117
124
|Long running|>5 seconds|>1 minute|Users will certainly do something else.|
118
125
119
-
- Monitor your service health, and use telemetry to monitor user success.
126
+
-**Monitor your service.** Use telemetry to monitor service health and user success.
120
127
121
-
- Minimize data exchangesbetween the add-in and the Office document. For more information, see [Avoid using the context.sync method in loops](correlated-objects-pattern.md).
128
+
-**Minimize data exchanges.** Reduce data exchanges between your add-in and the Office document. For more information, see [Avoid using the context.sync method in loops](correlated-objects-pattern.md).
122
129
123
130
## Publish and market your add-in
124
131
125
-
- Create a [Partner Center account](/partner-center/marketplace-offers/open-a-developer-account). This could take some time. If you plan to publish your add-in to AppSource, get this process going as soon as possible.
126
-
127
-
- Create an [effective AppSource listing](/partner-center/marketplace-offers/create-effective-office-store-listings).
132
+
Ready to share your add-in with the world? Here's how to get started.
128
133
129
-
- Use succinct and descriptive add-in titles. Include no more than 128 characters.
134
+
-**Create a Partner Center account.** This process can take time, so if you plan to publish to AppSource, start early. See [Partner Center account](/partner-center/marketplace-offers/open-a-developer-account).
130
135
131
-
- Write short, compelling, and accurate descriptions of your add-in. Answer the question "What problem does this add-in solve?".
136
+
-**Create an effective AppSource listing.** Follow these tips:
132
137
133
-
- Convey the value proposition of your add-in in your title and description. Don't rely on your brand.
138
+
- Use succinct, descriptive titles (128 characters or fewer).
139
+
- Write short, compelling descriptions that answer "What problem does this add-in solve?"
140
+
- Convey your add-in's value proposition clearly in the title and description. Don't rely only on your brand.
134
141
135
-
- Create a website to help users find and use your add-in.
142
+
Learn more about [creating effective AppSource listings](/partner-center/marketplace-offers/create-effective-office-store-listings).
136
143
137
-
- Publish your add-in to [AppSource](/partner-center/marketplace-offers/submit-to-appsource-via-partner-center). Be sure to follow the AppSource [prepublish checklist](/partner-center/marketplace-offers/checklist) and [submission guide](/partner-center/marketplace-offers/add-in-submission-guide).
144
+
-**Publish to AppSource.** Follow the AppSource [prepublish checklist](/partner-center/marketplace-offers/checklist) and [submission guide](/partner-center/marketplace-offers/add-in-submission-guide). Make sure to:
138
145
139
-
- Ensure that your add-in works error-free in all operating systems, browsers, and devices supported by the minimum set of APIs declared in your add-in manifest.
146
+
- Test your add-in thoroughly on all supported operating systems, browsers, and devices.
147
+
- Provide detailed testing instructions and resources for certification reviewers.
140
148
141
-
- Provide detailed testing instructions and resources for certification reviewers to verify the functionality of your add-in.
149
+
-**Create a website.** Help users discover your add-in outside of AppSource.
142
150
143
-
-[Promote your add-in](/partner-center/marketplace-offers/promote-your-office-store-solution) from your website.
151
+
-**Promote your add-in** from your website. See [how to promote your add-in](/partner-center/marketplace-offers/promote-your-office-store-solution).
0 commit comments