Articles

Every article, newest first: architecture, security, messaging, data, testing, front end, C# & .NET and tooling.

All articles

49 articles.

Front end

Replacing Disqus with Giscus

Move a blog's comments from Disqus to Giscus and GitHub Discussions: why, the setup, a React component that loads on demand and follows the site's theme, the Content Security Policy and a test.

4 min read

Security

Cookie consent on a static blog

Measure the cookies a static site really sets, see what the rules ask of a blog, and load Google Analytics only after consent, with a small store, a fair banner and tests that check it.

7 min read

Security

A Content Security Policy for an Astro site

Add a Content Security Policy to a static Astro site with security.csp: hashed inline scripts, third parties, why strict-dynamic broke the islands, and tests that fail on any violation.

5 min read

Front end

Tailwind CSS 3 to 4: what the upgrade tool does not catch

Twelve differences found by comparing a site pixel by pixel before and after moving to Tailwind CSS 4: borders, line heights, cascade layers, table cells, stacking, colours.

6 min read

Testing

Moving a blog from Gatsby to Astro without a regression

How this blog moved from Gatsby to Astro with the same URLs, HTML and behaviour, and how we proved it: an HTML oracle, pixel diffs and interaction tests on both builds.

6 min read

Architecture

Expose your ASP.NET Core API as an MCP server

Learn how to let agents read and change what their user can through an MCP server in ASP.NET Core, with OAuth, scopes, a per-organization switch and rate limits.

8 min read

Architecture

An AI gateway for your SaaS in ASP.NET Core: one path to the model

Learn how to route every AI call of an ASP.NET Core application through one gateway that checks the organization's switch, the person's allowance and writes a usage ledger.

7 min read

Security

SSO and SCIM 2.0 for a B2B SaaS in ASP.NET Core

Learn how to let each customer sign in through its own identity provider and provision its people with SCIM 2.0, in ASP.NET Core, with no third-party service.

8 min read

Security

GDPR data export and account erasure in an ASP.NET Core SaaS

Learn how to implement a GDPR data export and a real account erasure in a modular ASP.NET Core application, without breaking domain boundaries or other people's history.

7 min read