Back to Projects
Reusable Portfolio Website

Reusable Portfolio Website

.NET 8 Blazor Hybrid

Dec 2023 — Present

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.

Blazor
.NET MAUI
GitHub Pages
React-Snap
Dark Mode
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.

An unhandled error has occurred. Reload 🗙