Full Stack Web Developer in Switzerland
Web products built with focus.
I design and build fast, maintainable websites and web applications for teams that care about clarity, performance, and long-term ownership.

2026 / Web App / SaaS
Fixture.cc Tournament Platform
A full tournament management platform built with Nuxt 4, Drizzle ORM, and PostgreSQL: format generation for round-robin, elimination, Swiss, and group-knockout competitions, a full admin panel with branding and scheduling, and capability-based access control with encrypted session cookies.

2026 / Website / Content Platform
Bemo Buying Guide Platform
A content platform for a product-review and buying-guide site, built on Astro content collections with a validated MDX schema, generated structured data, and a static build deployed behind Docker and Traefik.

2026 / Website / Migration
tiagogalvao.com: WordPress to Astro Migration
A full rebuild of my own portfolio site, moving tiagogalvao.com from a fully custom WordPress theme to a schema-validated Astro codebase with type-safe content collections, MDX case studies, and a verified 100/100 Lighthouse home page.

2023 / Landing Page
Car Auction Landing Page
A custom landing page for a car auction company, built to communicate the offer clearly across devices and give the internal team control over content. The implementation used TG Starter Theme to keep the frontend lean and the backend practical.
Unlighthouse: Lighthouse Audits for Your Whole Site
Unlighthouse scans your whole site with Google Lighthouse in parallel. Here's how it differs from Lighthouse CI, and how to wire it into CI with a budget.
How to Dockerize an Astro Site with Bun for Production
A hands-on guide to running an Astro site in Docker with Bun: a four-stage Dockerfile, a non-root runtime user, health checks, and CI publishing to GHCR.
AI Website Builder vs Web Developer: Which Should Your Business Choose?
Compare AI website builders and professional developers across cost, speed, SEO, ownership, integrations, and long-term business risk.
Nuxt 3 is end-of-life: a practical Nuxt 4 migration guide
Nuxt 3 is now end-of-life. Migrate to Nuxt 4 safely with a practical sequence for dependencies, directories, data fetching, TypeScript, tests, and rollout.