All articles

  1. Development & automation

    The green test that measured nothing

    A test suite can be green because the system works, or green because the test points at nothing. We collected our own specimens: a suite verifying a build nobody shipped, a read-only gate over a collector that could not load, a published guarantee table that never executed, a pinned assertion that was a fossil of a bug, and a suite that proved every rule and never ran the handler. Each one with the code, and the one-line question that catches all five.

    ·7 min read

    Keep reading →
  2. Development & automation

    Why SharePoint Framework stayed on React 17 through SPFx 1.23.2

    A retrospective on the SPFx 1.16–1.23.2 dependency boundary, updated to distinguish it from SPFx 1.24 and React 18.3.1. Platform compatibility requires more than changing a package version.

    ·6 min read

    Keep reading →
  3. Development & automation

    Developing for SharePoint Server Subscription Edition: the practices that hold up

    Subscription Edition is supported until at least 2035 and its SharePoint Framework ceiling has not moved since 2023. That combination is the whole job: a long runway on an older stack. This is how to build on it well, with code that runs on the version your farm actually accepts.

    ·20 min read

    Keep reading →
  4. Migrations

    SharePoint 2016, 2019, Subscription Edition and Online: what actually changes

    2016 and 2019 both left support on 14 July 2026. Subscription Edition has no end date and cannot be bought outright. Online has features the others do not have, and Subscription Edition has two that are no longer a simple no. A practical comparison, with the licensing that decides it.

    ·21 min read

    Keep reading →
  5. Migrations

    Migrating SharePoint 2016 and 2019 to Subscription Edition: the scripts

    SharePoint 2016 goes straight to Subscription Edition. There is no hop through 2019, the method is database attach and nothing else, and the order of the service applications is not a preference. The sequence in PowerShell, from the inventory you take before touching anything to the checks you run before anyone is let in.

    ·25 min read

    Keep reading →
  6. AI & agents

    A Copilot agent manifest is a security boundary. Here is the linter for it.

    Every scoping property in a Microsoft 365 Copilot agent manifest is optional, and in six places omitting one grants the widest scope instead of the narrowest. A JSON Schema validator approves those manifests, because nothing in them is invalid: something optional is missing. So we wrote the check that does catch it. It finds six problems in a manifest that passes every other test.

    ·6 min read

    Keep reading →

Categories

Send us a message

or write to hello@ph7x.com