A trecut mai bine de o lună de când am început toată treaba asta cu transformatul unui blog WordPress într-un site static și pot să zic că mă apropii de versiunea finală.

Am adăugat opțiuni de accesibilitate, disponibile sus, lângă iconița ce schimbă între tema întunecată și cea luminoasă. Dacă dispozitivul tău nu are setat modul întunecat și este noapte, o să apară undeva în partea de jos o sugestie de a folosi tema întunecată.

Pe 28 iulie scriam că am renunțat la categorii și etichete, dar între timp mi-am dat seama că nu e chiar cea mai bună idee asta. Așa că am revenit la ideea de categorii, așa cum le-am recatalogat la crearea arhivei statice.

Etichetele sunt și ele prezente, cu precizarea că paginile de etichete care au mai puțin de trei articole nu apar în harta site-ului și nici nu sunt indexate de către Google. Și dacă tot e vorba de Google, am făcut recent cont de Google Analytics pentru vasi.ro, că nu aveam. Totuși, nu vreau să pun scriptul GA4 pe site și trimit vizitele printr-un API.

Acum blogul este complet pe Cloudflare. Partea statică este găzduită de Cloudflare Pages, iar partea de comentarii, abonări push la comentarii și abonări push la articole are treabă și cu Cloudflare D1, care este o bază de date SQL.

Treaba cu Cloudflare D1 nu o știam de la început, de aceea am avut inițial backend-ul la Gazduire.Net. După ce am aflat că se poate și direct pe Cloudflare, l-am pus pe Claude la treabă și m-a ajutat cu tot ce a însemnat migrarea pe D1.

Practic, structura vasi.ro în acest moment este următoarea:

  • Worker principal — site static cu articole, categorii, etichete, pagini pe Cloudflare Pages, încărcat direct ca arhivă zip
  • Workers secundare
    • unul care se ocupă de backend: comentarii, notificări push la articole și la comentarii, statistici simple pe care le vezi în partea de jos a fiecărei pagini de aici, plus feed rss pentru comentarii
    • unul care numără paginile cu articole și redirecționează temporar către ultima pagină, dacă numărul cerut în link e prea mare (de exemplu, /page/202/ este redirecționat în acest moment către /page/149/)
    • unul folosit pentru căutare după context. În pagina de căutare, după ce cauți ceva, poți alege caută cu AI. Acolo e folosit.
    • unul cu toate imaginile din articole, disponibile pe subdomeniul img.vasi.ro. La fel ca blogul, încarc arhiva zip
    • unul pentru a servi o imagine standard atunci când imaginea de pe subdomeniul img nu (mai) există
    • unul cu API-ul de la Google Analytics, pentru a trimite statisticile, fără a încărca întregul script pe site

Probabil par multe, însă majoritatea sunt simple. Ca și în cazul unui blog WordPress, acolo unde ai module, așa și aici am fost nevoit cumva să aduc anumite funcționalități. Mi-e mai ușor să le administrez dacă sunt împărțite în mai multe, mai ales atunci când nu funcționează ceva așa cum aș vrea eu sau nu funcționează deloc.