Recently, one of my newsletter readers, Adrian, posed an interesting question. He asked how to decide between building a SharePoint Framework (SPFx) web part, a full-page web part like a single-page app (SPA), and a tab inside Microsoft Teams. This could be a personal app, a channel app, or a Power App.

This is an excellent question to cover in this week’s newsletter!

I always start by looking at who the target audience is for the app. Where do they spend their time & what is the vision for the app’s utility or user experience? From there, that’s going to start scoring points in some of the different options available to developers.

The decision tree I work from can be summarized in the following steps:

1️⃣ Identify where the audience spends most of their time: Microsoft Teams, SharePoint, web clients, desktop clients, mobile clients, etc.

2️⃣ Investigate what the vision of the app’s utility or its user experience is. Explore whether the app is a smaller widget-style app fitting into different/larger experiences, or a bigger, single-pane/window experience.

Based on these questions, I exclude from consideration options that don’t overlap with what the target audience uses or spends most of their time. Then it comes down to the nuances of the app. Things like necessary integration points with a host and app types I’m most comfortable in building.

In this week’s article, I go into a lot more depth & share why I don’t consider building Power Apps for these solutions.

🍿 Click Worthy Things

🔑 Implement SSO with the On-Behalf-Of (OBO) flow for a custom Microsoft Teams App with no backend! The Microsoft Teams group published a new sample that uses the Azure API Management resource as a proxy to implement the OBO flow to call Microsoft Graph, something that previously required creating a server-side backend

📧 Outlook Extensions with Microsoft Teams Apps now in public preview. Announced earlier this year at build, Microsoft has added Outlook extensions to the Teams app manifest. This is a step to unifying the fragmented world of creating Office Add-ins and Teams apps…

📒 Use OpenAI functions & Microsoft Graph to talk to your employee directory. In this article, MVP Vardhaman Deshpande, shows how to use functions with OpenAI (or Azure OpenAI) to call Microsoft Graph using the Retrieval Augmented Generation (RAG) pattern to have a conversation with your employee directory!

🏆 My Picks

🚀 NASA just updated the software of a 50-year old spacecraft 12 BILLION miles away… your move Windows, Apple, & Tesla!

The Full Stack Dev's Microsoft 365 Playbook

Andrew, a 19-year recipient of Microsoft's MVP award, helps full-stack developers efficiently build Microsoft 365 apps through pragmatic mentoring and self-paced courses. Join 8,000+ developers and receive his bi-weekly newsletter filled with insights on Microsoft 365 and Azure topics.

Read more from The Full Stack Dev's Microsoft 365 Playbook