**
Building a portfolio is a rite of passage for every developer. However, I didn’t just want a digital business card; I wanted a high-performance, SEO-optimized machine that actually reaches people. Here is the story of how I built mine, the challenges I faced, and the technical decisions I made.
🛠 The Tech Stack
To ensure the site was both fast and maintainable, I chose a modern stack:
React (Vite): For a lightning-fast development experience and component-based architecture.
Tailwind CSS: For a sleek, dark-themed UI without the overhead of massive CSS files.
Framer Motion: To add subtle, professional animations that improve user engagement.
Vercel: For seamless CI/CD and global hosting.
🚧 Overcoming Challenges: Pivoting from EmailJS to Formspree
One of the biggest hurdles was the contact form. Initially, I used EmailJS. While great for basic setups, I ran into "412 Precondition Failed" errors due to domain restrictions and reached subscription limits quickly during testing.
Instead of getting stuck, I pivoted to Formspree. By using a simple fetch request to a secure endpoint, I removed the need for extra client-side libraries and bypassed the domain headache entirely.
🔍 SEO & Technical "Under the Hood" Polish
I spent significant time on the "invisible" parts of the site that many developers overlook:
JSON-LD Structured Data: I implemented Schema.org protocols so search engines see me as a "Person" and a "Developer," not just a collection of div tags.
Open Graph & Twitter Cards: I optimized my meta tags so that sharing my link on LinkedIn or X generates a beautiful, high-click-through preview.
Performance Optimization: I used loading="lazy" for gallery images and preloaded critical hero assets to ensure a top-tier Lighthouse score.
🚀 The Result
The final product is a responsive, accessible portfolio that represents my growth as a Frontend & Mobile App Developer.
Check it out live: https://vicx-portfolio.vercel.app/
📈 What’s Next?
I’m now focusing on integrating the Dev.to API to pull my latest articles directly into my portfolio, keeping my content fresh and showing my commitment to the developer community.**
Top comments (0)