Vai al contenuto
vibe.cyber-space.it
accedi entra nei vibes

la ricevuta

Le prove

Un sito che parla di vibe coding può raccontare qualsiasi cosa. Questo qui mostra i timbri: la richiesta com'è arrivata, gli orari, i numeri letti dal disco e il codice che li conta.

01

La richiesta, parola per parola

«compila il sito vibe.cyber-space.it. parla di vibe coding e dimostra che è proprio quello che stiamo facendo io e te. invita gli utenti vibes a registrarsi per creare una community.»

— 8 novembre 2026, 13:03. Nessun brief, nessun file di partenza: la cartella era vuota.

Da questa frase sono usciti 17 file e 2.071 righe di codice. Il resto di questa pagina spiega come, e come puoi controllarlo.

02

Il diario, timbrato

Le tappe qui sotto sono state scritte durante il lavoro, non ricostruite dopo. Ultima pubblicazione: 7 minuti fa.

  1. 13:03
    La richiesta «Compila il sito vibe.cyber-space.it. Parla di vibe coding, dimostra che è proprio quello che stiamo facendo io e te, invita i vibes a registrarsi per creare una community.» La cartella è vuota: nessun file, nessun repo.
  2. 13:07
    La prima pagina Struttura, configurazione, database SQLite con lo schema, e la home scritta prima del foglio di stile: prima cosa deve esserci, poi come sta.
  3. 13:09
    Il front controller Rotte, registrazione, accesso, bacheca, profili. Gli hash delle password sono Argon2id e ogni POST passa da un gettone CSRF.
  4. 13:12
    Forma e verifica in locale Un foglio di stile solo, nessuna dipendenza esterna. Poi la prova completa con curl: venti controlli, compresi i casi negativi — handle già preso, password corta, CSRF sbagliato.
  5. 13:14
    Su lari, in chiaro Primo deploy: rsync in una cartella di lavoro, lint con il PHP 8.3 del server (in locale gira 8.5), poi la sostituzione. Se un file non compila il sito resta com'era.
  6. 13:15
    Il certificato certbot con la sfida http-01 sul webroot del sito. Da questo momento l'http fa 301 e l'https risponde senza errori di catena.
  7. 13:16
    Il primo 500, e perché è una buona notizia Il database era stato creato da root durante i controlli, così Apache non poteva scriverci. Trovato leggendo il log, non a naso: proprietario sbagliato, corretto, e il conteggio delle visite ha ripreso a funzionare.

03

Il sito conta se stesso

Questi numeri non sono in un file di testo: sono calcolati a ogni visita camminando nelle cartelle del sito e interrogando il database. Se cambio una riga di codice, il numero cambia.

misurati alle 13:27:04, in 3.6 ms
righe di codice2.071PHP, CSS, JS, JSON contati riga per riga
file17sorgente del sito, esclusi i dati
peso del codice84,2 KBtesto, senza database né immagini
database44,0 KBSQLite, un file fuori dal docroot
vibes iscritti0righe in users
messaggi0righe in posts
pagine viste8787 oggi, contate senza IP
motorePHP 8.3.6SQLite 3.45.1 · Apache/2.4.58

04

La funzione che conta le righe

Questo è il file app/stats.php, letto dal disco mentre la pagina si genera: non è un'immagine né una copia incollata. Se il contatore mente, mente questo codice, e puoi verificarlo tu.

app/stats.php, righe 39–53
 40  function conteggio_codice(): array
 41  {
 42      $righe = 0;
 43      $byte = 0;
 44      $file = file_del_sito();
 45      foreach ($file as $f) {
 46          $testo = (string)@file_get_contents($f);
 47          $righe += $testo === '' ? 0 : substr_count($testo, "\n") + (str_ends_with($testo, "\n") ? 0 : 1);
 48          $byte += strlen($testo);
 49      }
 50      return ['righe' => $righe, 'byte' => $byte, 'file' => count($file)];
 51  }
 52  
 53  /** Il diario di costruzione, scritto a mano mentre il sito veniva costruito. */
 54  function diario(): array

05

Chi ha deciso cosa

Tu, con le parole

  • il tema: il vibe coding, e la richiesta di dimostrarlo invece di raccontarlo;
  • la lingua, il tono diretto, l'idea di mostrare anche i limiti;
  • l'invito alla comunità, cioè lo scopo del sito;
  • il criterio di sempre: prima funziona, poi è bello.

L'agente, con le mani

  • le pagine, lo schema del database, il codice PHP, il CSS, il JavaScript;
  • il front controller, i gettoni CSRF, l'hash delle password con Argon2id;
  • il vhost Apache, i permessi, il certificato Let's Encrypt;
  • i test: curl su ogni rotta, i log, le righe scritte nel database.

Il punto non è chi ha fatto di più. È che nessuna delle due colonne avrebbe prodotto questa pagina da sola: senza le parole non c'era niente da costruire, senza le mani non c'era niente da leggere.

06

Le verifiche, eseguite dal deploy

Il pannello qui sotto non è un'immagine di stato: è il risultato dei controlli che il deploy esegue dopo aver copiato i file, scritto nello stesso momento in cui il sito viene pubblicato.

Eseguiti il 08/11/2026 pmSundaySundayEurope/Rome 13:19.

07

Quello che questo sito non dimostra

Dimostra che una conversazione può diventare un sito funzionante, con un database, un login e un certificato. Non dimostra che il codice generato sia sempre buono, né che chi lo riceve lo capisca. Il codice di questa pagina l'ha scritto un modello linguistico: veloce, coerente, e capace di sbagliare con sicurezza. La differenza l'ha fatta il controllo — leggere i log, provare le rotte, contare le righe — ed è la parte che consiglio di non saltare mai.

Se stai costruendo qualcosa, entra e raccontalo →