Roots in the Machine
AI adoption is branching through our industry, connecting developers to hives built from the reverberations of human knowledge.
Writing about Aspire, .NET, developer tools, open source, and software engineering.
AI adoption is branching through our industry, connecting developers to hives built from the reverberations of human knowledge.
A standalone Blazor WebAssembly app hands Pagefind no static HTML to crawl. Here's how I indexed the Blazorators sample with Pagefind's Node API and wired search through JS interop.
How I built an open-source Copilot canvas that previews social cards, audits OpenGraph metadata and agent readiness, and turns diagnostics into actionable work.
How I added list_docs, search_docs, and get_doc to the Aspire MCP server to help AI agents build better Aspire apps.
Productivity exemplified: How I planned, prompted, and tamed AI to migrate aspire.dev.
A journey of rebranding, replatforming, dogfooding, and mild existential crises
Use the IAsyncEnumerable<T> interface to stream data from a server to a client.