Welcome to PPDS
I'm Josh Smith, Principal Technical Architect at Hitachi Solutions. I've been in the Dynamics/Power Platform/Dataverse space since 2011—started at Microsoft, done my share of migrations, plugins, and ALM pipelines. I'm also a nerd who loves building tools.
Why PPDS Exists
The first version of PPDS was a VS Code extension written in TypeScript, talking to Dataverse over the Web API. It worked, but it wasn't right.
From November into December 2025, I was grinding—plugin registration, deployment settings, solution diff—all in parallel with Claude. But I was fighting TypeScript and the Web API the whole time. Then it clicked: why am I struggling with this when C# and the Dataverse SDK are my wheelhouse?
On December 13, 2025, I made the first commit to PPDS as it exists today. Fresh start, proper foundation.
My first task was connection pooling. I built an elaborate system with throttling factors and performance metrics—convinced I knew better than Microsoft. After load testing with an open-source dataset, I discovered that RecommendedDegreesOfParallelism in the ServiceClient was already giving me the same signal I'd spent days calculating.
That's the thing: even experienced developers over-engineer and skip best practices. Tools like Configuration Migration Tool were great in 2011, but they were built for a different era. The platform has evolved. The tooling should too. I can't tell you how many times XRM Toolbox has saved me, or how many LINQPad scripts I've written to automate random processes. I wanted to build something that ties it all together.
The core idea: bridge the gaps where people waste time. Time is finite. Why fight the tooling when you could just start building?
I'm building this in the open. It's not perfect, and I'll ship bugs. But I'd rather ship something useful and iterate than wait for perfect.
What This Is
PPDS is a developer platform on top of Power Platform. It's the starting point I wish I'd had—base connectivity, authentication, configuration, migration, integration—all the foundational pieces so you can focus on what you're actually building.
The ecosystem:
- PPDS CLI — Interactive TUI for managing environments, solutions, deployments
- PPDS SDK — NuGet packages for plugins, migrations, Dataverse operations, auth
- PPDS.Plugins — Decorate your plugins with attributes, deploy on commit to your dev instance
- PPDS Extension — VS Code integration for working directly in your editor
- PPDS.Tools — PowerShell module wrapping the CLI for scripting
- PPDS ALM — Reusable GitHub Actions and Azure DevOps templates for building your own pipelines
- PPDS MCP — AI integration for working with PPDS through Claude and other LLMs
- PPDS Demo — Reference Dataverse solution with plugins and best practices—also my test bed
- PPDS Docs — You're here. Best practices, deep-dives, and the occasional post about dumb things I did.
Built by AI, for building with AI. That's not a tagline—it's how this project ships as fast as it does.
What's Next
Give it a shot:
dotnet tool install -g PPDS.Cli
ppds
Star the repo if you want to follow along. Check out the docs to dig deeper. If PPDS saves you time, consider sponsoring the project or follow me on GitHub.
