
Reusable Portfolio Website
.NET 8 Blazor Hybrid
A Blazor WebAssembly based portfolio generator powered by a .NET MAUI application, automating GitHub Pages deployment. Enhanced usability with dark mode, local storage support, and performance optimization through prerendering with React-Snap.
Overview
This portfolio website is a fully reusable, data-driven Blazor WebAssembly application designed so that anyone can fork the repository, update a single JSON file, and have a professional portfolio site deployed to GitHub Pages within minutes. The entire site, from experience and education to projects and skills is controlled through websiteData.json, requiring zero code changes to personalize.
Architecture & Design
The project follows a clean architecture with two main layers: a Blazor WebAssembly front-end project and a shared .NET class library. The library contains all components, domain models, and infrastructure services, making it possible to reuse the same components in a .NET MAUI hybrid app for desktop deployment. MudBlazor provides the entire UI component library, ensuring a consistent, modern Material Design look with built-in dark mode support and responsive layouts.
Deployment Pipeline
The site is automatically built and deployed via a GitHub Actions workflow. On every push to the main branch, the workflow restores dependencies, publishes the Blazor WebAssembly app, runs React-Snap for prerendering to generate static HTML snapshots for SEO, and deploys the output to GitHub Pages. The entire process is zero-touch after the initial setup, making it trivial to keep the portfolio up to date by simply editing the JSON data file and pushing a commit.