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 and content management system built with ASP.NET Core 10 and Blazor Server. It implements a full Clean Architecture stack—Domain, Application, Infrastructure, API, and UI layers—giving you a maintainable, testable foundation you can extend with blog posts, portfolio projects, and custom pages.

Quickstart

Clone the repo and run the app locally in under five minutes.

Architecture

Understand the Clean Architecture layers and how they fit together.

Authentication

Cookie-based auth with ASP.NET Core Identity password hashing.

API Reference

Minimal API endpoints for login and logout.

What’s inside

The project is organized into five distinct layers that keep business logic decoupled from framework concerns:

Domain

The User entity and its factory method live here, free of any framework dependencies.

Application

Use cases (AuthenticateUser, RegisterUser, LogoutUser) and port interfaces that define how the domain talks to the outside world.

Infrastructure

EF Core + SQLite adapters, cookie session management, and the Identity password hasher.

UI

Blazor Server pages and layouts including the protected admin panel.

Get up and running

1

Clone the repository

Download the source code from GitHub and navigate into the project directory.
git clone https://github.com/Andrespeerez/porfolio-blog.git
cd porfolio-blog
2

Restore dependencies

Restore all NuGet packages declared in porfolio-blog.csproj.
dotnet restore
3

Apply database migrations

Run EF Core migrations to create the blog.db SQLite database file.
dotnet ef database update
4

Run the application

Start the Blazor Server app. The dev admin user is seeded automatically on first run.
dotnet run
5

Open the app in your browser

Navigate to http://localhost:5058 and go to /login. Use the seeded credentials from appsettings.Development.json (admin@andresblog.com / Admin123!) to sign in and access the protected /admin panel.
The admin user seeder only runs in the Development environment. See Seeding for details on configuring seed credentials.

Build docs developers (and LLMs) love