Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Andrespeerez/porfolio-blog/llms.txt

Use this file to discover all available pages before exploring further.

Porfolio & Blog CMS is a self-hosted personal website built by Andrés Pérez Guardiola — Full Stack Developer. It combines a developer portfolio and a content management system for blog posts into a single, cohesive ASP.NET Core 10 application. The UI is rendered entirely with Blazor Server, meaning all component logic runs on the server and is streamed to the browser over a SignalR connection — no separate JavaScript framework required. The project is designed for developers who want full ownership of their personal site without relying on a third-party CMS platform, and whose codebase is structured to be extended with new portfolio entries and blog content over time.

Key Features

Clean Architecture

Five clearly separated layers — Domain, Application, Infrastructure, Api, and UI — enforce strict dependency rules and make the codebase easy to extend or test independently.

Cookie Authentication

Secure cookie-based authentication powered by the ASP.NET Core cookie scheme and ASP.NET Core Identity’s password hasher, with an auto-seeded admin account in Development.

SQLite with EF Core 10

A lightweight SQLite database managed entirely through EF Core 10 migrations — no external database server required for local development or small deployments.

Blazor Server UI

All pages are Blazor Server components, giving you real-time interactivity and full C# on both sides of the wire, with a layout system built around MainLayout and NavMenu.

Technology Stack

TechnologyRole
ASP.NET Core 10Web framework and dependency injection host
Blazor ServerInteractive UI components rendered server-side
EF Core 10 + SQLiteObject-relational mapper and embedded database engine
ASP.NET Core IdentityPassword hashing via PasswordHasher<T>
Cookie AuthenticationSession management through the ASP.NET Core cookie middleware

Architecture Overview

The project follows Clean Architecture, splitting concerns across five layers. Each layer has a single, well-defined responsibility, and the dependency rule is enforced strictly: outer layers depend on inner layers, never the reverse.
LayerResponsibility
DomainCore business entities and rules. Contains User.cs with no framework dependencies whatsoever.
ApplicationUse cases (AuthenticateUser, RegisterUser, LogoutUser), port interfaces (repositories and services), and DTOs. This layer orchestrates domain logic without touching infrastructure.
InfrastructureConcrete adapters that fulfil the Application interfaces — EF Core persistence, cookie session management, and Identity password hashing.
ApiMinimal API endpoint registrations (POST /api/auth/login, POST /api/auth/logout) that delegate to Application use cases.
UIBlazor Server components and pages. Depends on Application use cases and is completely decoupled from Infrastructure concerns.
Porfolio & Blog CMS is a personal portfolio project released under the Apache-2.0 license. The codebase is intentionally designed to grow: new Blazor pages, additional domain entities for blog posts and portfolio projects, and further API endpoints can be added by following the same layered conventions already in place.

Build docs developers (and LLMs) love