maurogioberti.github.io

Mauro Gioberti

My Personal Portfolio ๐Ÿš€

Welcome to my personal website! ๐ŸŒŸ
A hub for my portfolio, blog, talks, resume, and professional services.

โญ Stars are welcome ๐Ÿ˜Š ๐Ÿ› Report an issue ๐ŸŒ Visit my site

Built with Next.js, Clean Architecture, inspired by Codescouts React Clean Architecture

maintained - yes contributions - welcome license - MIT


๐Ÿš€ About This Project

This website is my personal platform to showcase my work, share blog posts, and present my professional services.

Built with Next.js 15, React 19, TypeScript, and Tailwind CSS 4, following Clean Architecture principles.

The codebase is designed to keep business logic independent from the UI layer, with clear separation between domain models, use cases, infrastructure, and presentation. Dependency Injection is used to wire services, repositories, and use cases in a predictable and maintainable way.

The goal is simple: ๐Ÿ‘‰ Keep business logic independent from the UI
๐Ÿ‘‰ Make everything scalable, testable, and easy to evolve

โœจ Key Features

๐Ÿ›  Tech Stack


๐Ÿš€ Getting Started

โฌ‡๏ธ Clone this repo

git clone https://github.com/maurogioberti/maurogioberti.github.io.git
cd maurogioberti.github.io

๐ŸŸข Set Node version (recommended)

nvm install 25.8.1
nvm use 25.8.1

๐Ÿ“ฆ Install dependencies

npm install

๐Ÿ Run in development

npm run dev

๐Ÿงช Run tests

npm test

๐Ÿ“ฆ Build

npm run build

๐ŸŒ Preview production (static export)

npx serve@latest out

No environment variables required. Everything runs from JSON files in src/data.


๐Ÿ“‚ Folder Structure

This project is structured to align with Clean Architecture principles:

project-root/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ domain/          # Business entities and domain models
โ”‚   โ”‚   โ”œโ”€โ”€ application/     # Use cases (application services)
โ”‚   โ”‚   โ”œโ”€โ”€ infrastructure/  # Repositories, services, data access
โ”‚   โ”‚   โ””โ”€โ”€ crosscutting/    # Shared concerns (DI, mapping, SEO, utils)
โ”‚   โ”œโ”€โ”€ app/                 # Next.js App Router entrypoint
โ”‚   โ”‚   โ”œโ”€โ”€ layout.tsx       # Root layout
โ”‚   โ”‚   โ”œโ”€โ”€ page.tsx         # Root page
โ”‚   โ”‚   โ”œโ”€โ”€ globals.css      # Global styles & design tokens
โ”‚   โ”‚   โ”œโ”€โ”€ components/      # Reusable UI components (Header, Footer, Theme, etc.)
โ”‚   โ”‚   โ”œโ”€โ”€ pages/           # App Router segments (home, blog, talks, resume, services)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ home/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ blog/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ talks/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ resume/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ services/
โ”‚   โ”‚   โ””โ”€โ”€ standalone/      # Standalone pages (e.g. linktree, talktree)
โ”‚   โ”œโ”€โ”€ data/                # JSON data files (posts, profile, timeline, services, recommendations)
โ”‚   โ””โ”€โ”€ di.ts                # Dependency injection configuration (wires services, repos, use cases)
โ””โ”€โ”€ public/                  # Static assets (images, icons, open graph assets)

This structure ensures:


๐Ÿงช Testing

Testing is focused on business logic, repositories, and view models:

Run the full test suite with:

npm test

๐Ÿ“œ License

Released under MIT License by Mauro Gioberti.