Power Apps Code App M365 FAQ App built with React Vite SharePoint and PAC CLI on Power Platform

Power Apps Code App: Build the Best M365 FAQ App (2026)

If you have outgrown the limits of Canvas apps, building a Power Apps Code App is the natural next step. This pro-code approach lets you write production-grade React, deploy through the Power Platform CLI, and serve the result natively inside Microsoft 365 — without losing governance or the data layer your organisation already relies on.

In this guide we cover the high-level architecture and setup steps of a real M365 FAQ App. For detailed implementation — service configuration, component customisation, and field mappings — the full step-by-step guide is in the GitHub repository.

Power Apps Code App M365 FAQ accordion interface with real-time search and category filter
The finished app — accordion view with live search and category filtering.

Why Use a Power Apps Code App for FAQ?

Canvas apps are excellent for forms and dashboards. But the moment you need real-time search, Markdown-rendered answers, or dynamic category filtering — you are fighting the platform rather than building with it. This pro-code approach changes that entirely.

You write standard React and TypeScript, import any npm package, and the PAC CLI handles the connection to your Power Platform environment. The result is a first-class application in your Microsoft 365 app launcher — built with a front-end toolchain you fully control.

  • Full npm ecosystem — Fluent UI, react-markdown, fuse.js, and anything else you need.
  • Auto-generated data layer — the PAC CLI scaffolds typed service classes from your list schema.
  • Real build pipeline — Vite, TypeScript, ESLint, and a one-command deploy.
  • Same governance — DLP policies, environment controls, and solution packaging all apply as normal.

Who Is This For?

This guide is aimed at Power Platform developers comfortable with JavaScript or TypeScript who want to go beyond Canvas apps. You do not need to be a full-stack React developer — if you can read JSX and run npm commands, you have everything you need.

It is also useful for Solutions Architects who want to demonstrate pro-code capability to stakeholders. This is a practical, self-contained example — small enough to build in a day, real enough to ship to production.

What the M365 FAQ App Does

Accordion and Modal Views

Toggle display modes via a single config value — no rebuild needed after deployment.

FAQ Search

Searches questions and answers with matched term highlighting in the results.

Category Filter

Sidebar filter driven directly from your list’s Category choice column.

Mobile-Ready Layout

Fully responsive — the filter panel collapses cleanly on small screens.

Content editors manage everything directly in the list — adding a new FAQ, pinning an entry, or retiring an outdated answer requires no developer involvement. That separation of content and code is one of the key reasons this pattern works well in enterprise M365 environments.

Step 1 — SharePoint List Setup

The app uses a SharePoint list named M365 FAQs as its backend. Create it in your target site with these columns:

Column Type Purpose
Title Single line The FAQ question
Answer Multiple lines The answer body
Category Choice Drives the sidebar filter panel
Pinned Yes/No Surfaces important entries at the top
Active Yes/No Hides draft items without deleting them

Once created, connect the list to your project via the PAC CLI. It reads the schema and auto-generates a typed service layer — covered in the project structure section below.

Step 2 — Local Setup and PAC CLI

You need two tools: Node.js 22 LTS and the Power Platform CLI. Once installed, authenticate and scaffold the project:

# Install Power Platform CLI
npm install -g @microsoft/powerplatform-cli

# Authenticate and select your environment
pac auth create
pac auth select --index 1

# Scaffold the project (Vite + React + TypeScript)
pac code init --name M365FAQApp --template react

This generates a ready-to-run project with power.config.json wired to your environment. For detailed connection steps, refer to the PAC CLI documentation on Microsoft Learn and the project README on GitHub.

Step 3 — Project Structure Overview

After scaffolding and connecting your list, the project looks like this. The generated/ folder is created automatically by the PAC CLI — do not edit it manually.

m365-faq-code-app/
├── src/
│   ├── generated/       ← Auto-generated by PAC CLI — do not edit
│   ├── App.tsx          ← UI logic and components
│   ├── config.ts        ← Display mode and pagination settings
│   └── main.tsx         ← App entry point
├── power.config.json    ← Environment and connection config
├── vite.config.ts       ← Vite bundler config
└── package.json
Power Apps Code App architecture diagram showing React Vite connecting to SharePoint via PAC CLI service layer
Architecture: React (Vite) — PAC-generated service layer — SharePoint — Power Platform.
Key insight: The PAC CLI generates a fully typed service class from your list schema — handling authentication and data fetching automatically. No manual API calls needed. Full walkthrough is in the GitHub repository README.

Step 4 — Build and Deploy with pac code push

Deploying the Power Apps Code App is a three-command sequence. Before running, confirm your power.config.json has the correct environment ID and connection reference.

# Install dependencies
npm install

# Build the Vite production bundle
npm run build

# Push to Power Platform
pac code push --solutionName "M365_FAQ_Solution"

After a successful push, open make.powerapps.com, publish the app from your solution, and share with your security group. It appears in users’ Microsoft 365 app launchers immediately — no separate install required.

CI/CD Tip: Wrap these three commands in a GitHub Actions workflow. The PAC CLI supports service principal authentication, making automated deployments straightforward. A sample workflow is included in the repository.

Full Project on GitHub

Complete source code, list schema, and a GitHub Actions deployment workflow — open-source and ready to clone. The README has the full implementation guide.

View Repository — M365-faq-code-app

Frequently Asked Questions

What is a Power Apps Code App and how is it different from a Canvas App?

A Power Apps Code App is built with React and TypeScript, bundled with Vite, and deployed via pac code push into Power Platform. Unlike Canvas apps, it gives full control over the component tree and npm ecosystem — while keeping the same DLP policies and app-launcher integration.

Do I need to write the data service code myself?

No. When you connect a list as a data source, the PAC CLI auto-generates a fully typed service class in the generated/ folder. Authentication and data fetching are handled for you — no manual API calls required.

Can this M365 FAQ App be embedded in Microsoft Teams?

Yes. Pin it as a Teams personal app or tab through the Power Apps app in Teams, or package it via the Teams Developer Portal. Users get the full experience without leaving Teams.

What Node.js version is recommended in 2026?

Node.js 22 LTS is recommended. Use nvm if you switch between Node versions across multiple projects.

How do I update a deployed app without downtime?

Run npm run build then pac code push. The platform performs a rolling update — users get the new version on their next page load. No maintenance window needed.

V

About the Author — Vishnu WR

Microsoft Solutions Architect based in Singapore, writing about SharePoint,Copilot, Power Platform, and Microsoft 365. All guides and projects shared freely with the community at wrvishnu.com.

Found this useful? Here are a few quick ways to connect:

Got an idea for an app that should be built next? Leave a comment — I’d love to hear what the community needs.

Leave a Reply

Your email address will not be published. Required fields are marked *