Work

Most of what I build is public: a few Sparks that carry real weight, a lot of experiments made in the open, and some small builds for the people around me.

The Sparks run live at makeboldspark.com.

Flagship Sparks

Where the approach is proven on real problems with real outcomes.

Flagship Spark

API Test Spark

A tool I use several times a week. One package reference and one line of code give any .NET 10 API its own interactive test harness.

Problem
Swagger and Scalar are built to document an API, not to build one. While an endpoint was still changing, I kept jumping between browser tabs, terminals and network inspectors to see the request, the response and the timing.
Decision
Treat the harness as developer infrastructure, not app code. The React UI ships inside a NuGet package and reads the API's existing OpenAPI contract, so there's no second endpoint catalog to keep in sync and nothing copied into each project.
Implementation
A React app embedded in a .NET 10 class library behind MapApiTestSpark(), with safety defaults that keep it out of production and integration tests at the package boundary. DevSpark's critic step caught silent 404s and header exposure before the first commit, and it went from first commit to a published 1.0 in 12 days.
Outcome
Published on NuGet with thousands of downloads and a live demo, and in use in my own APIs, including ApiSpark and UISampleSpark.

Try it

dotnet add package ApiTestSpark
app.MapApiTestSpark();  // harness at /api-test-spark/
Flagship Spark

DevSpark

The way I build software now. It runs in most of my active repositories, including this site.

Problem
AI coding assistants write code fast but forget intent. A project constitution I'd carefully written was bypassed two weeks later by a late-sprint hotfix that pulled in a banned package and broke three principles. Governance that only exists during planning is blind to reality.
Decision
Make intent travel with the work. Specs, plans, critic reviews, PR reviews and audits all check against the same written principles, whether the change is a planned feature or a hotfix.
Implementation
Plain markdown command prompts and scripts, with no install and no subscription, that work with most AI coding agents. It builds on Den Delimarsky and John Lam's spec-driven development work and extends it to existing codebases.
Outcome
Used every day across my projects, and the process behind API Test Spark and WebSpark.HttpClientUtility.
Flagship Spark

WebSpark.HttpClientUtility

The HTTP plumbing my own projects run on, with thousands of NuGet downloads.

Problem
Every .NET app reinvents the same HttpClient code for retries, caching and telemetry, and the reasons behind those choices tend to live only in someone's head.
Decision
Package it once, hold it to a published quality bar, and write the decisions down. Four consecutive DevSpark specs turned undocumented habits into recorded standards.
Implementation
A documentation site; a zero-warning build with full XML docs and hundreds of passing tests; a split into a base package and a crawler extension with lockstep versioning and atomic publishing; and batch execution with P50/P95/P99 statistics.
Outcome
The base package dropped from 13 to 9 dependencies and shrank by more than 40%, with zero unexpected breaking changes for existing users.

Try it

dotnet add package WebSpark.HttpClientUtility
builder.Services.AddHttpClientUtility();
Flagship Spark

WichitaSewer.com

A brand-new local business that customers could find and call from day one.

“Above and beyond anything I could have ever dreamt of.”
The problem
A Rotary friend was starting a sewer and drain business and needed customers to find him and call from day one.
The approach
Build for the moment a basement floods: a fast site that answers "can you fix this, and can I reach you now?", with the phone number and around-the-clock availability up front, and pages that come up when local homeowners search for help.
How it was built
A simple site that costs almost nothing to run. Every change is checked so search engines can still find it, and it has been kept up to date ever since it launched.
Flagship SparkExploratory

ArrowSpark

An ad-free arrow puzzle game, built in a week in a game engine I'd never used.

What happened
It's live, with no ads, no lives and no waiting. A difficulty analyzer passed every test, but playing the puzzles showed they weren't much fun, so I reworked generation around what the tests had missed.
The problem
The arrow puzzle games I enjoy stop every thirty seconds for an advertisement. I wanted the puzzle without the interruptions, and I'm not a game developer.
The approach
Treat a game like any other system: break each capability into a bounded spec, test it, and write down why each decision was made. One design rule sits above the rest: hard is fine, unsolvable is not.
How it was built
AI helped me find my way around Godot, and I supplied the judgment about what to build and why. Every generated puzzle is checked to make sure it can be solved, and the specs, tests and decisions are public.

Supporting and experimental Sparks

Where I test ideas, patterns and tools before they earn a place in real work.

Data Analytics Web Project Manager
ExploratoryMake Bold Spark

Data Analytics Web Project Manager

DAWPM transforms CSV data into interactive visualizations, pivot tables, and detailed analytics. Built with ASP.NET WebForms 4.8 (VB.NET), featuring a modern Webpack build system, Bootstrap 5.3, DataTables 2.3, D3.js/C3.js charting, and PivotTable.js with drag-and-drop analysis.

Data AnalyticsCSV ProcessingASP.NET WebFormsBootstrap+2
View details
UISampleSpark: Seven UI Paradigms, One Backend
ExploratoryMake Bold Spark

UISampleSpark: Seven UI Paradigms, One Backend

UISampleSpark compares multiple frontend approaches — MVC, Razor Pages, jQuery AJAX, React, Vue, htmx, Blazor, and SPA — all running against the same .NET 10 REST API. Originally a simple MVC CRUD demo, it has evolved into a living reference for modern UI architecture decisions with Docker containerization and Bootswatch theming.

UISampleSpark.NET 10ASP.NET CoreReact+8
View details
PromptSpark
ExploratoryMake Bold Spark

PromptSpark

PromptSpark.Chat is a real-time, workflow-driven chat application built with ASP.NET Core, SignalR, and Adaptive Cards. Users interact with branching multi-step workflows through conversational UI, with optional AI-driven responses via IChatCompletionService.

PromptSparkSignalRAdaptive CardsASP.NET Core+3
View details
ReactSpark
ExploratoryMake Bold Spark

ReactSpark

A production-ready developer portfolio built with React 19.1, TypeScript 5.9, and Vite 7.0. Features SignalR real-time chat with AI personalities, live weather widget with Leaflet maps, RSS feed integration, dark/light theming, admin panel, and dual deployment to Azure Static Web Apps and GitHub Pages.

ReactSparkReact 19TypeScriptVite+4
View details
PrismSpark: Advanced C#/.NET Syntax Highlighting Library
ExploratoryMake Bold Spark

PrismSpark: Advanced C#/.NET Syntax Highlighting Library

PrismSpark is a high-performance .NET 10 library that ports PrismJS for server-side syntax highlighting. Features a plugin system (line numbers, copy-to-clipboard, toolbar), hook-based event system, theme engine with CSS generation, and ASP.NET Core MVC integration supporting 20+ languages.

C#.NET 10PrismJSsyntax highlighting+4
View details
WebSpark.ArtSpark
ExploratoryMake Bold Spark

WebSpark.ArtSpark

WebSpark.ArtSpark is a .NET 10 solution providing a complete client library for all 33 Art Institute of Chicago API endpoints plus an AI chat system with four personas (Artwork, Artist, Curator, Historian) powered by Semantic Kernel and GPT-4o Vision. Includes demo web app, console app, and user collections via ASP.NET Core Identity.

WebSpark.ArtSpark.NET 10Art Institute of ChicagoSemantic Kernel+3
View details
TailwindSpark: Tailwind CSS React Showcase
ExploratoryMake Bold Spark

TailwindSpark: Tailwind CSS React Showcase

TailwindSpark is a React 19.1 TypeScript monorepo showcasing Tailwind CSS v4 with the new @theme directive and design tokens. Built with Vite 7.1, Turborepo 2.7, and Vitest 4.0, it features showcase pages for dashboards, e-commerce, marketing, and analytics with WCAG 2.1 AA compliance.

Tailwind CSS v4React 19TypeScriptTurborepo+5
View details
Git Spark: Advanced Git Repository Analytics Tool
SparkMake Bold Spark

Git Spark: Advanced Git Repository Analytics Tool

Git Spark is an npm CLI tool and Node.js library that analyzes Git repository commit history to provide insights into contributor activity, code changes, and development patterns. Generates interactive HTML reports with charts, plus JSON, CSV, and Markdown exports.

Thousands of npm downloads

Git analyticsnpm packageCLI toolNode.js+2
View details
WebSpark Bootswatch Theme Integration Library
SparkMake Bold Spark

WebSpark Bootswatch Theme Integration Library

WebSpark.Bootswatch is a .NET Razor Class Library (NuGet package) enabling seamless Bootswatch theme integration into ASP.NET Core applications. Version 2.0+ targets .NET 10 exclusively, featuring dynamic theme switching, light/dark mode with auto-detection, tag helper support, and high-performance StyleCache caching.

Thousands of NuGet downloads

NuGet PackageBootswatch.NET 10ASP.NET Core+3
View details
TeachSpark: AI-Driven Educational Platform
ExploratoryMake Bold Spark

TeachSpark: AI-Driven Educational Platform

TeachSpark is an LLM-powered educational platform built with .NET 10 MVC and a Webpack 5 frontend build system. It provides adaptive learning with personalized content delivery, interactive curriculum with real-time feedback, progress analytics, and comprehensive code quality tooling (ESLint, Prettier, Husky).

AI-powered educationpersonalized learningLLM.NET 10+3
View details
MuseumSpark: AI-Powered Museum Trip Planner
ExploratoryMake Bold Spark

MuseumSpark: AI-Powered Museum Trip Planner

MuseumSpark transforms the Walker Art Center Reciprocal Program membership list (1,269 museums) into an intelligent travel planning resource. Features priority scoring by artistic strength, smart city-tier clustering, visit duration estimates, and a multi-phase data enrichment pipeline using Wikidata, Wikipedia, and museum websites.

Museum PlanningWalker Art CenterData EnrichmentWikidata+3
View details
PHPDocSpark: PHP Documentation Platform
ExploratoryMake Bold Spark

PHPDocSpark: PHP Documentation Platform

PHPDocSpark is an open-source PHP 8.2+ documentation and data exploration platform with a Vite 7.1 asset pipeline. Features include Markdown documentation viewer with full-text search, CSV data analysis, SQLite CRUD operations, GitHub API integration, Chart.js visualizations, and Azure Pipelines deployment.

PHP 8.2ViteBootstrap 5SQLite+4
View details
SupportSpark: Compassionate Support Network Platform
ExploratoryMake Bold Spark

SupportSpark: Compassionate Support Network Platform

SupportSpark is a privacy-focused web application designed to help individuals maintain supportive networks during challenging life moments. Built with React 19, Express 5, and TypeScript, it provides a calm, structured platform for sharing personal journey updates with threaded conversations.

SupportSparksupport networkReact 19Express 5+4
View details
DocSpecSpark
ExploratoryMake Bold Spark

DocSpecSpark

Documentation-driven specification system for turning architectural intent into implementation context.

DocSpecSparkspecificationsdocumentationASLCD+1
View details
TexEcon
ExploratoryExternal

TexEcon

Texas economic analysis and commentary site delivering expert insights on the Texas economy, built as a static React application with build-time content integration from the WebSpark API.

Texas economyeconomic analysiseconomic commentaryReact+2
View details
ApiSpark
SparkMake Bold Spark

ApiSpark

Modular ASP.NET Core backend platform consolidating multiple low-volume APIs into a single Azure-hosted service, serving as the centralized API layer for the Make Bold Spark portfolio.

Hosts my consolidated APIs and the API Test Spark live demo

ApiSparkASP.NET CoreAzureAPI+3
View details
WebSpark
ExploratoryMake Bold Spark

WebSpark

Comprehensive .NET ASP.NET Core MVC suite of seven modular applications — PromptSpark, RecipeSpark, TriviaSpark, WebCMS, AsyncSpark, Admin, and Identity — demonstrating modern enterprise web architecture with AI integration.

WebSparkASP.NET CoreMVC.NET+4
View details
AsyncSpark
ExploratoryMake Bold Spark

AsyncSpark

Production-ready reference implementation demonstrating enterprise-grade asynchronous programming patterns in .NET 10, built as part of the Make Bold Spark portfolio.

AsyncSparkasync.NET 10C#+2
View details
FastEndpointApi
ExploratoryMake Bold Spark

FastEndpointApi

Comprehensive demonstration of the FastEndpoints framework for ASP.NET Core, implementing a Person Management API using the REPR (Request-Endpoint-Response) pattern.

FastEndpointsASP.NET CoreREPR patternminimal API+2
View details
InquirySpark
ExploratoryMake Bold Spark

InquirySpark

Modern .NET 10 unified survey, inquiry, and decision-management platform consolidating multiple legacy applications into a single ASP.NET Core MVC workspace.

InquirySparksurveyinquiry.NET 10+3
View details
GitHub Stats Spark
SparkMake Bold Spark

GitHub Stats Spark

Automated GitHub profile statistics generator with AI-powered repository analysis, SVG visualizations, and the pipeline that feeds live repository data to this site.

Powers the repository stats on this site

github-stats-sparkGitHub analyticsSVGAI analysis+2
View details
ShareSmallBiz
ExploratoryExternal

ShareSmallBiz

A platform for small businesses to connect, share what works and market together. It didn't get traction, and it's waiting for a v2.

ShareSmallBizsmall businesscommunity platform.NET+1
View details

Personal builds

Things I built for family, friends and my community. Small, but still built properly.

  • Frogsfolly.com MainFrogsfolly.com is the original website I created in 1999 when learning web technologies.
  • Travel FrogsfollyA website with places we have traveled with a few pictures and descriptions of the highlights. The site is built with Web Project Mechanics CMS
  • JM Shaw MineralsA website for a collector of fine gemstones. Uses Web Project Mechanics CMS and some custom code for tracking each item in the collection.
  • Control OriginsArchivedA website for a side venture with my brother. Archived: the venture didn't continue.
  • Mechanics of Motherhood: Recipe Management PlatformMechanics of Motherhood is a modern recipe management platform for busy working mothers. Built with React 19, TypeScript, Vite, Tailwind CSS, and Shadcn/ui, it offers 108+ curated recipes with smart search/filtering, PWA offline support, and data from the live RecipeSpark API.
  • KeyPressCounterLightweight Windows system tray utility monitoring keyboard and mouse input activity alongside real-time system performance metrics and usage statistics.
  • ClubBirthday.orgPersonalized online birthday cards for every member of my Rotary club, so each member gets one on their day.
  • Oatville Community ChurchA pro-bono website for a fellow Rotary member's church.