This is the reference document Sapota's Power Platform team built for itself. Every pattern below comes from a production Dataverse, Power Apps, or Power Automate engagement we have shipped. We organized the catalogue as a single hub so an engineer joining a new project can scan the table of contents, identify which decisions are still open, and jump to the standalone post that walks through the specific tradeoff.
If you are evaluating Sapota for a Power Platform build, this is what we mean when we say "we have done this before." If you are an engineer at another team, this is the syllabus we onboard new Sapota hires against.
Who this guide is for
Three audiences benefit from this hub differently:
Engineers starting on a Power Platform project. Use the table of contents as a checklist for which decisions you have made consciously and which you skipped. Most production fires we have audited trace back to a choice nobody documented in week one.
Architects evaluating a Dataverse-centric solution. Skim the section titles. The depth of any consultancy's coverage on these specific operational topics is a reasonable proxy for how many production engagements they have actually shipped, versus how many proof-of-concept demos they have built.
Sapota engineers onboarding to a new Power Platform client. This is the documented version of what your seniors will tell you in the first standup. Read it, then jump into client-specific context.
The 30 posts linked below cover the full Power Platform engineering lifecycle: tool selection, Dataverse data modeling, plugin extensibility, Canvas and model-driven Power Apps, Power Automate, Power BI embed, custom connectors, security, and ALM.
Section 1: Foundations, choosing the right tool
Most Power Platform projects that drift over budget drift because the wrong tool got picked early. Canvas instead of model-driven, Business Rule instead of plugin, Custom Action instead of Custom API. The platform is forgiving but rework still costs money.
Posts on the early decisions Sapota walks every project through:
Section 2: Dataverse data modeling
Almost every painful Dataverse refactor we have run traces back to a data model that was built reactively, one table at a time, with no schema discipline decided upfront. The fix is structural, not cosmetic.
Posts on Dataverse modeling Sapota uses to anchor every solution:
Section 3: Plugin development and extensibility
Plugin code is where Power Platform projects either shine or rot. The platform constraints are unforgiving (sandboxed, two-minute timeout, no async on the main pipeline) and the failure modes are subtle. Most plugin bugs we have inherited were architectural, not coding.
Posts on the extensibility patterns Sapota uses to keep plugin code reliable at scale:
- Plugin Pipeline Stages, Explained Via Four Real Bugs, pre-validation vs pre-operation vs post-operation, walked through four production incidents that pin down each stage's behavior.
- Plugin Logging in Dataverse: ILogger and Application Insights, the structured logging setup that turns "the plugin failed" support tickets into actionable telemetry.
- Plugin + Azure Function + Service Bus: Async Integration at Scale, the architecture for moving long-running work off the plugin sandbox without breaking transactional consistency.
- Service Principal and Application User: Dataverse Auth for Functions, the auth pattern for any backend service that needs to talk to Dataverse without a real user identity.
- Model-driven Ribbon: Command Designer vs Ribbon Workbench in 2026, the modern UI customization split between Microsoft's Command Designer and the community's Ribbon Workbench.
- PCF Control with React 18 and TypeScript: Our Project Template, the Power Apps Component Framework starter that ships TypeScript types, lint, and a deployment pipeline.
Section 4: Canvas apps and Power Apps performance
Canvas apps look forgiving in the maker studio and then crawl in production once data crosses 2000 rows. The performance failure modes are predictable and the patterns to avoid them are well-known.
Posts on Canvas app performance patterns Sapota uses:
Section 5: Power Automate, flows that survive production
Power Automate makes simple flows trivial and complex flows fragile. Concurrency, retries, and trigger loops are the three failure modes that surface as soon as a flow leaves a happy-path demo.
Posts on flow architecture Sapota applies to every Power Automate design:
Section 6: Power BI embedded inside Power Apps
Embedding Power BI into a model-driven app or Canvas app is a one-click operation in the maker. Embedding it correctly with row-level security that respects Dataverse roles is the part that fails.
The Power BI embed pattern Sapota ships:
Section 7: Web API and integration patterns
Every serious Power Platform project eventually integrates with something external: an Azure Function, a partner API, or a SQL data source through a virtual table. The integration patterns either age well or generate timeout tickets at quarter-end.
Posts on Web API and integration architecture Sapota relies on:
Section 8: Security model and multi-tenant Dataverse
Dataverse security is layered (business unit, team, role, field-level, row-level) and every layer interacts with the others. Get the model right on day one or pay for a restructure later.
Posts on the security architecture Sapota uses on enterprise rollouts:
Section 9: ALM and DevOps for Power Platform
Power Platform ALM is a moving target. Solutions, environment variables, connection references, build pipelines, and managed-vs-unmanaged tradeoffs change every release. The pattern that survives is to pick a release process and stay disciplined.
Posts on ALM and DevOps Sapota applies to every Power Platform engagement:
Beyond Power Platform: sibling engineering guides
The 30 posts above cover Power Platform proper (Dataverse, Power Apps, Power Automate, Power BI, custom connectors). Sapota also runs parallel Dynamics 365 F&O and Salesforce Marketing Cloud engineering practices, each documented in its own pillar:
- The Complete D365 F&O Engineering Guide, 30 production patterns covering Chain of Command, DMF, XDS security, supply chain and manufacturing, multi-country rollout, dual-write, ALM, and Business Central.
- The Complete SFMC Implementation Guide, 70+ production patterns covering Data Extensions, Content Builder, Journey Builder, Automation Studio, Einstein, deliverability, and Marketing Cloud Connect.
If you are evaluating Sapota for an integrated Power Platform plus D365 F&O engagement, mention it on the call and we will walk both pattern catalogues directly.
How Sapota uses this guide on a real engagement
Week one of every Power Platform project, the assigned engineer walks the relevant sections of this hub with the client architect. The sections we open depend on the engagement scope:
- A Canvas-app build pulls Sections 1, 4, and 9 first.
- A model-driven CRM extension pulls Sections 1, 2, 3, 8, and 9.
- A Dataverse-as-system-of-record integration pulls Sections 2, 3, 5, 7, and 9.
- A Power BI analytics rollout pulls Sections 2, 6, 7, and 8.
The conversation surfaces which decisions the client has already made (often without realizing it) and which are still open. By the end of week one, both sides agree on which sections of this guide define the engagement and which are out of scope.
Working with Sapota on Power Platform
If your team is sizing a Power Platform project, evaluating a current implementation, or auditing a stalled rollout, the patterns above are the starting framework. Each section is a standalone deep-dive, and most engagements end up touching five to seven of them.
Reach out via the contact page with the section numbers most relevant to your situation. The first call is usually a forty-minute review of where the project sits relative to this guide, what is working, and what the next two sprints should focus on.