All work

Personal project · Portfolio · 2026

This site, built like a CV

A CV-shaped portfolio built with Astro and deployed on Cloudflare Workers, made to learn the framework and give the work a place to live.

Question I started withHow simple can the structure be while the page still reads like a designed CV?

Role
Design, front-end, content, deployment
Timeline
Nov 2026 — Present
Team
Solo
Status
Live at kamilagi.dev
Typographic cover for the kamilagi.dev portfolio case study.
Personal project · Portfolio — cover illustration

The brief

I wanted a portfolio that reads like the document it replaces: a CV you can scroll, with clear sections and no template showing through. The constraint was structural — keep the markup simple enough that I could explain every part of it.

The site was also the reason to learn Astro, widen my front-end knowledge, and give my projects a place to live beyond a GitHub repository.

How it is built

Astro renders the pages statically. Personal data lives in src/data/site.ts; each project is a Markdown file in a content collection, so adding a case study means adding a file rather than touching the layout. Styling is hand-written CSS driven by a single set of design tokens.

The site is deployed on Cloudflare Workers. There is no client-side framework and no runtime JavaScript beyond what the browser provides.

What I learned

  • Astro’s content collections make a project list a data problem, not a layout problem.
  • A static site still needs a image pipeline: covers and the Open Graph cards are generated at build time.
  • Simple structure is a feature. A section that cannot justify its place gets cut.

What is next

The portrait and project covers are still temporary artwork. The next pass replaces them with a real photo and screenshots from the three projects.