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.