news Mar 25, 2026 · 2 views · 2 min read

Building My Personal Website After Years of Delay

Discover how a seasoned developer overcame procrastination to finally build a personal website. Learn about the tech stack, engineering challenges, and valuable lessons from this journey.

Overcoming the Delay

After nearly two years of postponement, I finally launched my personal website. Initially, I purchased a domain and hosting from GoDaddy in March 2024. By June, I had a detailed Figma design, yet progress stalled. Despite my extensive experience in full-stack development, building something personal presented unique challenges.

The Turning Point

For years, I defaulted to sharing my LinkedIn or Upwork profiles when asked about my work. This wasn't ideal and motivated me to create a platform that represented my journey on my terms.

Choosing the Tech Stack

Originally, I planned to use Vue.js and Laravel but pivoted to a more robust setup. The final stack includes Nuxt 3 for the frontend and ASP.NET Core 8 for the backend, hosted on a VPS. This architecture supports a dynamic blog, AI-powered content rewriting, and CI/CD pipelines.

Backend:

  • ASP.NET Core 8
  • PostgreSQL 16
  • AWS S3 for media
  • Claude API for AI content

Frontend:

  • Nuxt 3 with Vuetify
  • TypeScript and Pinia
  • Server-side rendering for SEO

Key Engineering Decisions

Nuxt vs. Vue for SEO

Initially, I used Vue, but SEO concerns led me to migrate to Nuxt 3 for server-side rendering. This transition improved search engine visibility significantly.

Avoiding Unstable Releases

I attempted Nuxt 4 but reverted to Nuxt 3 due to stability issues. This underscored the importance of choosing reliable frameworks over the latest versions.

Translating Design to Code

The Figma design required meticulous attention to detail to achieve pixel-perfect results. Ensuring that elements matched the design specifications helped maintain a professional look.

Navigating Technical Challenges

Dockerized Pipeline for EF Core Migrations

I implemented a separate Docker image to handle EF Core migrations, ensuring a clean separation between build-time and runtime concerns.

Routing Conflicts

To resolve conflicts between my admin panel and Umami’s, I assigned Umami a subdomain, ensuring no path-prefix issues.

Current Website Features

  • Comprehensive blog with AI content rewriting
  • Automated cross-posting to multiple platforms
  • Privacy-friendly analytics via Umami
  • CI/CD pipeline ensuring swift updates

Lessons Learned

Starting early with Nuxt would have saved time. Prioritizing stable frameworks over experimental ones is crucial for production projects.

Encouragement for Procrastinators

Your personal website doesn’t need to be perfect from day one. Start building, and let the momentum drive you. The key is to take the first step and begin coding. Your domain and design are ready; now it’s your turn to bring them to life.

Discussion

0 Comments

Leave a Comment

Comments are moderated and will appear after approval.