Mauro Gioberti

Mauro Gioberti

My Personal Portfolio πŸš€

Welcome to my personal website! 🌟
A hub for my portfolio, blog, and professional services.

⭐ Stars are welcome 😊 πŸ› Report an issue 🌐 Visit my site

Built with Next.js, Clean Architecture, used Codescouts React Clean Architecture as Reference

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. It’s built with Next.js 14 (App Router), TypeScript, and Tailwind CSS, following Clean Architecture principles.

The codebase is organized 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 together in a predictable way.

Key Features

πŸ›  Tech Stack


πŸš€ Getting Started

⬇️ Clone this repo

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

πŸ‚ Install dependencies

npm install

🏁 Run the app in development

npm run dev

πŸ§ͺ Run the test suite

npm test

πŸ“¦ Create a production build

npm run build

🌐 Start the production server

npm start

No environment variables are required to run the project locally; all content is loaded 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.