Digest
Digest is a read-later app. A signed-in user saves a link. An Azure Function fetches the page and asks Claude for a three-bullet summary and tags. The result shows as a card in the user's digest.
It is a small, production-shaped .NET 10 example built with Aspire: one AppHost runs everything locally with a dashboard, and the same AppHost deploys it to Azure Container Apps.
Links
| What | Azure | Local (aspire run) |
|---|---|---|
| App | https://digest.shawnunderwood.com | https://localhost:7178 |
| Aspire dashboard | https://aspire-dashboard.ext.delightfulsand-629abdcb.centralus.azurecontainerapps.io (Entra sign-in) | The URL aspire run prints |
| Admin panel | https://digest.shawnunderwood.com/admin | https://localhost:7178/admin |
| Invites | https://digest.shawnunderwood.com/invites | https://localhost:7178/invites |
| Azure resources | Azure portal, resource group rg-aspire-digest |
|
| Source | https://github.com/shawn-underwood/aspire-digest (private) |
The admin panel and invites need the admin account with two-factor authentication turned on.
The Azure SQL database pauses after an hour idle and the app scales to zero, so the first request after a quiet spell takes up to a minute.
Pages
| Page | Contents |
|---|---|
| Aspire dashboard | Following a link through traces, structured logs and metrics |
| Architecture | Projects, request flow, telemetry |
| Run locally | Prerequisites, secrets, aspire run, tests |
| Deploy | aspire deploy, deployment profiles, teardown |
| Security | OWASP Top 10:2025 and OWASP Top 10 for LLM Applications, item by item |
| Cost | What each Azure resource costs |
| Demo script | A walkthrough for presenting the app |
| API reference | Generated from the XML comments in the code |