Ethos Web Studio
The site of the studio I freelance with: bilingual services, projects and FAQ read from a database, scroll-driven motion and automatic deploys to the edge.

The context
Ethos Web Studio is the team I work with as a freelancer: websites, brand identity, SEO, photo and video. The site had to present the studio's services and work in Italian and English, and let them be updated without touching the code.
The approach
Services, projects, project write-ups, FAQ and videos come from Supabase. Each table keeps both languages in side-by-side columns, and a small helper picks the right one, falling back to Italian when a translation is missing. Fixed interface copy lives in the @nuxtjs/i18n translation files instead.
Scrolling is handled by Lenis, hooked into GSAP's ticker so inertia and ScrollTrigger stay in phase. The home opening is animated in pure CSS, off the JavaScript critical path, and page transitions use the View Transitions API with a fallback for browsers without it. With reduced motion on, Lenis never starts and animations drop to zero.
The contact form sends through Resend, with rate limiting and HTML escaping on the server. Social previews are generated automatically.
The outcome
The site runs on NuxtHub, on top of Cloudflare Workers: every push to the main branch goes through GitHub Actions and ships on its own.