"use client" import { useEffect, useState } from 'react' import BootSequence from './components/boot-sequence' import LangSwitcher from './components/lang-switcher' import { LangProvider, useLang } from './i18n/lang-context' const ChevronDown = () => ( ) // Trusted, hand-authored copy only (never user input) — dangerouslySetInnerHTML is safe here. function Html({ html, tag = 'span', className, style }: { html: string; tag?: 'span' | 'p' | 'div' | 'li' | 'h2'; className?: string; style?: React.CSSProperties }) { const Tag = tag as any return } export default function Home() { return ( ) } function Page() { const { t } = useLang() const [openAcc, setOpenAcc] = useState>({ 'exp-0': true, 'edu-0': true, }) const toggle = (id: string) => { setOpenAcc(prev => ({ ...prev, [id]: !prev[id] })) } const [mobileOpen, setMobileOpen] = useState(false) const closeMobile = () => setMobileOpen(false) const [booting, setBooting] = useState(false) const [bootKey, setBootKey] = useState(0) useEffect(() => { setBooting(true) }, []) useEffect(() => { if (booting) return const nav = document.querySelector('nav') const onScroll = () => { if (!nav) return nav.classList.toggle('nav-scrolled', window.scrollY > 8) } onScroll() window.addEventListener('scroll', onScroll, { passive: true }) const revealEls = document.querySelectorAll( '.sec-body, .hero-main, .hero-stats, .about-text, .about-card, .contact-body' ) const observer = new IntersectionObserver( entries => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('in-view') observer.unobserve(entry.target) } }) }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' } ) revealEls.forEach(el => observer.observe(el)) return () => { window.removeEventListener('scroll', onScroll) observer.disconnect() } }, [booting]) const reboot = () => { setBootKey(k => k + 1) setBooting(true) } return ( <> {booting && setBooting(false)} onReboot={reboot} />}
{/* NAV */} {/* ANNOUNCE STRIP */}
{t.strip.pill} {t.strip.cta} →
{/* HERO */}
{t.hero.status}
Pietro
Quintavalle
{t.hero.role}

{t.hero.thesis}

{t.hero.lead}

{t.hero.stats.map((s, i) => (
{s.val}{s.lbl}
))}
{/* ABOUT */}

{t.about.heading}

{t.about.card.map((c, i) => (
{c.t}
{c.d}
))}
{/* SKILLS */}

{t.skills.heading}

{t.skills.coreLabel}
ProxmoxDocker / LXCAnsible LinuxZFSCloudflare / Traefik TailscaleFail2Ban / CrowdSecGrafana / Prometheus
▪{t.skills.legendApplied} ▫{t.skills.legendExposure}
01
{t.skills.categories[0].name}{t.skills.categories[0].sub}
Proxmox VEUNRAIDTrueNAS DockerLXCKVM LinuxWin ServerAD
02
{t.skills.categories[1].name}{t.skills.categories[1].sub}
VLANCloudflareAAAA/DNS CF TunnelsTailscaleFail2Ban CrowdsecUFWAutheliaTraefik
03
{t.skills.categories[2].name}{t.skills.categories[2].sub}
PythonTypeScriptReact Next.jsDjangoSQL BashAnsibleHTML/CSSSoldering
04
{t.skills.categories[3].name}{t.skills.categories[3].sub}
GrafanaPrometheusUptime Kuma ZFSrsyncRAIDcAdvisor
05–08
{t.skills.quantHeading}
{t.skills.quant.map((q, qi) => (
{String(qi + 5).padStart(2, '0')}

{q.name}

{q.items.map((item, ii) => ( = 2 ? 'applied' : 'exposure'}`}>{item} ))}
))}
09
{t.skills.certsHeading}
{t.skills.certs.map((c, i) => (
{c.issuer === 'Google' ? 'GA' : 'MS'}
{c.name}
{c.issuer}
{t.skills.verified}
))}
{/* HOMELAB */}

{t.homelab.heading}

-
{t.homelab.hardwareHeading}
{t.homelab.hw.component}{t.homelab.hw.unraidCol}{t.homelab.hw.proxmoxCol}
{t.homelab.hw.cpu}Intel Core Ultra 5 225Intel Core i7-8700
{t.homelab.hw.motherboard}ASUS Prime Z890M-Plus-
{t.homelab.hw.ram}48GB DDR5 5600MHz32GB DDR4
{t.homelab.hw.case}Jonsbo N6-
{t.homelab.hw.storage}14TB + 2×12TB parity array + 2TB NVMe cache + 1TB NVMe bootSSD (OS) + SATA pool
{t.homelab.hw.network}10GbE (Realtek RTL8127) + 1Gbps LAN · VLANs1Gbps LAN · VLANs
{t.homelab.hw.os}UNRAID 7.3.1Proxmox VE 8
{t.homelab.hw.access}Pangolin + TraefikTailscale + SSH
-
{t.homelab.servicesHeading}
{[ ['Pangolin','Traefik','WireGuard','Cloudflared','Auto-TLS'], ['AdGuard Home','Unbound','macvlan','Split DNS'], ['CrowdSec','Gluetun','Kill switch','Intrusion detection'], ['Jellyfin','Seerr','Sonarr','Radarr','Jackett','Byparr','qBittorrent'], ['Navidrome','Lidarr','slskd','Subsonic API'], ['Immich','PostgreSQL','Redis','Vaultwarden'], ['Docker networking','Tailscale','VLANs','Zero-trust'], ].map((tags, i) => (
{String(i + 1).padStart(2, '0')}
{t.homelab.services[i].name}
{t.homelab.services[i].desc}
{tags.map((s, si) => {s})}
))}
{t.homelab.note1.t}
{t.homelab.note1.d}
-
{t.homelab.flowHeading}
{t.homelab.flow.outside} {t.homelab.flow.internal} {t.homelab.flow.phone} {t.homelab.flow.phoneSub} {t.homelab.flow.cfPangolin} {t.homelab.flow.cfPangolinSub} {t.homelab.flow.passesThrough} {t.homelab.flow.lanDevice} {t.homelab.flow.lanDeviceSub} {t.homelab.flow.adguard} {t.homelab.flow.adguardSub} {t.homelab.flow.traefik} {t.homelab.flow.traefikSub} {t.homelab.flow.targetApp} {t.homelab.flow.targetAppSub} {t.homelab.flow.iot} {t.homelab.flow.iotSub} {t.homelab.flow.iotNote} {t.homelab.flow.legendPublic} {t.homelab.flow.legendLan} {t.homelab.flow.legendBlocked} {t.homelab.flow.legendRequest} {t.homelab.flow.legendResponse}
{t.homelab.note2.t}
{t.homelab.note2.d}
{t.homelab.note3.t}
{t.homelab.note3.d}
{/* DESKTOP */}

{t.desktop.heading}

{t.desktop.intro}

{t.desktop.hw.component}{t.desktop.hw.spec}
{t.desktop.hw.cpu}AMD Ryzen 7 9800X3D (8c/16t · 3D V-Cache)
{t.desktop.hw.gpu}Zotac RTX 5080 Solid OC
{t.desktop.hw.ram}32GB DDR5 6000MHz
{t.desktop.hw.motherboard}Gigabyte X870E AORUS PRO X3D ICE
{t.desktop.hw.os}CachyOS
{t.desktop.hw.role}{t.desktop.hw.roleVal}
{[ ['Zen 5','8c / 16t','96MB L3 3D V-Cache','5.0GHz boost'], ['Blackwell','16GB GDDR7','DLSS 4','MFG','CUDA','Ray Tracing'], ['X870E','PCIe 5.0','USB4','DDR5 6000','WiFi 7'], ].map((tags, i) => (
{String(i + 1).padStart(2, '0')}
{t.desktop.parts[i].name}
{t.desktop.parts[i].desc}
{tags.map((s, si) => {s})}
))}
{/* PROJECTS */}

{t.projects.heading}

{[ ['Proxmox','Docker','LXC','Traefik','Tailscale'], ['TrueNAS','RAID 10','ZFS','rsync','ACLs'], ['React','Next.js','TypeScript','Tailwind'], ['Rust','ratatui','Subsonic','MPRIS2','tokio','SQLite'], ['Ansible','Compose','Bash','IaC'], ['Python','Docker','ListenBrainz','Last.fm','slskd','Navidrome'], ['Docker','Navidrome','slskd','Gluetun','ListenBrainz','ProtonVPN'], ['UNRAID 7.3.1','Docker','Parity Array','48GB DDR5','SMB/NFS'], ['Proxmox VE 8','LXC','KVM','Tailscale','VLAN','32GB DDR4'], ['PowerShell','Bash','Obsidian','Automation'], ['Python','scikit-learn','Regression','Jupyter','Statistics'], ].map((tags, i) => { const p = t.projects.items[i] return (
{String(i + 1).padStart(2, '0')}
{p.type}
{t.projects.statusLabels[p.status as 'live' | 'oss']}{(p as any).statusExtra || ''}
{p.title}
{p.desc}
{tags.map((s, si) => {s})}
) })}

{t.projects.moreAt} github.com/Quinta0 ↗

{/* OPEN SOURCE CONTRIBUTIONS */}

{t.oss.heading}

{t.oss.intro}

{t.oss.repos.map((r, i) => (

{r.name}

{r.desc}

{r.tag} {r.action}
))}
{/* GITHUB */}

{t.github.heading}

{t.github.intro}

{t.github.repos.map((r, i) => (

{r.name}

{r.desc}

{(r as any).star && {(r as any).star}} {r.tag} {t.github.repoAction}
))}
{/* EXPERIENCE + EDUCATION */}

{t.experience.heading}

{t.experience.job.intro}

    {t.experience.job.bullets.map((b, i) =>
  • {b}
  • )}
-
{t.experience.educationHeading}
{t.experience.education.map((edu, i) => (

{edu.intro}

    {edu.bullets.map((b, bi) => )}
{edu.tags.map((tag, ti) => {tag})}
))}
-
{t.experience.languagesHeading}
{t.experience.languages.map((l, i) => (
{l.name}
{l.level}
))}
{/* CONTACT */} {/* FOOTER */}
) }