Lo stack tecnologico per startup, elemento per elemento

La tavola

Con quali tecnologie costruiamo i prodotti?

Quattordici elementi in sei famiglie: sono le tecnologie che il gruppo usa davvero, nei progetti di My Web Lab e Giallo Studio, in Athleex e in questo sito. Seleziona una tessera: accanto trovi perché la usiamo, quando scegliamo altro e dove l'abbiamo usata.

Come si legge

Famiglia in alto, sigla al centro, nome in basso. Il colore indica la famiglia.

  • Frontend
  • Backend e dati
  • Mobile
  • AI e automazione
  • Infrastruttura
  • Motion e 3D

Next.js

Famiglia: Frontend

Perché la usiamo
Un solo framework per sito, web app e API, con pagine statiche veloci e indicizzabili: la SEO parte dal codice.
Quando no
Per uno strumento interno che nessuno cerca su Google può bastare qualcosa di più semplice; per un sito vetrina aggiornato da chi non scrive codice, un CMS.
Dove l'abbiamo usata
Nei siti e nelle web app su misura di My Web Lab, nella web app di Athleex e in questo sito.

React

Famiglia: Frontend

Perché la usiamo
Interfacce fatte di componenti riusabili, un ecosistema enorme e sviluppatori facili da trovare.
Quando no
Su pagine fatte quasi solo di testo è più di quanto serve: lì conta mandare al browser meno JavaScript possibile.
Dove l'abbiamo usata
Ovunque usiamo Next.js: progetti di My Web Lab, Athleex, questo sito.

TypeScript

Famiglia: Frontend

Perché la usiamo
Tipi dall'interfaccia al database: tanti errori emergono mentre scrivi il codice, non quando li trova un utente.
Quando no
Per uno script da usare una volta o un esperimento da buttare.
Dove l'abbiamo usata
In tutto lo stack condiviso del gruppo.

PostgreSQL

Famiglia: Backend e dati

Perché la usiamo
Database relazionale solido e open source: transazioni, vincoli, ricerca nel testo ed estensioni, senza legarti a un fornitore.
Quando no
Per una cache o per grandi volumi di dati davvero non strutturati esistono strumenti più adatti, da affiancare.
Dove l'abbiamo usata
È il database di Athleex, con backup notturni e una copia fuori sede.

Prisma

Famiglia: Backend e dati

Perché la usiamo
ORM per TypeScript: schema del database leggibile, query tipizzate, migrazioni versionate insieme al codice.
Quando no
Per query analitiche molto complesse scriviamo SQL a mano, accanto a Prisma.
Dove l'abbiamo usata
Nella web app di Athleex.

Capacitor

Famiglia: Mobile

Perché la usiamo
Porta la stessa base web su iOS e Android come app vere, con accesso alle funzioni del telefono: un solo codice, un solo team.
Quando no
Per giochi, grafica 3D pesante o un uso molto intenso delle funzioni native conviene un'app nativa o un altro framework.
Dove l'abbiamo usata
Le app iOS e Android di Athleex.

StoreKit 2

Famiglia: Mobile

Perché la usiamo
Il framework di Apple per gli acquisti in-app: serve quando vendi contenuti o funzioni digitali dentro un'app iOS.
Quando no
Se l'app non vende nulla al suo interno, o vende beni e servizi fisici.
Dove l'abbiamo usata
In Athleex: la revisione di Apple aveva respinto una versione per le regole sugli acquisti in-app (linea guida 3.1.1); con StoreKit 2 è passata.

Agenti AI

Famiglia: AI e automazione

Perché la usiamo
Modelli linguistici collegati agli strumenti, con permessi stretti e ogni passo registrato: fanno lavoro ripetitivo che chiede di leggere e scrivere testo.
Quando no
Se il processo è sempre uguale basta un workflow, più economico e prevedibile; se un errore costa caro, decide una persona.
Dove l'abbiamo usata
Nei progetti di Giallo Studio per le PMI italiane.

n8n

Famiglia: AI e automazione

Perché la usiamo
Orchestratore di workflow: collega app e API con flussi visibili, facili da modificare e da controllare.
Quando no
Per la logica centrale del prodotto, che va nel codice dell'applicazione con i suoi test.
Dove l'abbiamo usata
Nelle automazioni dei processi del gruppo, con Giallo Studio.

Hetzner

Famiglia: Infrastruttura

Perché la usiamo
Server in Europa a costi prevedibili, che gestiamo noi: i dati restano nell'Unione europea.
Quando no
Se nessuno nel team vuole gestire server, una piattaforma gestita costa di più ma toglie lavoro.
Dove l'abbiamo usata
Ospita Athleex, su server europei che gestiamo noi.

GitHub Actions

Famiglia: Infrastruttura

Perché la usiamo
CI automatica: a ogni modifica test, controlli dei tipi e build girano da soli prima della produzione.
Quando no
Per un sito statico minimo basta il deploy automatico della piattaforma che lo ospita.
Dove l'abbiamo usata
La CI di Athleex.

Three.js

Famiglia: Motion e 3D

Perché la usiamo
3D nel browser con WebGL: scene, materiali e luci per esperienze che un'immagine ferma non rende.
Quando no
Dove la velocità conta più della scena, o quando un'immagine renderizzata dice la stessa cosa.
Dove l'abbiamo usata
Le scene 3D di questo sito.

GSAP

Famiglia: Motion e 3D

Perché la usiamo
Animazioni precise e legate allo scroll, che rispettano chi preferisce meno movimento sullo schermo.
Quando no
Per una transizione semplice basta il CSS.
Dove l'abbiamo usata
Nello stack condiviso del gruppo, compreso questo sito.

Blender Cycles

Famiglia: Motion e 3D

Perché la usiamo
Rendering fotorealistico per immagini e sequenze: luce e materiali credibili senza appesantire la pagina.
Quando no
Quando serve interazione in tempo reale: lì si usa Three.js.
Dove l'abbiamo usata
Le immagini di questo sito.

Le combinazioni

Quale stack per un MVP, un SaaS o un'app?

Gli stessi elementi si combinano in modo diverso a seconda di cosa costruisci. Sono i punti di partenza, da adattare al progetto.

Combinazioni di tecnologie per tipo di prodotto
Cosa costruisciElementiPerché
MVP web
  • Next.js
  • React
  • TypeScript
  • PostgreSQL
  • Prisma
Una sola base per interfaccia e API e dati relazionali da subito: si cambia in fretta e non si butta via tutto quando arrivano i clienti.
SaaS
  • Next.js
  • TypeScript
  • PostgreSQL
  • Prisma
  • Hetzner
  • GitHub Actions
Abbonamenti, ruoli e dati di più clienti chiedono un database solido, la CI e un'infrastruttura di cui controlli i costi.
App iOS e Android
  • Next.js
  • React
  • Capacitor
  • StoreKit 2
La stessa base web diventa un'app per gli store; StoreKit 2 entra se vendi contenuti digitali dentro l'app iOS.
Funzioni AI e automazioni
  • Agenti AI
  • n8n
  • TypeScript
  • PostgreSQL
Il modello lavora dal backend, i flussi ripetitivi in un orchestratore, i dati dove li controlli tu.
Sito di lancio
  • Next.js
  • GSAP
  • Three.js
  • Blender Cycles
Pagine statiche veloci e indicizzabili; motion e 3D solo se aiutano a capire il prodotto.
Tessere quadrate di vetro smerigliato disposte a griglia, alcune lilla, una sollevata verso la luce

I criteri

Come scegliere lo stack tecnologico di una startup?

Scegli tecnologie mature, conosciute da molti sviluppatori e che non ti chiudono in un fornitore: lo stack deve farti uscire presto e permettere a un team nuovo di andare avanti.

Persone
Quanti sviluppatori lo conoscono? Uno stack raro rende difficile assumere e cambiare fornitore.
Maturità
Documentazione, aggiornamenti, una comunità che risponde. La novità del mese si paga in manutenzione.
Una base, più canali
Web, app e API dallo stesso codice: meno lavoro e meno errori quando il prodotto cresce.
Costi di esercizio
Hosting, database e chiamate ai modelli AI devono restare prevedibili mentre crescono gli utenti.
Uscita
Codice e dati devono restare tuoi e spostabili: niente piattaforme da cui non si esce.

Devi decidere senza un socio tecnico? È il lavoro del CTO as a service.

Domande sullo stack tecnologico

Qual è il miglior stack tecnologico per una startup?

Non ne esiste uno valido per tutte: conta che sia maturo, conosciuto da molti sviluppatori e adatto a quello che costruisci. Per web app e SaaS una combinazione molto diffusa è TypeScript con Next.js, React e PostgreSQL, che è anche la nostra base.

Next.js va bene per un SaaS?

Sì, per la maggior parte dei SaaS: tiene insieme interfaccia, API e pagine pubbliche indicizzabili in un solo progetto. Lo usiamo per la web app di Athleex, il nostro SaaS. Per carichi molto particolari si affiancano servizi dedicati.

Perché PostgreSQL e non un database NoSQL?

Perché quasi tutti i prodotti per startup hanno dati relazionali: utenti, abbonamenti, ordini, permessi. PostgreSQL li gestisce con transazioni e vincoli e tiene anche dati semi-strutturati in JSON. Un database NoSQL si affianca quando c'è un bisogno specifico.

Capacitor, React Native o Flutter per l'app di una startup?

Capacitor conviene quando hai già una web app e vuoi le app iOS e Android sulla stessa base, con un solo team: è la scelta che abbiamo fatto per Athleex. React Native o Flutter hanno senso quando l'app è il prodotto principale e chiede interfacce native molto curate.

Usate sempre queste tecnologie?

No: sono il punto di partenza, non un obbligo. Se il tuo progetto ha già uno stack che funziona, o un requisito che queste tecnologie non coprono bene, ne parliamo prima di scrivere codice.

Devi scegliere lo stack del tuo prodotto?

Rispondiamo entro un giorno lavorativo.

Parliamone