vinnymarquez.dev / articles / rebuilding my personal site (v4), this time with astro
May 5, 2026 3 min read #coding#portfolio

rebuilding my personal site (v4), this time with astro

i said v4 was already in my head. it wasn't a threat.

i said v4 was already in my head.

that was in december.

by march it was live.

why nextjs didn’t stay

the nextjs version worked fine.

that’s basically the problem.

“works fine” is not a reason to keep something.

the real issue was the architecture.

nextjs is a full react framework.

for a personal site that’s mostly static content, that’s a lot of machinery running behind something that doesn’t really need it.

every page load was hydrating a full react tree.

for what—a blog and a list of projects.

realistically, i was using maybe 20% of what nextjs is actually for.

the other 80% was just overhead i’d decided not to think about.

why astro

i’d been watching astro for a while.

the pitch is simple:

ship html. add javascript only where you actually need it.

they call it the islands architecture.

the idea is that most of a page is static, and only specific interactive components need to run in the browser.

for a personal site, that’s basically correct.

most of what i’m building is:

the interactive bits get a react island.

the rest is just html that ships fast and doesn’t apologize for it.

the architecture

astro handles routing, content, and rendering.

react handles anything interactive—the custom cursor, the hero component, hover cards.

these get client:load and run in the browser.

everything else stays static.

content lives in markdown and mdx files, loaded through astro’s content collections.

articles, projects, experience entries—all structured, validated at build time, not at runtime.

styling is split:

tailwind v4 runs through the vite plugin now, not postcss.

smaller, faster, less config.

dropping iamt2vi.com

the migration also meant finally consolidating everything.

i used to run iamt2vi.com as a separate blog.

different domain, different content, different maintenance overhead.

i didn’t renew it.

everything that was worth keeping is here now—articles migrated, projects documented, same content, one url.

the handle still lives on github.

the domain doesn’t.

simplifying felt better than maintaining two homes for the same person.

what’s different this time

the design is intentional in a way the previous versions weren’t.

brutalist on the surface—dark background, monospace type, sharp edges, minimal decoration.

but the actual reference point is cyberpunk 2077.

specifically the netrunner aesthetic.

the colour palette came from there first:

the kind of site that looks like it belongs in night city’s net, not a portfolio template.

the custom cursor has a label that follows it around.

the hero component is styled like a system readout.

the nav items behave like cli flags.

it’s very much a vibe before it’s a design system.

but it’s a consistent vibe, and that’s close enough.

v5

i don’t have v5 in my head yet.

which probably means this version will last longer than the others.

or i’ll find something new to migrate to in six months.

we’ll see.

▌ comments