portfolio
My personal portfolio website built with Next.js, TypeScript, and React. Features internationalization (i18n), comprehensive testing (Cypress, Vitest), and a Storybook component library.
Languages
Technologies
# README.md
π¨βπ» Leonardo Silvatti | Personal Portfolio
Official repository for my personal portfolio. Built not just to showcase my projects and resume, but to serve as a practical demonstration of a scalable, clean, and highly performant front-end architecture.
The project adopts a strict Atomic Design approach, strong typing, automated testing, and continuous integration with external services. It is not intended for open-source contributions, serving exclusively as my digital space hosted at leonardo.silvatti.com.br.
π Table of Contents
- Overview
- Tech Stack
- Architecture Highlights
- Project Structure
- Maintenance & Content
- Quality & Testing
- License
π Overview
- Purpose: Present my professional journey, resume, and technical details of both personal and professional projects.
- Design System: Modern, dark aesthetic (with subtle Vaporwave touches), focused on high contrast and accessibility.
- Performance: Aggressive asset optimization, lazy-loading for heavy libraries (like the Markdown parser), and native Next.js SSR/SSG.
π Tech Stack
| Category | Technology |
|---|---|
| Framework | Next.js (App Router) |
| Language | TypeScript |
| Styling | TailwindCSS + CVA + tailwind-merge |
| Internationalization | next-intl (pt-BR / en-US) |
| Icons | Lucide React |
| Unit Testing | Jest + React Testing Library |
| E2E Testing | Cypress |
| UI Documentation | Storybook |
| Integrations | GitHub GraphQL API |
β¨ Architecture Highlights
- Strict Atomic Design: The interface is strictly divided into
atoms,molecules,organisms, andtemplates. This ensures a high level of reusability and facilitates isolated testing. - Dynamic Integration (GitHub): The projects page consumes the GitHub API to fetch repositories, metrics (stars, forks), and
README.mdcontent in real-time. - Markdown Visualizer: Custom Markdown rendering engine using
react-markdownandremark-gfm, featuring advanced Syntax Highlighting (Dracula theme) for code blocks imported from GitHub. - Error Resilience: Robust hydration handling and route fallbacks.
π Project Structure
portfolio/
βββ app/ # Next.js App Router (Routes and Locale configuration)
βββ components/ # Componentized UI (Atomic Design)
β βββ atoms/ # Base elements (Buttons, Typography, Chips)
β βββ molecules/ # Simple compositions (NavMenu, ProjectActions)
β βββ organisms/ # Complex sections (HeroSection, ProjectHero)
β βββ templates/ # Page layouts (CenteredLayout)
βββ constants/ # Global variables and themes
βββ contexts/ # React Contexts (ThemeContext)
βββ cypress/ # End-to-End test cases
βββ i18n/ # Routing setup and next-intl config
βββ lib/ # Utilities and integrations (GitHub API, helpers)
βββ messages/ # JSON translation dictionaries (br, en)
βββ public/ # Static assets (CV PDFs, favicon, images)
βββ __tests__/ # Unit test suiteπ Maintenance & Content
The data update flow was designed to require minimal friction:
- Dynamic Projects: New repositories appear automatically by adjusting tags/topics on GitHub. The content displayed on the details page is the repository's own
README.md, processed securely and responsively. - Translations (i18n): All static text on the site resides in the
messages/directory. To add or change text, edit thecommon.json,components.json,layout.json, orpages.jsonfiles within the respective locale (broren). - Resume: The physical PDF files are located at
public/Resume_Leonardo_Silvatti_Silva.pdfandpublic/Curriculo_Leonardo_Silvatti_Silva.pdf.
π§ͺ Quality & Testing
Code quality is guaranteed by three pillars of verification:
- Unit Tests (
__tests__/): Focused on the individual behavior of Atoms and Molecules, executed via Jest. Structured mocks ensure the isolation of dependencies likenext-intlandnext/image. - End-to-End Tests (
cypress/): Ensure that critical navigation flows (like switching languages, accessing the resume, and contact forms) work perfectly in a real environment. - Storybook (
.storybook/): Used for Component-Driven Development (CDD). It allows visualizing all TailwindCSS variant states and validating responsiveness in isolation.
βοΈ License
All personal content, texts, resume, and logical design of this repository are the property of Leonardo Silvatti. The source code is open for study, but the use, reproduction, or deployment of this portfolio in its entirety for personal use by third parties is not authorized.
For contact, please use the links available in the Connect section of the site.