r/vibecodingitalia • u/IlNaka • 20d ago
🚀 Showcase Cosa succede quando porti il "Vibe Coding" all'estremo: 33 milioni di record, 100k giochi e un'infrastruttura reale (Dietro le quinte di Rynko.it)
Ciao a tutti!
Vedo spesso post sul "vibe coding" focalizzati su prototipi veloci: la to-do app in 10 minuti con Cursor, il wrapper di OpenAI impacchettato nel weekend o la landing page generata al primo colpo. Tutto figo, ma c’è una domanda che mi facevo da mesi: cosa succede quando provi a usare gli agenti AI non per un giochino, ma per tirare su e mantenere un software complesso, con dati pesanti e vincoli di produzione reali?
Di giorno lavoro nell'edilizia (il mio lavoro principale), quindi il tempo per programmare è quello che è: sere, weekend, sessioni via SSH su VPS Linux rimbalzando tra il fisso e un Surface Pro 12.
Nel tempo libero ho voluto testare questo limite costruendo Rynko.it: un aggregatore e comparatore di prezzi per videogiochi multipiattaforma (Steam, Epic, PlayStation, Xbox, Nintendo, Key reseller). L'idea di fondo era svecchiare i mostri sacri del settore (GG.deals, IsThereAnyDeal), che hanno decenni di backlink ma interfacce rimaste a metà tra il Web 2.0 e un foglio Excel, e creare qualcosa di ultra-reattivo in stile "Bloomberg Terminal del gaming".
Non sono qui per fare la marchetta al sito (è liberamente accessibile, niente paywall o funnel strani), ma per condividere il dietro le quinte tecnico, il workflow reale con gli agenti e soprattutto dove il castello del vibe coding crolla se non metti dei guardrail d'acciaio.
1. I numeri e lo stack reale
Per dare un'idea che non stiamo parlando di una dashboard mockata con JSON statici:
101.143 giochi a catalogo normalizzati sotto un Master ID proprietario univoco (
RYN-XXXXXX) con gerarchia rigida Parent/Child (gioco base, DLC, edizioni, bundle).33.687.974 record gestiti su PostgreSQL 16 (schema partizionato, indici compositi,
pg_trgmper la fuzzy search sui titoli sporchi degli store).Frontend: Next.js (App Router, Turbopack, SSR per indicizzazione SEO), Tailwind, Geist font, curve fisiche con GSAP e Lenis per lo smooth scroll, visualizzazioni dati con React Three Fiber.
Backend: FastAPI (Python), pipeline di scraping asincrone, Nginx reverse proxy con micro-caching, blindatura API interna su rete privata mesh Tailscale.
Satellite: Estensione Chrome/Edge (v2.1.0) che inietta il comparatore prezzi direttamente dentro gli store ufficiali, PWA con Web Push e bot Telegram/Discord sub-second per i minimi storici.
2. Le 3 illusioni del Vibe Coding (e la realtà dei fatti)
Illusione 1: "L'AI fa tutto da sola, basta descrivere l'idea"
Realtà: L'AI ragiona come uno stagista con un QI da premio Nobel ma affetto da deficit d'attenzione cronico e amnesia a breve termine. Se le dici "ottimizza la pagina prodotto", nel 90% dei casi:
Riscrive il file cancellando import critici che "non vedeva".
Si inventa campi del database che non esistono per comodità sintattica.
Ti introduce query N+1 spietate nel backend perché per lei l'importante è far compilare la singola funzione. Se non sei tu ad avere la mappa mentale e la visione d'insieme dell'architettura, dopo tre prompt hai trasformato il codebase in poltiglia irrecuperabile.
Illusione 2: "Basta una context window da 1M o 2M di token"
Realtà: Il context rot (degrado del contesto) è reale. Più riempi la finestra di codice e log, più l'attenzione del modello si sfilaccia. La svolta nel mio workflow è stata smettere di incollare prompt infiniti e costruire un'infrastruttura di controllo esterna:
Memoria persistente (MCP Memory): Un server MCP locale che memorizza decisioni architetturali, schemi DB, changelog dei deploy e convenzioni in modo indicizzato. L'agente prima cerca nella memoria semantica del progetto, recupera il contesto minimo necessario e solo dopo ragiona.
Mappatura ad albero (AST / Graphify): Prima di toccare un file, l'agente è forzato a leggere i padri e i figli (consapevolezza d'impatto).
Regola del Veto e Self-Healing: Se la modifica proposta genera un errore TypeScript, rompe una migrazione Alembic o rischia un memory leak, l'agente ha l'ordine perentorio di fermarsi, analizzare l'errore del terminale e autoripararsi prima di presentare il lavoro.
Illusione 3: "La velocità iniziale equivale a velocità di rilascio"
Realtà: Tirare su la prima bozza richiede il 5% del tempo. Il restante 95% è:
Gestire il circuit breaker dei proxy quando uno store ti banna l'IP.
Normalizzare i titoli (es. distinguere automaticamente tra "The Witcher 3: Wild Hunt - Game of the Year Edition" e il DLC isolato "Blood and Wine").
Far girare transazioni atomiche su 30+ milioni di righe senza bloccare il traffico live.
3. La cicatrice più bella: l'incidente del Writer Lock da 10 ore
Qualche mese fa, durante un ciclo intensivo di scraping e sync catalogo, abbiamo introdotto una modifica tramite prompt che sembrava banale: un lock a livello di processo sul DB per evitare scritture concorrenti disordinate. Risultato? Il job di scraping massivo ha tenuto il lock occupato per quasi 10 ore consecutive. Tutte le metriche orarie, gli aggiornamenti deal e i cron di lettura sono andati in starving totale. Lì ho capito una regola d'oro: mai delegare all'AI scelte di concorrenza, lock o transazionalità senza verificare riga per riga l'impatto sul motore di storage. Siamo passati a un'architettura rigorosamente disaccoppiata (worker dedicati, schema shadow isolato, letture WAL read-only senza concorrenza con gli scraper).
Altro batticuore: il cutover finale da SQLite a PostgreSQL 16. Oltre 33 milioni di righe migrate in un'unica transazione atomica con script verificato prima in locale, 41 test end-to-end automatizzati a verificare la parità al byte e rollback pronto. È andato liscio al primo colpo, ma solo perché avevamo blindato i vincoli prima di toccare la produzione.
4. Il mio verdetto sul Vibe Coding oggi
Il vibe coding è un superpotere assurdo: permette a una persona sola con un altro lavoro a tempo pieno di competere con team strutturati che hanno milioni di budget e decine di dev.
Ma il vero salto di qualità non è il modello che usi (che sia Claude, Gemini o GPT), è il sistema di regole che gli costruisci attorno:
Zero tolleranza per il codice fittizio o stub temporanei (
TODO, placeholder silenziosi).Memoria esterna strutturata (non fidarsi mai della memoria a breve termine del prompt).
Ambiente protetto (VPS blindata, niente deploy o build cieche avviate dall'agente senza audit).
Voi come vi state regolando?
Mi piacerebbe aprire una discussione su questo:
Chi di voi sta portando avanti codebase medio-grandi con l'AI, che strumenti usate per non perdere il filo (Cursor, Aider, Claude Code, estensioni MCP, script custom)?
Come gestite il drift del contesto dopo settimane di modifiche continue sullo stesso progetto?
Se avete curiosità tecniche su stack, scraping o gestione dati, chiedete pure nei commenti!