code-apps
Skill46 starsChanged 8 months agoMITView on GitHub
Power Apps Code Apps Development (React + TypeScript + Vite). Use when: building Code Apps, three-layer architecture, PAC CLI workflow, Zustand state management, TanStack Query, shadcn/ui components, router basename, provider stack, form patterns, Dataverse integration from React.
In this repository40 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- accessibility-uxSkill
- ai-builderSkill
- almSkill
- architectureSkill
- azure-openaiSkill
- business-process-flowsSkill
- canvas-appsSkill
- code-reviewerSkill
- copilot-studioSkill
- custom-connectorsSkill
- dashboardsSkill
- data-migrationSkill
- dataverse-mcpSkill
- dataverseSkill
- dataverse-web-apiSkill
- devops-engineerSkill
- env-strategySkill
- governanceSkill
- integration-patternsSkill
- licensingSkill
- m365-integrationSkill
- model-driven-appsSkill
- observabilitySkill
- pcfSkill
- perf-optimiseSkill
- platform-builderSkill
- pluginsSkill
- power-automateSkill
- power-biSkill
- power-pagesSkill
- power-platform-teamSkill
- project-managerSkill
- securitySkill
- solutions-architectSkill
- spec-driven-devSkill
- test-engineSkill
- testingSkill
- uat-coordinatorSkill
- web-resourcesSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 69
Not handling loading, error, and empty states in presentation components
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: Power Apps Code Apps Development
When to Use
Trigger when building, debugging, or reviewing Code Apps — React + TypeScript + Vite applications running inside Power Apps.
Tech Stack Reference
| Layer | Technology | Notes |
| Language | TypeScript (strict mode) | Primary language for all code |
| UI Framework | React 18/19 | Functional components only |
| Build Tool | Vite + @microsoft/power-apps plugin | Dev server + Power Apps integration |
| Styling | Tailwind CSS + shadcn/ui | Starter template default |
| Styling (alt) | Fluent UI v9 (@fluentui/react-components) | Microsoft-branded enterprise apps — see fluent-ui.md |
| Client State | Zustand | Cross-component state |
| Server State | TanStack Query v5 | Caching, background refresh, mutations |
| Routing | React Router v6 | With basename normalization |
| Tables | TanStack Table | Sorting, filtering, pagination |
| Charts | Recharts | Data visualization |
| Notifications | Sonner | Toast notifications |
| Testing | Playwright | E2E testing |
| CLI | PAC CLI + @microsoft/power-apps npm | Scaffolding, data sources, deployment |
Three-Layer Architecture
Layer 1: Presentation (components/) — Props in, callbacks out. ZERO service imports.
Layer 2: Business Logic (hooks/) — TanStack Query + Zustand. ONLY layer calling services.
Layer 3: Data Access (generated/) — PAC CLI auto-generated. NEVER manually edit.⚠️ REQUIRED: Load Sub-Files Before Implementation
SKILL.md is a summary only — it is NOT sufficient for implementation.
The detailed content (complete payloads, XML templates, working examples, edge-case handling) lives in sub-files in the same directory as this SKILL.md. Before writing any code, you MUST use read_file on the sub-files relevant to your task:
- Architecture & Critical Patterns — Three-layer pattern, project structure, auth model, env var access, router basename, provider stack, lookup handling
- CLI Workflow — npm CLI (preview, becoming primary), PAC CLI commands, connector discovery (Wave 1 2026), agent.md, scaffold, init, data sources, build, deploy
- State Management — Zustand stores for client state, TanStack Query for server state, caching patterns
- Form Patterns — Create/edit hook pattern, component pattern, page composition, validation
- Power Automate Integration — Triggering flows via Custom API or Dataverse record trigger
- Fluent UI V9 — FluentProvider setup, theme customization (BrandVariants, dark/light mode), design tokens, makeStyles patterns, component patterns (forms, DataGrid, Dialog, layout), responsive design with Fluent
- Performance & Localization — Performance checklist, error handling, language detection, translation dictionary, RTL layout, date/currency formatting
Anti-Patterns
- Importing generated services directly in components (violates three-layer rule)
- Embedding secrets in Code App source (published code is publicly accessible)
- Skipping router basename normalization (breaks navigation in Power Apps host)
- Using
window.fetchdirectly instead of generated services (bypasses auth and connectors) - Hardcoding display text in JSX instead of using translation dictionary
- Using
Intl.NumberFormatwith hardcoded currency codes (user's currency comes fromusersettings) - Fetching all columns from Dataverse (always use
$select) - Eager
$expandon large lookup tables (resolve on-demand instead) - Manual auto-numbering in plugins when Dataverse auto-number columns exist
- Not handling loading, error, and empty states in presentation components
- Using
React.useEffectfor data fetching instead of TanStack Query - Storing server state in Zustand (use TanStack Query for anything from an API)
Related Skills
dataverse-web-api— Code Apps consume Dataverse via generated services built on Web APIdataverse— Schema design that Code App queries targettesting— Code App testing with Vitest/Jest + Playwrightpower-automate— Integration patterns for triggering flows from Code Appsaccessibility-ux— WCAG 2.2 AA compliance for Code App components
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

