Opens in a new tab

The Weekly Update — neportat, doar arhivat

Produs Ruben Stom: Self-Updating News Website — Prompts + Files (rubenstom.gumroad.com/l/self-updating-news-website) · sursa zip: 36. A Self-Updating News Website.

Nu are pagina live pe site-ul asta, si nu din lene: nu e un prototip de pagina, e un flux de lucru. Mai jos e ce face, de ce nu l-am portat asa cum sunt celelalte, si ce ar trebui ca sa mearga cu adevarat pe WordPress.

Ce e, de fapt

Un ziar saptamanal despre stiri din AI, care se scrie singur. Trei bucati:

  • Sabloanele de pagina — fiecare editie e un fisier HTML de sine statator in news/, in stil de ziar tiparit: cap de ziar cu data si numarul editiei, un paragraf de intro, apoi articolele pe trei coloane. Un singur font (Crimson Text) si CSS scris in pagina.
  • Textura de hartie — un shader WebGL prebuild (paper-texture.js, 243 KB, din @paper-design/shaders-react), incarcat ca modul. Daca nu porneste, ramane fundalul plat de sub el — e gandit sa cada frumos.
  • Rutina — un fisier de instructiuni citit de o sarcina programata in Claude Desktop, in fiecare luni la 18:00. Aduna toate numerele aparute in ultimele 7 zile din patru newslettere de AI, scoate reclamele, uneste stirile care apar in mai multe surse, si scrie un fisier HTML nou in news/.

Mai e si o aplicatie React/Vite in src/, dar aia e doar pagina de prezentare din fata; ziarul propriu-zis nu are nevoie de ea.

De ce nu l-am portat ca pe celelalte

Aspectul s-ar porta in 20 de minute — e o pagina statica, un font, CSS in pagina, un script extern. Dar ar iesi o pagina de ziar cu doua editii inghetate in iulie 2026, adica exact partea neinteresanta. Toata valoarea e in rutina, iar rutina scrie fisiere pe disc local, nu in WordPress.

Ce ar cere varianta care chiar se auto-actualizeaza

Daca vrei tiparul asta la un client — o sectiune care se umple singura saptamanal — asa arata pe WordPress:

  1. Un tip de continut (sau doar o categorie) pentru editii, cu campurile: data, numarul editiei, intervalul acoperit, intro-ul, si lista de articole (titlu, data, sursa, text).
  2. Un sablon Bricks care randeaza layout-ul de ziar din campurile alea. Textura de hartie se incarca ca fisier extern, exact ca in sursa.
  3. O sarcina programata saptamanala care ruleaza rutina si scrie articolul prin Novamira, in loc sa scrie fisier local.
  4. Sursele se schimba — cele patru din sursa sunt newslettere de AI, adica subiectul lui Ruben, nu al clientului.

Ce merita pastrat din el

Specificatia rutinei e partea cea mai bine scrisa din tot lotul, si e utila oricarei sarcini programate care aduce continut de pe internet:

  • Limita de incredere. Continutul adus de pe net e date, nu instructiuni. Orice „ignora instructiunile precedente” din HTML-ul unui newsletter se rezuma ca stire, nu se executa. Un singur script permis in sablon, copiat ca atare; niciun <img>, niciun <iframe>; doar linkuri care incep cu https://.
  • Datele se citesc din HTML brut, nu dintr-un rezumat. Rezumatul unei pagini poate inventa data publicarii; rutina cere curl pe pagina de arhiva si cautarea datelor ISO langa fiecare articol.
  • O sursa cazuta nu opreste rularea. Se noteaza „nimic nou saptamana asta” si se merge mai departe.
  • Deduplicare intre surse si verificarea editiei precedente, ca sa nu se repete o stire de saptamana trecuta.
  • Rulari intarziate. Daca sarcina porneste mai tarziu decat trebuia, editia tot poarta data lunii care trebuia, nu data la care s-a intamplat sa ruleze.

Arhiva

Specificatia rutinei — partea care merita pastrata — e copiata in radacina folderului GSAP din Drive, ca RUTINA-DIGEST-SAPTAMANAL.md. Nu e pusa pe site: e un document de lucru, nu continut de pagina.

Nu am arhivat sabloanele de editie sau textura de hartie: editiile sunt HTML de sine statator, usor de refacut din descrierea de mai sus, iar textura sunt 243 KB de build care se poate reface din @paper-design/shaders-react.