How This Site Is Built
This site is a focused, production-ready Blazor application designed for clarity, performance, and easy iteration. It was written from the ground up and is currently hosted on DigitalOcean.
Overview
- Framework: .NET 9 + Blazor with Razor Components (server interactivity)
- Styling: Bootstrap + a custom theme defined in
/wwwroot/css/site.css - Content: Markdown files in
/wwwroot/content/projectsrendered at runtime - Observability: OpenTelemetry wired to Azure Monitor/App Insights when configured
- Hosting: DigitalOcean
- CI/CD: GitHub Actions (build, test, publish, deploy)
- Media: Project images are served from Azure Blob Storage. The hero/background image is kept under ~1 MB for quick first load and then cached for 30 days.
Stack details
- Blazor UI with server interactivity keeps the app responsive while minimizing browser complexity.
- A few small JavaScript modules enhance visuals and UX (e.g.,
experienceChart.js,splash.js,theme.js, and a fibonacci canvas demo). - Project content is Markdown-driven, converting markdown to HTML at request time.
- Reliability features include HTTPS redirection, antiforgery and some static asset mapping.
- Telemetry sending traces/metrics to Azure Monitor when configured.
Hosting and media
- Hosted on DigitalOcean.
- Project images live in Azure Blob Storage.
- The site background is stored locally in the project and optimized to be < 1 MB to minimize bandwidth and improve load time.
CI/CD (GitHub Actions)
On pushes to main:
- Build the solution.
- Run tests.
- Deploy to DigitalOcean via Github Actions.
Local development
- Run with
dotnet runfrom the web project.
Questions about the setup or improvements you'd like to see? Please reach out.