L’obiettivo è costruire un stack leggero che non ti rallenti. Meno click, meno plugin, zero dipendenze inutili. Qui sotto trovi gli strumenti che uso/consiglio nel 2025, organizzati per fase, con indicazioni chiare su quando usarli e quando evitarli.
1) Design & wireframe
Figma per wireframe, componenti e token (spaziatura, colori, tipografia). Mantieni un solo file “UI Kit” e istanzia tutto da lì: riduce errori e tempi. Per immagini raster usa mockup semplici e limita gli effetti: quello che non serve in pagina è peso in più.
Consiglio pratico: esporta solo SVG per icone e PNG/JPG ottimizzati per il resto. Evita PDF multipagina per la consegna di layout: meglio tavole ordinate con naming coerente.
2) Tipografia e icone
- Font: variable fonts (Inter, Source Sans 3, Lora) per gestire pesi con un solo file. Carica subset latin e imposta
font-display: swapper non bloccare il rendering. - Icone: set puliti e coerenti (Lucide/Heroicons). Niente “zoo” di pacchetti diversi.
Snippet utile (font):
<link rel="preload" as="font" type="font/woff2" href="/fonts/inter-var.woff2" crossorigin>
<style>
:root { --font-body: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
body { font-family: var(--font-body); line-height: 1.55; font-size: 16px; }
h1 { line-height: 1.15; }
</style>
3) Palette e asset
Colori: definisci 8–10 token max (primary, primary-600, neutral-700, success, warning, error). Per le immagini, prepara tre taglie (sm, md, lg) e usa loading="lazy" ovunque non sia ATF (above the fold).
Utility da tenere a portata: compressione immagini (es. Squoosh/Tiny), ottimizzazione SVG (SVGOMG), generatore favicons. Bastano questi tre.
4) Front-end “base”
- CSS: Tailwind per velocità e consistenza. Se preferisci CSS classico, PostCSS + Autoprefixer e una piccola scala tipografica in
:root. - Componenti: shadcn/ui come base (accessibilità già curata) e pochi componenti custom.
- Animazioni: GSAP per micro-interazioni e transizioni di pagina, con timings morbidi (200–400ms).
- JS leggero: se il progetto è contenuto, valuta htmx o Alpine per interazioni minime; se serve app più strutturata, React + Vite.
Regola d’oro: niente librerie “perché sì”. Se vanilla JS basta, usa quello.
5) Build e formattazione
Vite come bundler, ESLint + Prettier per coerenza del codice, alias per percorsi (@/), e split per rotta quando ha senso. Attiva sourcemap solo in dev.
6) PHP/Backend minimale (per siti custom)
- Composer essenziale:
vlucas/phpdotenv(config),phpmailer/phpmailer(mail),ezyang/htmlpurifier(sanifica HTML),monolog/monolog(log). - Router semplice con middlewares (auth, CSRF, rate-limit API).
- Sicurezza: CSRF token nei form, validazioni lato server (mai solo JS), escape sistematico in output.
7) Performance & qualità
- Lighthouse/PageSpeed per auditing.
- Accessibilità: test con axe DevTools e controllo contrasti WCAG.
- Immagini: JPEG progressivi, WebP dove disponibile, dimensioni dichiarate (
width/height) per evitare layout shift. - Font: massimo 2 famiglie, 2–3 pesi reali. Il resto lo fai con dimensioni/spacing, non con il “grassetto creativo”.
Checklist rapida:
- CLS < 0.1, LCP < 2.5s, TBT basso su mobile medio.
- CSS critico inline per la prima sezione, resto differito.
rel="preconnect"verso host esterni realmente usati.
8) SEO e dati strutturati
Titoli univoci, meta description scritte per l’utente (non per il bot), sitemap aggiornata, robots pulito. Open Graph e Twitter Card per la condivisione. Se hai pagine “servizio”, aggiungi schema WebSite/Organization/BreadcrumbList/Article dove serve. Niente keyword stuffing: copertina chiara, H1 unico, gerarchia H2/H3 pulita.
9) Release e hosting
- Versionamento: Git (main + feature branches).
- Deploy: build → test → deploy (anche via GitHub Actions con rsync/FTP). Escludi
vendorse installi server-side. - Config:
.envper segreti; backup DB e/public/news/upload con cron giornaliero. - Monitoring: log errori, rotazione log, alert email su 500/slow query anomale.
Automazione, CI/CD e qualità del codice
Per team piccoli o freelancer, una pipeline minima fa la differenza:
- GitHub Actions o GitLab CI: lint, build, test su ogni push
- Preview deploy per ogni PR (Vercel, Netlify, Cloudflare Pages)
- Husky + lint-staged: Prettier/ESLint prima del commit
- Dependabot: aggiornamenti sicurezza automatici
Non serve un DevOps dedicato: 2-3 workflow YAML ben impostati coprono il 90% dei casi per siti e landing.
Collaborazione designer-developer
Strumenti che riducono attrito tra design e codice:
- Figma Dev Mode + token esportati (JSON o CSS variables)
- Storybook per catalogare componenti UI e stati
- Chromatic o Percy per visual regression test
- Notion/Linear per brief, acceptance criteria e handoff
Documenta decisioni (perché questo spacing, perché questo breakpoint) nel README o nel design system: tra sei mesi te ne sarà grato anche tu.
Quando NON aggiungere un tool
Prima di integrare un nuovo strumento chiediti: risolve un problema che ho davvero oggi? Ha lock-in accettabile? Il team sa già usarlo o il costo di apprendimento è giustificato? Spesso vanilla JS, CSS nativo e PHP senza framework bastano per siti vetrina, blog e landing. Aggiungi React, Tailwind o headless CMS quando la complessità del progetto lo richiede, non perché “si fa così nel 2025”.
Stack consigliato per tipologie di progetto
Sito vetrina / portfolio: HTML/CSS/JS o PHP leggero, Vite per asset, form con validazione server-side.
Blog / content site: headless CMS (Strapi, Directus) o WordPress headless, Next.js o Astro per front-end.
Web app: React/Vue + API REST o GraphQL, auth con sessioni o JWT, database PostgreSQL.
E-commerce medio: Shopify, WooCommerce o custom con Stripe, attenzione a performance immagini e schema Product.
Il toolkit perfetto è quello che conosci bene e mantieni aggiornato, non quello con più logo sulla slide.
Conclusione
Scegli una volta, usa sempre. Un toolkit coerente fa risparmiare ore su ogni progetto e tiene alto lo standard: tipografia pulita, componenti accessibili, immagini leggere, deploy prevedibile. Il risultato è un sito veloce, chiaro, stabile. È quello che vogliono gli utenti (e i motori di ricerca).