Full Stack Engineer

2025Client: Nextjs Portalweb
Full Stack Engineer

Technologies

My personal playground for modern web development, built with Next.js 15.

Overview

This wasn't just about having a portfolio; it was about building something the right way. I used Next.js 15, React 19, and TypeScript to create a platform that serves as both my professional face and my technical blog.

Challenges

  • Content Chaos: I needed a way to manage static pages and blog posts without duplicating code or styles.
  • SEO at Scale: Managing sitemaps and metadata for a multi-language site manually is a nightmare.
  • GDPR: I wanted analytics, but I didn't want to be that site that spies on you without asking.
  • Testing: I break things. I needed a safety net.

Solution

Unified MDX System: I wrote a custom MDX handler. Whether it's a blog post or an "About Me" page, it uses the same components. I can drop in a <Quote> or a <CodeBlock> anywhere, and it just works.

Smart Sitemaps: I wrote a generator that crawls my content and builds the sitemap automatically, handling all the hreflang tags for internationalization.

Privacy First: I built a dual-storage cookie system. It respects your choice—if you say "no cookies," I really mean no cookies.

Testing: I set up Playwright to run end-to-end tests. It even checks for visual regressions so I don't accidentally break the layout.

Cool Features

Dynamic OG Images: The site generates social preview images on the fly using the Next.js ImageResponse API.

Reading Time: A neat little script calculates how long an article takes to read based on word count.

Tech Mapping: I created a utility that normalizes technology names (like mapping "React.js" and "react" to the same icon), so my stack lists always look clean.

The Tech

  • Frontend: Next.js 15.2, React 19, Tailwind CSS 4
  • Content: next-mdx-remote, sugar-high (for syntax highlighting)
  • Quality: Playwright for E2E and visual testing
  • Deploy: Vercel

Results

  • It's Fast: Aggressive caching strategies keep load times near instant.
  • It's Clean: The codebase is organized, typed, and easy to extend.
  • It Works: The automated tests catch bugs before they hit production, which saves me from late-night fixes.
Gerardo Perrucci
Let's connect

Interested in a similar project?

Schedule a call to discuss how I can help with your next project