The source code for my personal portfolio, developed with a focus on performance, SEO, modern architecture, and the best practices of the Next.js ecosystem.
This project was built with an architecture that prioritizes user and developer experience.
- 🚀 Performance First: Statically generated (SSG) with Next.js for near-instant loading and excellent Lighthouse scores.
- 🏗️ Modern Architecture: Built with Server Components (RSC) by default, minimizing JavaScript sent to the client and ensuring optimized rendering.
- 💅 Automated Code Quality: Linter and formatter integrated with BiomeJS (via Ultracite preset), ensuring consistency and preventing errors before each commit with Husky.
- 🎨 Modern and Responsive UI: Clean design that adapts to any device, with Light/Dark theme support, built with Chakra UI.
- 📧 Functional Contact Form: Integration with EmailJS to send emails directly from the client.
- 🔎 SEO Optimized: Dynamic metadata and Open Graph tags for better indexing and sharing on social networks.
- Framework: Next.js 15 (with App Router)
- Language: TypeScript
- UI Library: Chakra UI
- Linting/Formatting: BiomeJS (com preset Ultracite)
- Commit Automation: Husky + lint-staged
- Package Manager: pnpm
To run this project locally, follow the steps below:
-
Clone the repository:
git clone https://github.com/vWernay/portfoliov2.git cd portfoliov2 -
Install the dependencies:
pnpm install
-
Setup environment variables:
- Create a
.env.localfile in the project root, following the example of.env.example:
NEXT_PUBLIC_EMAILJS_SERVICE_ID=YOUR_SERVICE_ID NEXT_PUBLIC_EMAILJS_TEMPLATE_ID=YOUR_TEMPLATE_ID NEXT_PUBLIC_EMAILJS_PUBLIC_KEY=YOUR_PUBLICK_KEY
- Create a
-
Start the development server:
pnpm run dev
The application will be available at http://localhost:3000.
The next steps planned for the project are:
- Add unit tests with Jest/Vitest.
- Implement multi-language support (i18n).
This project is licensed under the MIT License. See the [LICENSE] file for more details.
Copyright © 2025 Victor Lellis.
