Projects

Reach

A headless CMS written in C#, using Blazor, Orleans, Aspire and more. Featuring a composable architecture made for modern headless scenarios. Host yourself or join the cloud hosted platform.

Tazor

A Blazor & Tailwind CSS component library

Addendum

An auto-doc library for blazor and built in blazor.

Latest Blogs

CQRS & Event Sourcing in Orleans

Command Query Responsibility Segregation (CQRS) is what I would call the Heart of the Captain Planet formation of architectural patterns, with Domain Driven Design and Event Sourcing being popular members. Individually, these patterns are powerful tools, but only together can they solve platform level problems. This article covers how to incorporate all three using Microsoft Orleans and the Stateful Grain Model.

10 April, 2025

Continue Reading »

Building Your Own NPX CLI Tool

Function Calling elevates the usefulness of AI Chat Agents by giving them access to not only query your internal system data, but to make changes on behalf of a user. For instance, given a home automation system with an API, you could collect voice data, transform it to text input supplied to an agent which then calls functions to adjust lights in your house. This post covers the basics of such a system.

22 March, 2025

Continue Reading »

Hosting Semantic Kernel in Orleans and Aspire

Function Calling elevates the usefulness of AI Chat Agents by giving them access to not only query your internal system data, but to make changes on behalf of a user. For instance, given a home automation system with an API, you could collect voice data, transform it to text input supplied to an agent which then calls functions to adjust lights in your house. This post covers the basics of such a system.

04 March, 2025

Continue Reading »

Custom Storyblok Field Type: Input with a Unit

Composable component architectures contain a number of categories of components. For some sites, it can be useful to grant content editors the ability to affect the underlying styles of components. As you find yourself implementing spacing and sizing fields, you may want the option to select the unit of measurement. Enter the "Input with Unit" field type!

23 February, 2025

Continue Reading »

Introducing the Satellite Pattern for Orleans

This article describes a pattern in which such state is maintained in a secondary system to be consumed or communicated outward, hereby described as the Satellite Pattern.

17 October, 2024

Continue Reading »