Why I Built My Portfolio with Svelte + Sanity (and Never Touch Code to Publish Posts)

An overview of my portfolio website.

Why I Built My Portfolio as a Publishing Platform

I need explanations for my projects.

Most portfolio websites show a link and maybe a sentence or two. No context, no thought process, no "why". That never sat right with me.

When I started designing my portfolio, I knew I wanted it to be blog-style. I wanted space to explain decisions, document experiments, and tell the story behind the work.

There are plenty of pre-made blogging platforms. Wordpress, Wix, Substack, even the OG Blogger.com. They work. But none gave me the sleek, polished, interactive UI/UX I was looking for. I could have designed the interface myself and hard-coded everything, but that would mean opening VS Code every time I wanted to add a project or fix a typo.

That wasn't the workflow I wanted.

I wanted my portfolio to behave like a publishing platform, not a static site.

Why I Chose Svelte

For the frontend, I chose Svelte over React or plain HTML. When browsing other Svelte portfolios I kept noticing that the animations and UI just felt smoother. It's hard to quantify, but the difference is noticeable.

Svelte's bundle size is also insanely small. This portfolio is also a small project, but it is meant to become content-heavy over time, so performance mattered. Faster load times, fewer resources, and better responsiveness were things I couldn't ignore.

For a site that's mostly about reading and interaction, Svelte felt like the right tool.

Why I Used Sanity (and What It Enabled)

I chose Sanity, and while there was a learning curve, it completely changed how I approached content. Instead of writing Markdown files or hard-coding layouts, I built custom content components for everything I wanted to support.

  • Headings and paragraphs
  • Images and videos
  • Code blocks
  • Indentation and alignment
  • Links, numbered lists, bullet points
  • Paragraph spacing
  • Custom "bubble" backgrounds with preset colors.

That bubble feature is something designed specifically for this site. It is a part of how my content system works. I just love the way it looks.

Separating Content from Presentation

The final setup is very simple. Sanity handles the content. Svelte handles the presentation. The Sanity dashboard lets me writes posts the same way I would on a real blog. Without touching code and pushing commits. Meanwhile, Svelte focuses entirely on how everything looks and feels.

Who This Setup Is For

This build is great for developers who want control and flexibility without sacrificing writing flow. It's especially useful for long-term portfolio building, where projects evolve and explanations matter as much as visuals.

Also shout-out to Johnny! His content helped me so much with understanding Sanity.

This video specifically.

There's no excuse not to document your work when your portfolio makes it this easy.

Keep building. Keep writing. Your projects deserve more than just a link.