Articles
Every article, newest first: architecture, security, messaging, data, testing, front end, C# & .NET and tooling.
All articles
49 articles.
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
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
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
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
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
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
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
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
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