All projects

in production · bernardoiannini.com · 2026

bernardoiannini.com · This Site

This portfolio is a static site written by hand in vanilla HTML, CSS and JavaScript, with no frameworks anywhere in the stack. Every visual decision lives in a custom design system driven by CSS tokens, and the motion layer runs on GSAP 3 with ScrollTrigger and Lenis smooth scrolling.

HTML5CSS3JavaScript (vanilla)GSAP 3ScrollTriggerLenisNode.jsMarkdownSupabaseVercel
bernardoiannini.com · This Site

How it was built

This portfolio is a static site written by hand in vanilla HTML, CSS and JavaScript, with no frameworks anywhere in the stack. Every visual decision lives in a custom design system driven by CSS tokens, and the motion layer runs on GSAP 3 with ScrollTrigger and Lenis smooth scrolling. Remove GSAP and the site still works from end to end.

The EN/PT switch is an i18n engine written from scratch: the entire site changes language without reloading the page. The Newsroom is compiled at build time by a Node script that turns Markdown into static pages, managed through a local admin panel backed by Supabase. Deploys are fully static on Vercel, with sitemap, aria attributes and reduced-motion support.