lucablog

In progress · 2026

The site you're looking at: a portfolio for my photographs, videos and code, with a blog, in Italian and English. I built it from scratch starting in August 2026, partly to learn how the web works behind the scenes: how a page is made, how it gets published, how images are served without weighing it down.

What it does

It gathers the photography projects, each with its own layout (a grid, or a free one arranged by hand), the videos, the code projects and a blog. Every page exists in Italian and English; when a translation is missing, the site says so instead of hiding it.

Photographs come in several sizes, and the browser downloads only the one the screen needs. YouTube videos load only when you play them. There's a light and a dark theme, an RSS feed per language, and pages stay readable without JavaScript.

How it’s built

It's a static site, built with Astro and TypeScript. The content (posts, projects, videos) lives as Markdown and JSON files in the repository: Astro turns them into HTML pages, and no server does any work when someone visits them. Cloudflare Pages publishes them on every change to the main branch, and every other branch becomes a preview.

The photographs aren't in the repository: a small program resizes them into several AVIF sizes, uploads them to Cloudflare R2, and writes only their record into the repository.

Before publishing, the build checks types, the content security policy (CSP), the links between the two languages, and that every photo really exists. If something's off it stops, and the previous version stays online. Over 650 automated tests check the logic.

Stack

  • Astro
  • TypeScript
  • Cloudflare Pages
  • Cloudflare R2

Where it stands

It's been live at lucafoglia.com since 17 September 2026, and it grows piece by piece. I don't have a final version in mind: I'm exploring and learning, and the site will change along with me.

What’s next

Polishing the site on phones, adding cookie-free visit statistics, and writing on the blog about photography and what I learn while programming.