Projects
MY OPEN SOURCE PROJECTS
Shiny Mobile
Cross-platform framework for Bluetooth, GPS, notifications, and other device services with robust background processing across iOS and Android
Shiny Mediator
A powerful mediator pattern for .NET apps featuring a rich middleware pipeline, source-generated contracts, and seamless integration across MAUI, Blazor, and ASP.NET
AI Conversation
All-in-one AI conversation service for .NET - text chat, push-to-talk voice, hands-free wake word activation, audio feedback, persistent chat history with AI self-lookup, and observable state management across MAUI, Blazor, and ASP.NET
DocumentDB
A lightweight, database-agnostic document store for .NET — store object graphs as schema-free JSON across SQLite, PostgreSQL, MongoDB, CosmosDB, SQL Server, MySQL, Oracle, DuckDB and more. Features a LINQ fluent query builder, expression-based JSON indexes for up to 30x faster queries, spatial geo-queries, vector/ANN search, change feeds, multi-tenancy, optimistic concurrency, surgical field updates, JSON Merge Patch upserts, IAsyncEnumerable streaming, and full AOT compatibility
Shiny Controls
A rich, ready-to-use UI controls library for .NET MAUI and Blazor — data display (TableView with 14 cell types, TreeView, VirtualizedGrid, StaggeredGrid), scheduling/calendar/agenda views, input controls (TextEntry, AutoCompleteEntry, CountryPicker, AddressEntry, SecurityPin, SignaturePad), media (ImageViewer, ImageEditor, ColorPicker, CarouselGallery), layout (FloatingPanel, Fab/FabMenu, overlays), a ChatView with typing indicators and bubbles, desktop features (tray icon, docking, on-screen keyboard), plus Markdown, Mermaid, and Speech add-ons — all native, MVVM-friendly, and AOT-safe
MAUI Shell Extensions
Prism-inspired enhancements for .NET MAUI Shell — route- and ViewModel-based navigation via INavigator, XAML Navigate.* attached properties, runtime shell switching, an injectable IDialogs service (alert/confirm/prompt/action sheet), automatic BindingContext wiring with full ViewModel lifecycle and navigation awareness, cross-platform tab badges, and source generation that eliminates route boilerplate with strongly-typed navigation, DI registration, and AI navigation tools for Microsoft.Extensions.AI
App Extensions
A suite of source generators and utilities that cut boilerplate and boost performance — attribute-driven DI registration, cross-platform persistent key/value stores (Preferences, Secure Storage, Local/Session Storage), and Reflector for AOT-safe, source-generated property access, JSON serialization, and assembly metadata with no runtime reflection
App Templates
Ready-to-go dotnet CLI and Visual Studio project templates for scaffolding Shiny-powered mobile and server apps
Localization Generator
Source-generated strongly typed wrappers around IStringLocalizer, turning your .resx files into compile-time safe localization calls
MAUI Platforms
Community-driven .NET MAUI backends bringing Apple TV (tvOS) and macOS (AppKit) support to platforms not officially covered by MAUI
OBD
.NET library for vehicle diagnostics through OBD-II adapters, featuring a command-object pattern, adapter auto-detection, and pluggable transports including Bluetooth LE
Music
Unified .NET API for accessing device music libraries on Android and iOS - browse artists, albums, and tracks with metadata querying, playback controls, file export, and built-in permissions handling
Contact Store
Cross-platform device contact management for .NET MAUI - create, read, update, and delete contacts with LINQ querying, search, and integrated permissions handling
MSBuild Permissions
Declare .NET MAUI permissions once in your csproj and let MSBuild auto-generate the matching Android manifest entries and iOS Info.plist keys at build time
Shiny Aspire
Zero-friction .NET Aspire integrations that auto-provision Orleans ADO.NET schemas across PostgreSQL, SQL Server, and MySQL, plus Gluetun VPN container routing
GeoSpatial DB
A dependency-free geospatial datastore and geofencing library powered by SQLite R*Tree indexing with custom geometry algorithms - lightweight and perfect for .NET MAUI apps
Health
Apple HealthKit and Android Health Connect integration for .NET MAUI - query health metrics like steps, heart rate, calories, sleep, blood pressure, and more with a unified cross-platform API
Speech
Cross-platform speech services for .NET MAUI and Blazor WebAssembly - speech-to-text, text-to-speech, audio capture, and playback with pluggable cloud providers like Azure AI Speech and ElevenLabs
SAMPLE APPS
Canadas Wonderland Ride Times
Live ride wait times for Canada’s Wonderland - a showcase of Shiny Mediator paired with background Shiny jobs for real-time data fetching
Heads Up Clone
A clone of the popular Heads Up party game built with .NET MAUI featuring accelerometer-driven gestures and category-based card decks
Bluetooth Digital Scoreboard
A Bluetooth LE client and peripheral hosting sample using Shiny - demonstrates real-time score syncing between devices over BLE
Mediator Sample
End-to-end Shiny Mediator sample showcasing request/response handlers, event publishing, and middleware pipelines in action
Where Are You
Background GPS tracking done right - a .NET MAUI app using Shiny Locations for continuous position updates streamed to a .NET Orleans backend
Beat The Bank
A voice-powered trivia game using speech-to-text and text-to-speech, built with .NET MAUI, Shiny Mediator, and the Community Toolkit
KML Recorder
A .NET MAUI app for recording GPS tracks and exporting them as KML or GeoJSON files, with full CarPlay and Android Auto dashboard integration
TUNE Games
A music guessing and trivia game built with .NET MAUI and Shiny.Music - plays clips from your own library and challenges you to name the tune
Plex Suggest
A personalized recommendation engine for Plex libraries - analyzes your watch history to surface unwatched content with scored suggestions, available as both a .NET MAUI app and CLI tool
GitHub Mon
A cross-platform desktop dashboard for monitoring your GitHub repos - built with .NET MAUI Blazor Hybrid and Shiny, with live stars/forks/issues/PRs, native desktop notifications, multi-account support, and system tray integration across macOS, Linux, and Windows
SUPPORT MY WORK
Want to help out? There are several ways to do that
- Help write documentation/samples
- Fix bugs listed with “Help Wanted”
- File defects with complete test cases
- Be A GitHub Sponsor