Skip to content
DD
← Back to projects

2026 · Astro · TypeScript · Tailwind CSS · Playwright

duartedomingos.net

My personal website, rebuilt from scratch with Astro. Static, fast, accessible and in three languages.

The site you’re looking at. The first version, from 2022, was a Bootstrap template with the HTML copied three times, once per language. I rebuilt it from scratch so it also shows how I work on the front-end.

Key decisions

  • Astro, no JavaScript by default. The whole site is generated as static HTML. There are only three small scripts: light/dark mode, the mobile menu and the 404 page.
  • Three languages without duplicated code. Routes, interface text and content are resolved per language in a single place; components know nothing about languages.
  • Validated content. Each project is a folder with one Markdown file per language. If a field or a language is missing, the build fails with a clear message.
  • Automated quality. Unit tests with Vitest, end-to-end tests with Playwright, an axe accessibility audit on every page and Lighthouse with a minimum score of 95 in every category.
  • Continuous deployment. Every change goes through GitHub Actions and is published to Firebase Hosting, with a preview URL for each pull request.