O pagină statică care e, în secret, un test A/B
Un test A/B e de obicei construit așa încât pagina cade de pe CDN într-un render la fiecare cerere. Nu trebuie să fie așa. Ține fiecare variantă complet statică și lasă un proxy (middleware-ul redenumit din Next.js) să rezolve alocarea printr-o platformă de experimente, pe baza unui device id stabil — și rescrie doar când vizitatorul nu e în control. URL-ul nu se schimbă niciodată, CDN-ul tot pune în cache, iar calea obișnuită nu costă nimic.
Deploy pe Vercel din CI când cel care face commit nu e membru al echipei
Muți un repo într-o organizație GitHub și Vercel începe discret să-ți blocheze deploy-urile: commit-ul „nu a putut fi asociat unui membru al echipei”. Iată cum fac deploy din GitHub Actions cu CLI-ul Vercel: commit-urile mele continuă să conteze în propriul graf GitHub, dashboardul arată în continuare cine a dat push, iar eu nu plătesc un loc pentru fiecare contribuitor.
Next.js Memory Leak: Fetch + Mod Standalone — 2 ani fără rezolvare
Next.js aplică un patch peste fetch-ul global și adaugă un strat de cache care pierde memorie la fiecare cerere. În Docker/K8s asta provoacă crash-uri OOM la fiecare câteva ore. Bug-ul există din Next.js 14 și rămâne nerezolvat în 16.2.x.
Mai multe conturi Claude Code pe un singur dispozitiv
Cum să folosești două (sau mai multe) conturi Claude Code în paralel — personal și corporativ — cu izolare completă folosind o singură variabilă de mediu.
Încărcarea leneșă a conținutului blogului în SolidStart fără a pierde SSG
Blogul tău livrează probabil corpul fiecărui articol într-un singur bundle — al meu crescuse la 2,88 MB și se descărca chiar și pe pagina de index, unde ai nevoie doar de titluri. Iată cum am împărțit proza fiecărui articol într-un chunk leneș care se încarcă la cerere, în timp ce fiecare pagină rămâne complet randată pe server pentru SEO.
CRAFT: o metodă de a folosi AI fără să-ți pierzi măiestria
A numi o problemă fără a oferi o soluție nu face decât să semene neliniște. După postarea despre pierderea abilităților din cauza AI, iată rețeta: CRAFT — cinci principii (Challenge First, Review Adversarially, Ask Why Not What, Friction on Purpose, Test Your Understanding) sub o singură axiomă: AI face ce ai stăpânit deja, tu faci ce încă înveți. O metodă practică și ușor de reținut pentru a folosi AI zi de zi fără să-ți pierzi pe tăcute priceperea.
Un singur ascultător în loc de câte o componentă client pentru fiecare buton
În clipa în care adaugi analiză de clicuri unei componente, aceasta devine o componentă client care livrează JavaScript. Fă asta la scara unui site întreg și doar urmărirea îți umflă bundle-ul. Iată alternativa care se află în platformă dintotdeauna: un singur ascultător delegat, atribute de date declarative și componente care rămân pur HTML randat pe server.
Un acordeon fluid cu zero JavaScript
Toată lumea recurge la o stare React și la un hook de măsurare a înălțimii ca să construiască un acordeon. Browserul livrează unul nativ de ani buni — iar din 2024 se animează la deschidere și la închidere cu CSS pur. Iată tehnica completă: details[name], ::details-content, interpolate-size și proprietatea care face ca și închiderea să se anime.
Prinde o valoare de la un script terț chiar în clipa în care ajunge pe window
Un script pe care nu îl controlezi își scrie rezultatul într-un global de pe window la un moment pe care nu îl poți prezice. Cea mai mare parte a codului intră într-o cursă cu el folosind un timeout sau irosește main thread-ul cu polling. Iată trucul cu accessor property care transformă scrierea într-un eveniment — plus getter-ul pe care nu trebuie să-l uiți, și cum să înlocuiești complet valoarea.
Potrivește textul în containerul său cu CSS pur — fără JavaScript
Toată lumea scrie un hook JavaScript care micșorează font-size până când textul încape în container. Iată o alternativă complet funcțională și fără JS, folosind unități de container query, clamp() și despărțire în silabe în funcție de limbă — inclusiv capcana cascadei care îi face pe mulți să renunțe.
next/dynamic nu te va salva: de ce paginile Next.js bazate pe CMS livrează fiecare chunk
Paginile noastre Next.js bazate pe CMS livrau toate cele ~100 de componente de secțiune pe fiecare rută — în ciuda unei utilizări exemplare a next/dynamic. Am epuizat orice remediu la nivel de bundler (import() direct, împărțirea fișierelor, configurarea Turbopack, splitChunks în webpack) înainte de a găsi cauza reală: accesibilitatea, nu chunking-ul. Codegen la build time plus rewrites au redus JavaScript-ul de la prima încărcare cu 53%.
Îmi scot board-urile din Miro și le aduc în Obsidian
Butonul Export din Miro îți dă un PNG sau un PDF — o fotografie a datelor, nu datele. Dacă board-urile tale sunt load-bearing maps of thinking adunate de-a lungul anilor, locul lor e în Obsidian: editable, searchable, într-un vault local. Cum am scos board-urile din Miro prin REST API și le-am convertit în Excalidraw / Obsidian Canvas — păstrând poziții, culori, fonturi, curved connectors, mindmap nodes — iar lecția merge mai departe decât Miro: orice SaaS merită un exit plan ÎNAINTE să-l deschizi vreodată.
Claude Code Multi-Profile, v2: o arhitectură XDG curată
După o lună pe vechea abordare bazată pe alias, mi-am reconstruit setup-ul multi-profile Claude Code într-o structură conformă XDG sub ~/.config/claude-profiles/. Motivul real nu a fost ordinea — a fost descoperirea că ~/.claude.json este un fișier separat în rădăcina home, unde trăiau discret serverele MCP adăugate cu --scope user.
Liniștea pe care a oprit-o AI
Mai merită să înveți programare dacă există AI? Răspunsul zgomotos greșește din ambele părți. Cu baza de dovezi 2025–2026 (Nature, Anthropic, AI & Society) întrebarea nu e "AI sau nu", ci ce competențe îi predai AI-ului și pe care le păstrezi pentru tine — și un lucru chiar s-a schimbat: înainte realitatea te forța să înveți prin fricțiune, AI a oprit în tăcere această presiune.
Cum să scrii agenți Claude Code care nu te mint
Două reguli pentru pipeline-uri de agenți Claude Code de încredere: un agent per specializare și comenzi de shell în locul prompturilor oriunde sunt implicate răspunsuri cantitative.
Cum conectezi Claude Desktop la Obsidian — O călătorie prin 4 servere MCP
O poveste reală despre găsirea unei modalități stabile de a automatiza refactoring-ul vault-ului Obsidian prin Claude. Ce s-a stricat, ce a funcționat și de ce VaultForge s-a dovedit a fi singura opțiune funcțională.
Găurile negre ca universuri recursive: de la fizică la sensul existenței
Ce-ar fi dacă fiecare gaură neagră este un Big Bang al unui nou univers? O explorare a cosmologiei recursive, a radiației Hawking și a închiderii cognitive.
AI a ucis CMS-ul — cel puțin pentru site-urile simple
De ce sistemele tradiționale de gestionare a conținutului devin inutile pentru portofolii, bloguri și landing page-uri — și cum instrumentele AI înlocuiesc întregul strat CMS cu limbaj natural.
Cum conectezi Perplexity AI la Obsidian prin MCP — notițe direct din chat
Configurează Perplexity Desktop pentru a citi și scrie în Obsidian vault-ul tău folosind serverul MCP filesystem. Cercetează pe web și salvează în notele tale într-o singură conversație.
Digest zilnic de știri AI cu Claude Code CLI și Obsidian — zero dependențe
Cum am construit un agent zilnic de documentare a știrilor cu un script bash de 6 linii, modul headless Claude Code și macOS launchd. Caută 11 subiecte și scrie digesturi direct în Obsidian.
Next.js Dark Mode fără flash sau avertismente React 19
Cum să înlocuiești next-themes cu Zustand + useServerInsertedHTML pentru dark mode fără pâlpâire în Next.js 15+, fără avertismente de script React 19.
Cum am eliminat 94 de fișiere CSS care blochează randarea în Next.js 16 cu o funcționalitate Turbopack slab documentată
După zile în care am încercat fiecare abordare — de la experimental.inlineCss până la hack-uri cu MutationObserver — am descoperit Turbopack Import Attributes care rezolvă problema CSS-ului ce blochează randarea în Next.js App Router.