Getting Started
Shiny.AspNet is a set of independent libraries for ASP.NET Core. Each one is a single package you
add to an existing app, registered the ASP.NET way — builder.Services.Add…(), app.Map…() or
app.Use…() — and every Map… returns an IEndpointConventionBuilder, so RequireAuthorization,
RequireCors, RequireRateLimiting and the rest of ASP.NET’s own conventions apply to everything a
library maps.
They are ports of the Shiny HTTP Server add-ons, re-hosted on Kestrel. All of them are trim and Native AOT clean.
| GitHub |
Packages
Section titled “Packages”| Package | Description |
|---|---|
Modular startup with IWebModule |
|
| WebDAV class 1 & 2 — mount a directory in Finder, Explorer or any WebDAV client | |
| CalDAV & CardDAV — serve calendars and contacts to Apple, Thunderbird and DAVx⁵ | |
| Resumable uploads over tus 1.0.0 | |
| Dropbox-style file sync with content-defined chunking | |
| A private NuGet feed — the V3 protocol, push, unlist and search | |
| A private npm registry for npm, pnpm and Yarn | |
| REST + live SSE endpoints for a Shiny.DocumentDb document type | |
| RFC 6902 JSON Patch on System.Text.Json, with minimal-API binding | |
| Webhook verification and signing — GitHub, Stripe, Slack, Standard Webhooks | |
Idempotency-Key middleware — replay the original response to a retried POST |
|
| RFC 9530 Content-Digest verification and emission | |
| Automatic TLS from Let’s Encrypt or any ACME CA, hot-swapped into Kestrel | |
| mDNS / DNS-SD advertising of the app on the local network | |
| SSH remote forwarding, including zero-account quick tunnels | |
| cloudflared, ngrok and Tailscale agents, supervised |
Coming from Shiny HTTP Server
Section titled “Coming from Shiny HTTP Server”The protocol code, stores and options are the same; what changes is how a library attaches to the server:
server.MapX(...)becomesapp.MapX(...)on anyIEndpointRouteBuilder, including route groups, and returns an ASP.NET convention builder. The httpserver-only wrappers (RequireIpFilter,AllowAnyIp) are gone — use ASP.NET’s middleware for those.- Request handlers take
Microsoft.AspNetCore.Http.HttpContext; store and hook delegates keep their shapes. - Anything that followed the
HttpServerlifecycle follows the ASP.NET host instead — tunnels, discovery and certificate renewal start once Kestrel is listening.
AI Coding Assistant
Section titled “AI Coding Assistant”Step 1 — Add the marketplace:
claude plugin marketplace add shinyorg/skillsStep 2 — Install the plugin:
claude plugin install shiny@shinyOne plugin installs all 48 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.
Step 1 — Add the marketplace:
copilot plugin marketplace add https://github.com/shinyorg/skillsStep 2 — Install the plugin:
copilot plugin install shiny@shinyOne plugin installs all 48 Shiny skills. Your agent loads only the skill relevant to what you're building, so there's no cost to having them all available.


