The device, background, and data layer .NET has been missing.
Cross-platform libraries for .NET MAUI, Blazor, ASP.NET Core and native apps — the background work, hardware access, offline storage and sync that every real app needs and every team writes badly once.
Documentation · Getting Started · Playgrounds · Blog · Commercial Support
Full documentation for every library — getting started guides, API usage, platform notes and release
notes. Start with the App Builder: pick the
features you need and it hands you the csproj and startup code.
Every library runs where the platform allows it: iOS, Mac Catalyst, macOS, Android, Windows, Linux,
and Blazor WebAssembly. Everything is Native AOT & trim-friendly, and many modules ship optional
*.Extensions.AI packages that expose them to LLM agents as Microsoft.Extensions.AI tools — an
opt-in allow-list of exactly the operations the model may call.
| Library | Package | What it does |
|---|---|---|
| Core | Shiny.Core |
The host, platform abstractions, lifecycle hooks, startup tasks and device monitoring every Shiny module builds on |
| Mediator | Shiny.Mediator |
A mediator for .NET apps with the best middleware around — caching, resiliency, offline, replay, scheduling, HTTP contracts, AOT source generation |
| Actors | Shiny.Actors |
Orleans-style virtual actors without the ceremony — in one process anywhere .NET runs, including MAUI and Blazor WebAssembly |
| Dependency Injection | Shiny.Extensions.DependencyInjection |
Attribute-driven registration via source generators — keyed services, categories, multi-interface |
| Reflector | Shiny.Extensions.Reflector |
Reflection without the reflection, powered by source generators |
| Serialization | Shiny.Extensions.Serialization |
AOT-safe serialization used across the stack |
| Localization Generator | Shiny.Extensions.Localization.Generator |
Strongly typed IStringLocalizer from your .resx files |
| Hosting Models | Shiny.Hosting.Maui / .Native |
Run Shiny inside MAUI, native .NET iOS/Android, or a host you wire up yourself |
| Library | Package | What it does |
|---|---|---|
| BluetoothLE | Shiny.BluetoothLE |
Scan, connect, GATT and L2CAP CoC — including the reconnect and background behaviour that only shows up on real devices |
| BluetoothLE Hosting | Shiny.BluetoothLE.Hosting |
Be the peripheral: GATT server, advertising, L2CAP listeners |
| BluetoothLE Hubs | Shiny.BluetoothLE.Hubs |
SignalR-style hubs over BLE — one device hosts, nearby devices call it through a source-generated typed proxy |
| Universal Hubs | Shiny.UniversalHubs |
The same hubs over Wi-Fi and BLE — write it once, clients connect over whichever link they can reach |
| Beacons | Shiny.Beacons |
iBeacon & Eddystone ranging, region monitoring and broadcasting |
| Locations | Shiny.Locations |
Foreground/background GPS, geofencing and motion activity, with the permission dance handled |
| OBD | Shiny.Obd |
Vehicle diagnostics over BLE, Wi-Fi and serial adapters, with auto-detection, Mode 06, VIN decoding and an emulator |
| Network Discovery | Shiny.Net.Discovery |
mDNS/DNS-SD (Bonjour), SSDP/UPnP and WS-Discovery — browse, resolve and publish |
| Wi-Fi | Shiny.Net.Wifi |
Scan, join and leave networks, manage saved networks, monitor the current one, and host a hotspot |
| Wearables | Shiny.Wearables |
Talk to a companion Apple Watch or Wear OS app — messages, shared context, queued transfers and files |
| Screen Recording | Shiny.ScreenRecorder |
Record the screen to MP4 with microphone and system audio |
| Gamepads | Shiny.Gamepad |
Game controllers — sticks, triggers, buttons, rumble, battery, motion and light bars |
| Game Center | Shiny.GameCenter |
Achievements, leaderboards and friends over Apple Game Center and Google Play Games, with an offline queue |
| Printing | Shiny.Printing |
Thermal/receipt printing (ESC/POS, TSPL) over BLE and Wi-Fi, plus OS-native PDF, image and HTML printing |
| Library | Package | What it does |
|---|---|---|
| Music | Shiny.Music |
Device music library, playback, playlists, lyrics, album art and audio analysis |
| Health | Shiny.Health |
Read, write and observe HealthKit and Health Connect data through one API |
| App Store | Shiny.AppStore |
Check for a newer version, deep-link to store and review pages, request the native review prompt |
| In-App Purchases | Shiny.Mobile.InAppPurchases |
StoreKit and Google Play Billing behind one API, with server-side receipt validation |
| Contacts | Shiny.Contacts |
Device contacts with CRUD and a fluent async query builder |
| Calendar | Shiny.Calendar |
Calendars and events with CRUD, recurrence handling and pushed-down date queries |
| Call Directory | Shiny.Mobile.CallDirectory |
Block and identify incoming calls on iOS and Android from a list your app owns — no Xcode project |
| Library | Package | What it does |
|---|---|---|
| AI Conversations | Shiny.AiConversation |
Real voice conversations with the model of your choice — wake word, STT/TTS, message store, tools |
| Speech | Shiny.Speech |
Speech-to-text, text-to-speech, wake word and audio capture — on-device or via Azure, OpenAI, ElevenLabs, Typecast, Whisper |
| Face Intelligence | Shiny.FaceIntelligence |
Enrollment and face recognition on-device via ONNX, with MAUI controls and pluggable stores |
| Voice Intelligence | Shiny.VoiceIntelligence |
Speaker enrollment and recognition on-device, with guided enrollment UI |
| Document Intelligence | Shiny.DocumentIntelligence |
Document scanning and on-device extraction of receipts, invoices, licenses, passports and cards |
| Library | Package | What it does |
|---|---|---|
| Jobs | Shiny.Jobs |
Periodic background work on BGTaskScheduler, WorkManager, Windows background tasks, and a managed runner elsewhere |
| Local Notifications | Shiny.Notifications |
Scheduled, repeating and geofence-triggered notifications with channels, badges and actions |
| Push Notifications | Shiny.Push |
Native APNs/FCM, Firebase, Azure Notification Hubs, and Blazor Web Push |
| Live Activities | Shiny.Mobile.LiveActivities |
iOS Live Activities and Android Live Updates, driven from C# |
| App Functions | Shiny.AppFunctions |
Declare your app's functions once in C# — Siri/App Intents on iOS, Gemini AppFunctions on Android, tools for your own LLM |
| HTTP Transfers | Shiny.Net.Http |
Resumable background upload/download that survives suspension — with Azure Blob and AWS S3 request builders |
| Library | Package | What it does |
|---|---|---|
| MAUI Shell | Shiny.Maui.Shell |
Shell navigation, dialogs and ViewModel lifecycle made pleasant, with source-generated routes |
| Configuration | Shiny.Extensions.Configuration |
Platform config sources, native preferences, and remote configuration for mobile |
| MSBuild Permissions | Shiny.Permissions.MSBuild |
Android manifest permissions and iOS plist values declared from your csproj |
| App Device Bridge | Shiny.AppDeviceBridge.* |
Host a Blazor, React or any static web app inside MAUI — served from the device, updated over the air, calling native features through typed C# and TypeScript clients |
| Templates | Shiny.Templates |
dotnet new and Visual Studio templates for Shiny apps, libraries and ASP.NET back ends |
80+ controls, each available for .NET MAUI and Blazor — see the full catalogue.
| Library | Package | Highlights |
|---|---|---|
| MAUI Controls | Shiny.Maui.Controls |
TableView, TreeView, DataGrid, ChatView, Scheduler, Gantt, Kanban, FloatingPanel, ImageEditor, Fab, Toast, FrostedGlass |
| Blazor Controls | Shiny.Blazor.Controls |
The same suite for web, plus Toolbar/TabBar, Splash Screen and themes (Aurora, Material, Ocean, Terminal) |
| Office | Shiny.*.Controls.Office |
Spreadsheet, document and slide viewers/editors for .xlsx, .docx and .pptx, plus Notebook |
| CameraView | Shiny.*.Controls.Camera |
Frame analyzers (barcode, face, OCR, motion, documents), effects and AI photo stylizing |
| MediaElement | Shiny.*.Controls.MediaElement |
Audio/video playback with a themed transport bar, lock-screen controls and Picture-in-Picture |
| Diagram & Floor Plan | Shiny.*.Controls.Diagram / .FloorPlan |
Flowcharts, node diagrams and interactive floor plans |
| Barcodes & QR | Shiny.*.Controls.Barcodes |
13 symbologies, pure-managed rendering, headless output to PNG/SVG |
| Desktop | Shiny.Maui.Controls.Desktop |
Tray icon, docking, on-screen keyboard |
| Markdown & Mermaid | Shiny.*.Controls.Markdown |
Markdown rendering and editing, Mermaid diagrams with theming |
| Library | Package | What it does |
|---|---|---|
| DocumentDb | Shiny.DocumentDb |
Schema-free JSON document store, 100% AOT, with LINQ, spatial, vector, full-text, encryption, OData and change monitoring |
| ↳ Providers | Shiny.DocumentDb.* |
SQLite (+SQLCipher), PostgreSQL, SQL Server, MySQL, MariaDB, Oracle, CockroachDB, DuckDB, Cosmos, DynamoDB, Mongo, Redis, RavenDB, Firestore, LiteDB, IndexedDB, Azure Table |
| ↳ Admin UI | — | Browse, query, geometry, vectors and blobs across every provider — plus a terminal UI |
| Data Sync | Shiny.Data.Sync |
Bidirectional JSON sync over HTTP: outbox/inbox, tombstones, conflict resolution, backoff retry |
| Stores | Shiny.Extensions.Stores |
Cross-platform key/value stores and persistent service binding |
| Library | Package | What it does |
|---|---|---|
| HTTP Server | Shiny.Net.HttpServer |
HTTP/1.1, HTTP/2 & HTTP/3 that runs anywhere .NET runs — including inside a MAUI app, where ASP.NET Core can't. WebSockets, SSE, auth, tunnels, gRPC, WebDAV, MCP |
| ASP.NET Extensions | Shiny.AspNet.* |
Modular IWebModule startup, WebDAV, CalDAV/CardDAV, tus, file sync, NuGet & npm feeds, ACME TLS, webhooks, idempotency, tunnels |
| Push (Server) | Shiny.Extensions.Push |
Server-side dispatch to APNs, FCM, Web Push and WNS — with targeting, topics, Live Activities and metrics |
| Orleans Database Providers | Shiny.Aspire.Orleans.* |
ADO.NET clustering, persistence and reminders wired through Aspire — hosting, silo and client |
| Aspire Gluetun VPN | Shiny.Aspire.Hosting.Gluetun |
Route Aspire containers through a Gluetun VPN sidecar |
| Aspire Tunnelling | Shiny.Aspire.Hosting.Tunnel.* |
Public addresses for Aspire resources — quick tunnels, SSH, Azure Relay, Cloudflare and ngrok |
| DocumentDb for Orleans | Shiny.DocumentDb.Orleans |
Grain persistence over any DocumentDb provider |
| Repo | What it is |
|---|---|
| skills | AI agent skills for every Shiny library — teach Claude, Copilot or Cursor to write Shiny code correctly |
| documentation | The source for shinylib.net |
| SwiftDotNet | SwiftUI-style declarative UI in C#, rendered as real native controls on iOS, Android, Windows, Linux and the web |
| mauiplatforms | Community .NET MAUI backends for Apple TV (tvOS) and macOS (AppKit) |
| wonderland | A full sample app exercising most of the stack |
| kmlrecorder | Record GPS tracks to KML/GeoJSON, with CarPlay and Android Auto dashboards |
| mediatorsample | End-to-end Mediator sample, client through server |
No install, no simulator — these run in WebAssembly:
AI Conversation & Speech · Controls · Mediator · Shiny Core · DocumentDb Admin
These libraries are maintained by ShinySoft Technologies — the same people you can hire to build the thing they're for. 25+ years of shipping software for people who work away from a desk: fleets, warehouses, job sites, hospitals, connected hardware.
How teams engage us
| Engagement | What you get |
|---|---|
| Fractional CTO | Senior technical leadership without a full-time hire — architecture and technology strategy, roadmap, build-vs-buy and cost control, hiring and code review. |
| Team Augmentation | Drop-in senior engineering that ships from day one, unblocks stalled or inherited codebases, and leaves standards behind that stick. |
| Idea to Product | Discovery and business analysis that turns a rough concept into a scoped, costed, buildable plan with real estimates. |
What we build
- Mobile & cross-platform — production .NET MAUI, iOS and Android, including the background, offline and lifecycle work most teams get wrong
- IoT & Bluetooth — BLE central and peripheral, device fleets, hardware integration. We wrote the libraries above for this
- Fleet & field operations — location tracking, geofencing and telematics where connectivity isn't guaranteed
- Cloud & web — the ASP.NET Core services behind the device, built to stay cheap to operate and hold their shape under load
- Application modernization — legacy .NET Framework and aging mobile codebases onto current platforms without stopping delivery
- AI, done honestly — start where it pays, your data stays yours, people stay accountable, measured against real cases, no lock-in by default
Migrating off Xamarin? Every subsystem a mobile app actually needs — BLE, background jobs, location, push, storage, sync, speech, device data, barcodes, UI, app architecture — already has a maintained library here, so the port doesn't stall hunting for a replacement plugin. Talk to us about the migration →
Book a call · shinysoft.biz · allan@shinysoft.biz
Ontario, Canada · Eastern Time (UTC−5 / −4)
