Demo: Janeiro de Cima, a Schist Village on the Zêzere
2026Personal - Live
An unofficial tribute site for Janeiro de Cima, in Fundão, showing what a village, parish or municipality can have online. Hand-drawn SVG illustrations that follow Lisbon time from day to night, a full-screen walk through the village, an events calendar that clears past dates on its own and a Decap CMS panel so locals can edit content. Built with Astro and 9 KB of JavaScript, with no third-party scripts, 14 structured-data types for Google and AI assistants, llms.txt and a strict CSP. Includes a page explaining how it was built.
AstroTypeScriptSVGSEO / GEO / AEOJSON-LDDecap CMSCSPCloudflare Pages
Demo: Neighbourhood Café in Lisbon
2026Personal - Live
A full site for a fictional café in Lisbon, with a menu, online shop, events calendar and an interactive coffee-roasting lab. Built with Astro and 7 KB of JavaScript, CSS/SVG micro-animations, structured data for Google and AI assistants (Menu, Event, Product, FAQ), llms.txt and a hash-based CSP. Includes a page explaining how it was built.
AstroTypeScriptSEO / GEO / AEOJSON-LDCSPCloudflare Pages
Restaurant Website Demos
2026Personal - Live
One zero-dependency template that generates a full one-page site per restaurant from a single config file. Mobile-first, Lighthouse 97–100 across the board, AVIF/WebP images, per-restaurant SEO with Open Graph and Restaurant JSON-LD, and a strict CSP. The demos below are fictional showcases.
+ More demos on the way
HTMLCSSJavaScriptNode.jsSEOCloudflare Pages
Lisboa 2054
2026Personal - Experiment
An interactive scene of a Lisbon street at night, in the rain, after AI has taken over the city's infrastructure — wet calçada, azulejo façades, a yellow tram, neon, drones and ambient audio. Drawn entirely on a vanilla JS canvas.
CanvasJavaScriptWeb AudioGenerative art
Arcade
2026Personal - Playground
A small arcade of browser games I build to practice and experiment, sharing this portfolio's stack and design language.
Next.jsTypeScriptFramer Motion