Mail

How I Built My Portfolio – Part 1

27 Jul 2025

Hi devs,

Welcome to the behind-the-scenes breakdown of chiristo.dev — my personal developer portfolio and blog.

This post is for developers and curious readers who want to understand how to plan, structure, and build a modern portfolio site. I’ll walk you through the decisions I made, the tools I chose, the folder structure I follow, and how I set things up — along with the thought process behind each choice.

This is not a step-by-step tutorial, but rather a developer’s guide — something you can read through, get inspired by, and adapt for your own projects.

If it gets too long, don’t worry — I’ll split it into parts and continue right where we leave off.

Table of Contents

Prerequisites

This blog assumes you have a basic understanding of

If you’re unfamiliar with any of these, don’t worry. The primary motive of this blog is to showcase how I planned my portfolio and how I structured it from scratch. So, language is not a problem to get started with the things. Additionaly, I’ll keep things beginner-friendly and link resources wherever helpful.

Why I Built chiristo.dev

Like most developers, I wanted a place to:

I didn’t want to just follow a template. Templates are great for speed, but I wanted something fully custom — a site that reflects how I think about software architecture and developer experience.

“Design inspiration? Yeah, I borrowed the vibe from my senior dev — but the Figma file is all mine, I promise!” 😄

Tech Stack Summary

Why This Tech Stack

My Roadmap

I strictly want to develop this portfolio for various release cycles. So I came up with proper versioning and release cycles. I followed 3 week personal spirint for my 1st and 2nd version and I successfully deployed it. Soon I’ll start to work on the version 3. Here’s the draft version 1, version 2 and version 3 features

✅ Version 1 Goals (completed):

✅ Version 2 (completed):

🚧 Version 3 (soon):

Folder Structure Overview

I followed this folder structure

chiristo.dev/
├── public/                 # Static assets
├── src/
│   ├── app/                # App Router structure (routing)
│   ├── assets/             # svg assets
│   ├── components/         # Reusable UI components
│   ├── hooks/              # Custom hooks
│   ├── data/               # Static content
│   ├── sections/           # Page-level layout blocks
│   ├── errors/             # Global error boundaries
│   ├── services/           # Firebase setup and utils
│   ├── styles/             # Global SCSS + variables
│   └── utils/              # Shared helper functions
├── .gitignore/   
├── package.json   
├── package-lock.json 
├── README.md
└── etc.,

Each folder is cleanly separated to follow the Single Responsibility Principle — every directory has its own job.

That said, feel free to tweak the structure based on your own project needs — like I mentioned earlier, this is just a guide, not a strict tutorial.

What’s Next?

In the next blog post (Part 2), I’ll cover:

Thanks for reading!

Stay Connected

GitHub LinkedIn X Daily.dev Email

© 2025 Chiristo. Feel free to share or reference this post with proper credit