Back to Blog

Building My Digital Playground: A Look Inside This Portfolio

10/12/20253 min read

A desk with a computer showing code, a cup of coffee, and some design sketches.

Welcome to a special behind-the-scenes look at my personal portfolio! This site is more than just a resume; it's a living project where I experiment with new technologies and showcase my passion for building great web experiences. In this post, I'll walk you through the architecture, the cool features I've implemented, and what I'm planning for the future.

The Core Tech Stack

I chose a modern, server-first tech stack to ensure the site is fast, scalable, and a joy to develop.

  • Framework: Next.js (with the App Router) is the backbone. Its server-first approach with React Server Components makes the site incredibly performant.
  • Styling: I'm using Tailwind CSS for its utility-first workflow, which allows for rapid and consistent styling. The UI components are from ShadCN UI, providing a beautiful and accessible base.
  • Backend & Real-time Features: Firebase is the powerhouse behind the site's dynamic elements. I'm using Firestore for storing data from the contact form and blog reactions, and the Realtime Database for the live visitor counter.
  • AI Integration: The AI assistant is powered by Genkit, Google's open-source generative AI framework, with the Gemini model providing the answers.

Key Features Under the Hood

This portfolio is packed with interactive features designed to make it more engaging.

1. Live Visitor Counter & Total Visits

The footer features a live counter showing how many people are currently on the site and where they're from. This is built using the Firebase Realtime Database, which provides low-latency synchronization between clients. The "total visits" counter uses a combination of localStorage and a Firebase transaction to ensure each unique visitor is counted only once.

2. AI-Powered Assistant

The chatbot in the corner isn't just a gimmick. It's a fully functional AI assistant built with Genkit. When you ask a question, it's sent to a server-side flow that queries the Gemini LLM with context from my portfolio (like my projects and experience). The response is then streamed back to the user for a real-time, conversational feel.

3. Gamification: The Badge System

To encourage exploration, I built a hidden achievement system. Badges are unlocked by performing certain actions, like visiting every page, using the AI chat, or even entering the classic Konami code. This state is managed on the client-side using localStorage and React Context, making it fast and purely browser-based.

4. Blog with Real-time Reactions

The blog is built using a simple but effective static site generation approach. Markdown files in the posts/ directory are read at build time, converted to HTML, and rendered as static pages for maximum speed. The emoji reactions are powered by Firestore, allowing for real-time updates whenever someone leaves a reaction.

What's Next?

A developer's work is never truly done, and this portfolio is no exception. Here are some things I'm thinking about for the future:

  • Deeper AI Integration: I plan to build an AI-powered image upscaler as a new side project and feature it here.
  • Custom Photography Portfolio: While I love using Pixieset, I'm building my own photography portfolio from the ground up to have complete creative control.
  • More Interactive Content: I'm always looking for new ways to make the site more engaging, so stay tuned for more experiments!

Thanks for taking a tour of my digital playground. I hope it gives you a better sense of how I approach my work and my passion for building for the web.

Enjoy this post?