What I use.
Last updated: May 2026
Development
VS Code is home — extensions kept to the essentials: Prettier, ESLint, GitLens, Tailwind CSS IntelliSense. JetBrains Mono at 14px in the editor and the terminal. PowerShell in Windows Terminal for everything CLI: Wrangler, Git, npm. Chrome as the primary browser with DevTools open more often than not. GitHub CLI for branches and PRs; Wrangler CLI for Workers deploys and D1 queries.
Design
The design system for this site lives entirely in CSS custom properties — no external design tool involved. Tokens for colour, spacing, easing, and radius declared once, consumed everywhere. Outfit for display and body copy, JetBrains Mono for code and metadata. Both self-hosted as variable WOFF2 files: no Google Fonts, no external requests.
Hosting & infrastructure
Cloudflare Pages serves the static build output from dist/ with immutable cache headers. Cloudflare Workers handles the SPA fallback, all /api routes, OG meta injection for social bots, and scheduled cron jobs. Cloudflare D1 — SQLite at the edge — stores analytics events and project data. GitHub for source control; deploy is manual by choice.
Hardware
A mixed setup: desktop for serious work, laptop for travel and client visits. Both running Windows 11 Enterprise. The desktop handles the heavy lifting: multiple monitors, local test environments, and anything that needs sustained performance. The laptop covers everything else: all-day battery, fast wake, and a full dev environment portable enough for the ferry from Lipari. Six SSDs is not a personality disorder. It's accumulated projects, test environments, and the habit of never deleting a disk image before confirming the backup. External drives for archived builds and client source material.
- CASE
- Phanteks P600S
- PSU
- Seasonic PRIME TX-1600 Noctua Edition
- MOBO
- Gigabyte X870E AORUS MASTER X3D
- CPU
- AMD Ryzen 7 9800X3D
- COOLER
- Noctua NH-D15G2 LBC
- FANS
- be quiet! Silent Wings 4 Pro
- GPU
- AMD Radeon RX 6900 XT
- RAM
- G.Skill Flare X5 · 2 × 16 GB · 6000 MHz CL28
- SSD
- Samsung 9100 Pro 1 TBCrucial T500 1 TBWD Black SN720 1 TBWD Black SN750 512 GBSamsung 860 Evo 1 TBCrucial MX500 1 TB
- OS
- Windows 11 Enterprise
- MODEL
- ASUS Zenbook 14
- CPU
- Intel Core Ultra 7 255H
- RAM
- 32 GB · 7467 MHz
- GPU
- Intel Arc 140T
- OS
- Windows 11 Enterprise
- ISP
- Starlink Standard Gen 3Starlink Gen 3 Wi-Fi 6 Router
- ROUTER
- AVM FRITZ!Box 5790
- MESH
- AVM FRITZ!Repeater 3000 AX
- DNS
- NextDNS
- MONITOR
- Lenovo Legion Y27q-20
- OFFICE
- Logitech MX Master 4Logitech MX Anywhere 3S
- GAMING
- Zowie ZA13-DWEndgame Gear XM2w 4K
- KEYBOARD
- Realforce R2 PFU Limited EditionLogitech MX Keys Mini
- MOUSEPAD
- Noctua Edition XXL
- CONTROLLER
- GameSir G7 HE
- HEADSET
- Beyerdynamic DT900 Pro XSimgot EW300
- MIC
- Rode NT-USB
Apps & services
Discord for async communication, dev community exploration, and the occasional webhook from the uptime monitor. Telegram and WhatsApp for client communication, both essential in Italy where WhatsApp is the de facto professional messaging layer. Spotify while working. Kaspersky for security on Windows; non-negotiable on a machine with client code on it. Notion for lightweight project tracking when a notepad isn't enough. Cloudflare Dashboard for DNS, Workers, and Pages management. GitHub Desktop for merge conflicts easier to visualise. The stack is deliberately boring so the work can be interesting.
The details
A few things here respond to you. The accent colour tracks your local time of day: cooler in the morning, violet at dusk, indigo through the night. Press ⌘K (or Ctrl K) anywhere to jump between pages and posts without reaching for the mouse. And a couple of interactions are left unlabelled on purpose, for anyone who likes to poke at the corners.