finds.dev← search

// the find

shinyorg/shiny

★ 1,565 · C# · MIT · updated Jun 2026

.NET Framework for Backgrounding & Device Hardware Services (iOS, MacCatalyst, Android, & Windows)

Shiny is a MAUI/Xamarin abstraction layer for device hardware and background services — GPS, BLE, push notifications, background jobs, HTTP transfers — across iOS, Android, Windows, Mac, Linux, and Blazor WASM. It handles the platform-specific ceremony (permissions, main-thread marshaling, app restart recovery) so you don't have to write five platform implementations of the same thing. Target audience is .NET mobile developers who are tired of wrestling with BGTaskScheduler and WorkManager directly.

The platform coverage is genuinely impressive — BlueZ on Linux, Web Bluetooth in Blazor WASM, and native BGTaskScheduler/WorkManager backends rather than a lowest-common-denominator timer hack. The HTTP transfers module handles resumable uploads/downloads with Range headers and includes first-class AWS SigV4 and Azure Blob builders, which are the two storage providers you actually encounter in real projects. Native AOT and trim-friendly across all modules is a real commitment that most library authors punt on. The skills directory shipping AI-readable reference docs alongside the code is a practical acknowledgment of how developers actually work now.

1,565 stars for a library that covers this much surface area is a warning sign — the maintainer bus factor is probably one person (Allan Ritchie), and cross-platform hardware libraries need sustained platform-specific expertise as iOS and Android ship breaking changes every year. The Data Sync module doing bidirectional JSON sync with conflict resolution and tombstones sounds like it's trying to be a mini-database sync engine, which is the kind of scope that quietly becomes a maintenance liability. No test coverage is visible in the directory tree — for a library where bugs manifest as silent permission failures on a user's physical device, that's a problem. The BLE GATT server on Windows goes through WinRT which has historically had serious reliability issues; no mention of how or whether Shiny works around that.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →