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.

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