Construim site-uri și aplicații. Nouă camere, orice industrie.
O clădire cu nouă camere, nu un portofoliu prin care derulezi.
Ziua începe la ora nouă, într-o sală înaltă cât trei etaje, cu un singur luminator împărțit în nouă casete. Soarele cade prin ele și așază pe pardoseala de terrazzo nouă pătrate limpezi. Acelea sunt camerele. Nu există altă hartă a acestui site și nici nu e nevoie de alta: planul clădirii este navigația, iar sigla nu e desenată nicăieri, pentru că o proiectează clădirea.
Focus9 Lab construiește site-uri și aplicații web. Lucrăm în ordinea în care se construiește: întâi se măsoară, apoi se desenează, apoi se toarnă. Nimic din ce se vede aici nu e o imagine descărcată — fiecare suprafață e generată în pagină și luminată de un singur soare, iar derularea nu coboară printr-o listă de secțiuni, ci mută soarele de dimineață spre seară.
Atriumul nu vinde nimic. Nu e nimic de apăsat aici în afară de o cameră. Rostul lui e să facă mersul mai departe firesc; restul clădirii își susține singură argumentele.
Lumina de la mijlocul zilei intră prin luminatoarele lungi și cade pe lespezi de sticlă mată prinse în rame de alamă. Fiecare lespede e un proiect. Apropierea o aprinde din spate, iar pe sticlă se desenează portretul lui: structura paginii, ritmul tipografic, benzile de culoare — desenate în pagină, niciodată fotografiate.
Focus9 Lab e un laborator tânăr, iar galeria spune asta pe față. Lespezile de acum sunt demonstrații de capacitate: construcții reale, funcționale, făcute ca să arate ce se poate livra și cum e făcut lucrul pe dinăuntru. Nu sunt proiecte de client, nu poartă nume de client și nu li se atribuie rezultate pe care nu le-a măsurat nimeni. Când primele livrări vor exista, vor intra aici cu numele lor și cu cifre măsurate.
O lespede se deschide în cinci plăci de sticlă: structură, tipografie, media, date, interacțiune. Un proiect nu se arată prin captură de ecran, ci prin anatomie — straturile din care e făcut, în ordinea în care au fost decise. Filtrul de domeniu adus de pe peretele industriilor lasă în picioare doar lespezile care vă privesc.
-
Clinică dentară — site cu programare online
SĂNĂTATE · 2026 · site
Demonstrație: site de prezentare pentru un cabinet cu trei scaune, cu programare în trei pași — fără cont, fără parolă, fără telefon.
Problema. Tipul de problemă pentru care e construit: programările intră doar telefonic, iar cererile din afara programului se pierd pentru că nu are cine să răspundă.
- Programare în trei pași — serviciu, medic, interval — fără cont și fără parolă.
- Site static pre-generat la build; formularul merge printr-un Worker, nu printr-un server care trebuie întreținut.
- Orarul și lista de servicii stau într-un fișier de conținut, ca recepția să le poată schimba fără să atingă codul.
- Confirmare pe email către pacient și către cabinet, cu fișier de calendar atașat.
astro · cloudflare-pages · cloudflare-workers · turso · resend
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client, nu conține date reale și nu apare sub numele nimănui. Cifrele sunt fie proprietăți tehnice ale construcției, fie ținte declarate ca atare; termenul este o estimare. Ce vedeți este ce putem livra unui cabinet, nu ce am livrat deja.
-
Restaurant — meniu viu și comandă online
OSPITALITATE · 2026 · site + comandă
Demonstrație: meniu care se editează într-un singur loc, comandă pentru livrare sau ridicare, plată online și bon care ajunge direct în bucătărie.
Problema. Tipul de problemă: meniul e un PDF vechi de un an, comenzile vin pe WhatsApp și se pierd exact în orele de vârf.
- Meniul e conținut structurat, nu PDF: se editează într-un loc și se vede peste tot, inclusiv în datele pentru motoarele de căutare.
- Coșul trăiește în browser; comanda pleacă într-o singură cerere, validată și pe client, și pe server.
- Plata prin Stripe — restaurantul nu atinge și nu stochează date de card.
- Bonul ajunge pe un ecran de bucătărie și pe email, cu ora de ridicare calculată din timpul de preparare.
astro · vite · cloudflare-pages · cloudflare-workers · cloudflare-d1 · stripe
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client și nu conține meniuri, prețuri sau comenzi reale. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Portal imobiliar — listări cu filtre și hartă
IMOBILIARE · 2026 · portal
Demonstrație: portal de listări cu filtre pe preț, zonă și suprafață, hartă sincronizată cu rezultatele și o pagină proprie, indexabilă, pentru fiecare anunț.
Problema. Tipul de problemă: anunțurile stau într-un CMS lent, filtrarea reîncarcă toată pagina, iar motoarele de căutare nu văd decât prima pagină de rezultate.
- Filtrele scriu în URL: orice combinație de căutare poate fi trimisă pe WhatsApp și se deschide identic la celălalt capăt.
- Fiecare anunț are pagina lui, pre-generată la build, cu date structurate pentru motoarele de căutare.
- Harta și lista citesc același set de rezultate — nu există două surse de adevăr.
- Importul din feed-ul agenției rulează ca job programat, nu prin copiere manuală.
astro · vite · cloudflare-pages · cloudflare-workers · postgres · maplibre
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client; anunțurile, prețurile și pozițiile de pe hartă sunt fictive. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Cabinet de avocatură — site de prezentare
SERVICII · 2026 · site
Demonstrație: site sobru de prezentare — arii de practică, echipă, publicații — și un formular de contact care nu cere mai mult decât e nevoie.
Problema. Tipul de problemă: clientul potențial caută competență și discreție, nu animații. Site-ul trebuie să răspundă la „ce faceți” și „cum vă găsesc” în primele două ecrane.
- Ierarhie de publicație: o singură idee pe ecran, coloană de text de 62 de caractere, nimic care clipește.
- Formularul cere doar nume, contact și subiect — niciun câmp care ar putea atrage informație privilegiată într-un canal nesecurizat.
- Fără urmăritori terți și fără fonturi de la Google: tot ce se încarcă vine de pe domeniul propriu.
- RO și EN din același conținut, cu hreflang corect și aceeași structură de pagini.
astro · cloudflare-pages · cloudflare-workers · resend
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client, nu reproduce niciun cabinet real și nu conține nume de avocați sau de dosare. Cifrele sunt proprietăți tehnice verificate la build sau ținte declarate ca atare; termenul este o estimare.
-
Sală de fitness — aplicație de abonamente
SERVICII · 2026 · aplicație
Demonstrație: aplicație web pentru abonați — rezervare la clase, starea abonamentului, istoric de prezențe — instalabilă pe telefon, fără magazin de aplicații.
Problema. Tipul de problemă: rezervările la clase se fac pe grupuri de WhatsApp, iar recepția ține evidența abonamentelor într-un tabel pe care îl deschide o singură persoană.
- Aplicație web instalabilă (PWA): merge pe iOS și pe Android din același cod, fără taxă de magazin și fără proces de aprobare.
- Rezervarea funcționează și cu semnal prost — acțiunea se pune la coadă local și se trimite când revine rețeaua.
- Autentificare cu link pe email: fără parole de reținut și fără parole de spart.
- Recepția vede exact aceleași date ca membrul, într-un ecran separat de administrare.
vite · typescript · cloudflare-pages · cloudflare-workers · cloudflare-d1 · workbox
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client și nu conține membri, abonamente sau prezențe reale. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Producător — catalog tehnic B2B
PRODUCȚIE · 2026 · catalog
Demonstrație: catalog de produse cu specificații tehnice, filtrare pe parametri, fișe descărcabile și coș de cerere de ofertă în locul prețului la vedere.
Problema. Tipul de problemă: catalogul e un PDF de 200 de pagini trimis pe email, iar cumpărătorul industrial caută după cotă, material și toleranță, nu după poză.
- Filtrare pe parametri tehnici — material, dimensiune, toleranță — nu pe categorii de marketing.
- Fiecare produs are cod, fișă tehnică descărcabilă și pagină proprie, indexabilă.
- Coș de cerere de ofertă în loc de preț public — modelul real de vânzare B2B, nu un magazin deghizat.
- Catalogul se importă din ERP printr-un fișier versionat; site-ul nu ghicește niciodată stocul.
astro · vite · cloudflare-pages · cloudflare-workers · postgres · typesense
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client; codurile de produs, specificațiile și fișele tehnice sunt fictive. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Pensiune — site cu rezervări directe
OSPITALITATE · 2026 · site + rezervări
Demonstrație: site de cazare cu calendar de disponibilitate, rezervare directă și avans online, ca proprietarul să nu depindă doar de platformele de intermediere.
Problema. Tipul de problemă: toate rezervările vin prin platforme care iau comision, iar site-ul propriu nu poate încasa nimic și nu știe ce e liber.
- Calendar de disponibilitate sincronizat prin iCal cu platformele existente, în ambele sensuri, ca să nu existe suprarezervare.
- Rezervare directă cu avans prin Stripe; restul se plătește la fața locului.
- Galeria se pregătește la build în trei dimensiuni și format modern, ca să se încarce și pe semnal slab de munte.
- Pagină separată pentru fiecare cameră, cu preț sezonier și reguli de anulare scrise în limbaj clar.
astro · cloudflare-pages · cloudflare-workers · cloudflare-d1 · stripe · ical
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client; pensiunea, camerele, pozele și disponibilitățile sunt fictive. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Magazin online — vitrină și checkout
COMERȚ · 2026 · magazin
Demonstrație: magazin cu vitrină rapidă, filtre pe fațete, pagină de produs care se indexează și checkout scurt, fără cont obligatoriu.
Problema. Tipul de problemă: magazinul stă pe o platformă închiriată, se încarcă greu de pe telefon și pierde clientul exact între coș și plată.
- Vitrina și paginile de produs sunt statice, pre-generate; doar coșul și plata vorbesc cu serverul.
- Checkout fără cont obligatoriu — contul e o opțiune după plată, nu o barieră înainte.
- Imaginile se pregătesc la build în trei dimensiuni și în AVIF/WebP, cu dimensiuni rezervate ca pagina să nu sară sub deget.
- Stocul rămâne în sistemul existent; site-ul nu devine a doua sursă de adevăr pentru stoc.
astro · vite · cloudflare-pages · cloudflare-workers · postgres · stripe
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client; produsele, prețurile și stocurile sunt fictive și nu se poate cumpăra nimic. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Școală de meserii — platformă de cursuri
EDUCAȚIE · 2026 · platformă
Demonstrație: platformă de cursuri cu lecții video, progres salvat pe lecție, teste scurte corectate pe server și adeverință verificabilă la final.
Problema. Tipul de problemă: materialele stau în foldere partajate, nimeni nu știe cine unde a rămas, iar cursantul nu are nicio dovadă că a terminat.
- Videoul e servit de un furnizor specializat; noi ținem structura cursului și progresul, nu fișierele.
- Progresul se salvează pe lecție, nu pe curs — cursantul reia exact de unde a rămas, de pe orice dispozitiv.
- Testele se corectează pe server: răspunsurile corecte nu ajung niciodată în browser.
- Adeverința se generează ca PDF la cerere, cu un cod care poate fi verificat public de un angajator.
astro · vite · cloudflare-pages · cloudflare-workers · postgres · mux
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client; cursurile, cursanții și adeverințele sunt fictive și nu au nicio valoare. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Firmă de transport — panou de urmărire
TRANSPORT · 2026 · panou
Demonstrație: panou intern care arată unde sunt mașinile, ce cursă e întârziată și ce documente lipsesc — plus o pagină publică de urmărire pentru client.
Problema. Tipul de problemă: dispecerul are patru ecrane, două fișiere Excel și telefonul, iar clientul sună ca să afle unde e marfa.
- Un singur tabel operațional, cu filtre salvabile — dispecerul nu mai lucrează din patru surse.
- Datele se actualizează prin flux continuu, nu prin reîncărcarea paginii la fiecare minut.
- Pagina publică de urmărire arată doar starea și ora estimată — nimic despre șofer, traseu sau ceilalți clienți.
- Toate orele se stochează în UTC și se afișează în ora locală a celui care se uită.
vite · typescript · cloudflare-pages · cloudflare-workers · cloudflare-durable-objects · postgres
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client; mașinile, cursele, pozițiile și documentele sunt generate, nu reale. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Service auto — programări și deviz
SERVICII · 2026 · aplicație
Demonstrație: aplicație de programare la service — alegi operațiunea, sistemul calculează durata din normele de timp, iar devizul pleacă la client înainte să vină.
Problema. Tipul de problemă: programările se fac la telefon, toată lumea vine la aceeași oră, iar clientul află prețul abia la ghișeu.
- Programarea cere numărul de înmatriculare și operațiunea; durata se calculează din normele de timp ale service-ului.
- Sloturile se limitează pe elevator, nu pe oră — capacitatea reală, nu una teoretică.
- Devizul pleacă pe email și SMS înainte de programare, cu acceptare printr-un singur clic.
- Istoricul mașinii e legat de numărul de înmatriculare, nu de un cont, ca să funcționeze și pentru clienții ocazionali.
astro · vite · cloudflare-pages · cloudflare-workers · cloudflare-d1 · twilio
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unui client; service-ul, operațiunile, tarifele și numerele de înmatriculare sunt fictive. Cifrele sunt proprietăți tehnice ale construcției sau ținte declarate ca atare; termenul este o estimare.
-
Primărie — portal de informare publică
PUBLIC · 2026 · portal
Demonstrație: portal municipal cu anunțuri, hotărâri de consiliu, formulare descărcabile și o căutare care găsește documentele, nu doar titlurile.
Problema. Tipul de problemă: informația publică există, dar e împrăștiată în PDF-uri fără nume, nu se poate căuta în text și nu se poate citi de pe telefon.
- Fiecare hotărâre are pagina ei, cu text căutabil, nu doar un PDF atașat.
- Contrast, dimensiuni de atingere și navigare la tastatură verificate automat la fiecare build (WCAG 2.1 AA).
- Site static: la o știre care se propagă rapid, nici costul, nici timpul de răspuns nu se schimbă.
- Arhiva rămâne la aceleași adrese — nimic din ce a fost public nu dispare la o reorganizare de meniu.
astro · cloudflare-pages · cloudflare-workers · pagefind · postgres
Demonstrație de capacitate, construită de Focus9 Lab. Nu este un proiect livrat unei instituții, nu reprezintă nicio primărie reală și nu conține documente oficiale. Cifrele sunt proprietăți tehnice verificate la build sau ținte declarate ca atare; termenul este o estimare.
Un perete de terrazzo de cinci metri și jumătate, luminat atât de razant încât fiecare ciob de agregat își face umbra lui. Agregatul e un vocabular: fiecare ciob poartă numele unui domeniu, scris în cuvintele pe care le folosește domeniul acela — stomatologie, ospitalitate, comerț, imobiliare, servicii, producție, educație, transport, sector public.
Peretele răspunde la singura întrebare pe care o pune de fapt un proprietar de clinică sau un director de fabrică: „faceți și pentru domeniul meu?”. Răspunsul e o listă de domenii pentru care construim și pe care le înțelegem îndeajuns cât să punem întrebările potrivite, nu o grilă de logouri împrumutate. Un domeniu nou se adaugă cu o linie de JSON, iar peretele nu are cum să mintă despre vechime.
Un ciob apăsat iese din perete, se prinde în bara de jos și devine filtru pentru galerie; apăsat din nou, se întoarce la locul lui. Aceleași domenii există și ca listă de butoane, grupate pe sectoare, pentru cine caută cu tastatura sau fără imagini.
Pe podeaua de stejar, sub o lampă de lucru, metoda stă întinsă pe banc în patru etape fizice: brief, arhitectură, construcție, livrare. Fiecare etapă are durata ei alături, în săptămâni. Duratele sunt estimări de plan — se scriu la început, se recalculează după brief și apoi se respectă sau se explică.
Pe perete e un rastel de mostre. Fiecare mostră e o piesă din stiva tehnică — sticlă, alamă, stejar, pâslă — cu fișa ei alături. Tehnologia se alege ca un material: pentru cât ține, cum se comportă la atingere, cât costă întreținerea ei peste cinci ani și cine o mai poate lucra după ce plecăm noi.
Nu există alegere neutră de tehnologie. Un site static servit de la marginea rețelei și o aplicație cu bază de date sunt două materiale diferite, cu costuri și riscuri diferite. Alegerea se face la brief, în scris, împreună cu clientul, și poate fi contestată oricând cu un argument mai bun.
01 BRIEF
3–5 zile · estimat
Începem cu întrebări, nu cu design. Ne interesează ce trebuie să facă site-ul pentru afacere — o programare, un telefon, o cerere de ofertă, un drum până în magazin — și cine e omul care ajunge pe el. Ne uităm la ce ai deja: analytics dacă există, ce te întreabă clienții cel mai des la telefon, ce fac concurenții bine și ce fac prost. Ieșim din etapă cu o singură propoziție despre ce înseamnă succes, agreată de amândoi, pentru că tot ce urmează se măsoară față de ea.
02 ARHITECTURĂ
5–8 zile · estimat
Desenăm clădirea înainte s-o turnăm. Structura de pagini și adresele lor, ierarhia din fiecare pagină, drumul până la acțiunea care contează, textele reale — nu lorem — și sistemul de culoare, tipografie și spațiu scris ca valori numite, o dată, pentru tot proiectul. Aici se rezolvă cele mai scumpe greșeli: mutarea unei secțiuni într-un desen costă o oră, aceeași mutare în cod costă o zi.
03 CONSTRUCȚIE
2–4 săptămâni · estimat
Se construiește pe bucăți vizibile: la finalul fiecărei săptămâni există un link pe care îl deschizi de pe telefonul tău, nu o captură de ecran într-un e-mail. Scriem componentele, conținutul intră ca date, nu lipit în șabloane, ca să poată fi schimbat fără noi. Performanța, accesibilitatea și contrastul sunt condiții de trecere la fiecare pas, nu o curățenie de la final — testele automate rulează pe fiecare modificare și opresc publicarea dacă pică.
04 LIVRARE
2–3 zile · estimat
Punem în producție: domeniu, certificat, redirecționări de la vechile adrese ca să nu pierzi pozițiile din căutare, sitemap, date structurate, analytics fără cookie-uri de urmărire acolo unde se poate. Măsurăm după publicare, nu înainte, și îți dăm cifrele reale, nu scorurile de pe laptopul nostru. Apoi predăm: cum schimbi un text, cum adaugi o pagină, ce faci dacă ceva cade și pe cine suni. Codul, domeniul și conturile sunt pe numele tău de la prima zi.
Vite
Bancul de lucru. În dezvoltare servește modulele ES native ale browserului, cu reîmprospătare la cald în milisecunde; la build împachetează, minifică și taie codul nefolosit.
Oțel periat: e unealta la care se lucrează — precisă, rece, făcută pentru viteză — și din ea nu rămâne nimic în obiectul livrat, fiindcă la build dispare complet.
Three.js
Redă clădirea în WebGL: geometrie, materiale PBR generate în cod, o singură lumină care se mișcă odată cu ceasul și camera care cade din plan în atrium.
Beton aparent: e structura turnată pe care stă tot ce se vede, e cea mai grea piesă din pachet și nu iartă o greșeală de turnare — se sparge, nu se retușează.
GSAP
Tot ce are durată: dolly-ul dintre camere, deschiderea panourilor, secvențele legate de derulare prin ScrollTrigger — cu control exact pe timp, ordine și întrerupere.
Alamă: e feronerie — balamaua și amortizorul ușii; se atinge la fiecare interacțiune, trebuie să fie exactă la sutimea de secundă și e singura piesă căreia îi e permis să facă mișcarea vizibilă.
Astro
Generator orientat pe conținut: randează HTML la build și trimite zero JavaScript implicit; codul de client intră doar în insulele declarate ca atare, componentă cu componentă.
Stejar uleiat: e tâmplărie — se croiește pe conținut, se îmbină curat, rămâne cald fără niciun motor, și adaugi mecanism doar în locul unde chiar trebuie să se miște ceva.
Cloudflare Pages
Găzduire pentru fișierele statice: build-ul urcă și e servit din rețeaua Cloudflare, cu HTTPS inclus, o previzualizare pe fiecare ramură și revenire la o versiune anterioară dintr-un clic.
Sticlă mată: e doar panoul dintre fișier și vizitator — nu adaugă nimic de la ea, iar calitatea ei se vede exact atunci când n-o observi deloc.
Cloudflare Workers
Cod care rulează la marginea rețelei, lângă vizitator: primește formularul de contact, ține cheile de API pe server, face redirecționări și vorbește cu servicii externe fără să expună nimic în browser.
Alamă, a doua mostră: e fanta de scrisori din ușă — un mecanism mic și precis, montat în prag, care lasă înăuntru exact ce trebuie și nimic altceva.
Postgres
Baza de date relațională pentru proiectele care chiar au date: programări, comenzi, stocuri, conturi. Tranzacții, constrângeri care refuză datele greșite la scriere, și JSONB acolo unde forma nu e fixă.
Beton, a doua mostră: e fundația turnată o dată — se toarnă greu, se schimbă și mai greu, și tot ce vine deasupra se sprijină pe forma ei, deci se desenează înainte, nu în timpul lucrului.
TypeScript
Adaugă tipuri peste JavaScript și le verifică înainte de rulare, în editor și în CI. La build sunt șterse complet: costul la execuție e exact zero, câștigul e că greșeala apare la scris, nu la client.
Oțel, a doua mostră: e armătura din beton — nu se vede în obiectul finit, nu impresionează pe nimeni la vizionare, dar ea decide dacă structura crapă peste doi ani, când adaugi ceva.
Tailwind CSS
Stilul se scrie direct în marcaj, prin clase mici cu un singur rol, dintr-un set de valori definit o dată — culorile, spațiile și fonturile rămân un sistem, nu o colecție de excepții adunate în timp.
Pâslă de lână: e finisajul aplicat pe suprafață — se croiește la fața locului, se schimbă ușor, ține de aspect și de confort și nu are voie niciodată să preia o sarcină de structură.
Playwright
Rulează testele într-un browser adevărat — Chromium, Firefox și WebKit — apasă butoane ca un om, așteaptă singur elementele în loc de pauze fixe, și păstrează urma completă a unui test picat, cu capturi pas cu pas.
Sticlă, a doua mostră: e geamul prin care se vede obiectul construit, nu o machetă a lui — testul deschide site-ul exact așa cum îl deschide vizitatorul, cu tot cu fonturi, rețea și tastatură.
Lenis
Normalizează derularea: adună impulsurile foarte diferite ale roții de mouse, trackpadului și degetului într-o singură valoare cu inerție controlată, pe care o citesc și camera, și ceasul, și textul.
Pâslă, a doua mostră: e amortizorul — nu schimbă direcția și nu adaugă nimic de spus, doar scoate zgomotul din mișcare, și se observă abia atunci când lipsește.
Beton, lumină rece de nord, un blat de oțel. Pe blat rulează câteva construcții miniaturale, chiar în pagină: un flux de programare, un configurator de preț, o listă de date filtrabilă, un formular care validează cu adevărat.
Nu sunt filmulețe și nu sunt capturi de ecran. Se apasă, răspund, se opresc corect atunci când primesc date greșite și își revin. Un lucru care merge sub degetul cuiva spune mai mult decât orice studiu de caz, iar aici acesta e tot argumentul: priviți cum se comportă, nu cum arată.
Fiecare probă e o bucată dintr-o construcție mai mare, redusă la esențial și lăsată la vedere cu tot cu stările ei urâte — câmp gol, rețea căzută, dată imposibilă. Dacă vreuna face exact ce vă trebuie, jumătate din brief e deja scrisă.
Patru lucruri mici care chiar funcționează, aici, în pagină, sub degetul tău. Nu sunt capturi de ecran, nu sunt filmulețe și nu sunt promisiuni: apeși pe ele și răspund. Sunt demonstrații de capacitate — construite de noi ca să vezi cum lucrăm și ce înseamnă „merge bine” în practică — nu proiecte livrate vreunui client. Fiecare e mecanismul dezbrăcat de decor: același cod care ar ajunge, îmbrăcat, în site-ul tău.
Programare în trei pași
Alegi serviciul, alegi ora, lași un nume și un telefon. Fără cont, fără parolă, fără pagina aia de confirmare pe care o pierde toată lumea. Orele deja ocupate nu apar deloc în listă, așa că nu există „ne pare rău, tocmai s-a luat”, iar confirmarea pleacă pe email în aceeași secundă. E mecanismul de care are nevoie un cabinet, un salon sau un service auto, și e cel care mută telefoanele de la ora opt seara în calendar.
Configurator de preț
Bifezi ce vrei și suma se recalculează în fața ta, cu tot cu ce intră și ce nu intră în ea. Nimic nu apare abia la final. Un configurator bun nu e o vitrină, e o conversație pe care clientul o poartă singur până la capăt și ajunge la tine deja hotărât — iar tu nu mai scrii a treia oară în săptămâna asta aceeași ofertă în Word.
Catalog filtrabil
Trei sute de rânduri filtrate instant, fără reîncărcarea paginii, iar adresa din bară ține minte filtrul: trimiți linkul unui coleg și vede exact ce vezi tu, nu o listă goală. Sortare, căutare, adâncime — și tot ce se vede aici merge la fel de bine cu apartamente, cu piese de schimb, cu meniuri sau cu dosare. Motorul e același; se schimbă doar cuvintele de pe coloane.
Formular care chiar validează
Îți spune ce lipsește înainte să apeși trimite, nu după. Scrie erorile în cuvinte omenești, nu doar în roșu. Merge întreg de la tastatură, se citește corect cu cititorul de ecran, ține minte ce ai scris dacă se rupe internetul și nu te pune să completezi din nou. E cel mai plictisitor lucru din cameră și e cel care pierde cei mai mulți clienți când e făcut prost.
Pereți de pâslă de lână, tavan jos, lumină caldă și puțină. Sunt singurele materiale moi din toată clădirea, iar acustica se schimbă auzibil la intrare: reverberația cade sub jumătate de secundă și vocea se așază. Camera e făcută ca să te facă întâi tăcut.
Aici ar sta vocile clienților. Deocamdată nu stă niciuna, pentru că Focus9 Lab e la început și nu punem în pereți citate pe care nu ni le-a spus nimeni. Camera rămâne goală până când cineva chiar vorbește în ea, iar când se va umple, se va umple cu nume adevărate.
Până atunci, camera spune ce ascultăm. La prima întâlnire punem aceleași întrebări: cine vă caută acum și de ce; ce se întâmplă cu o cerere după ce intră; ce ați refuzat să faceți până acum și din ce motiv; ce ar trebui să se schimbe, în cifre pe care le țineți deja, ca lucrul acesta să fi meritat. Un brief bun se scrie din răspunsuri, nu din adjective.
Camera asta e făcută din pâslă și tăcere. Pereții mănâncă ecoul, tavanul e jos, lumina e caldă și puțină — e singurul loc moale din toată clădirea, construit anume ca să te facă să vorbești mai încet. Aici nu vorbim noi. Aici ascultăm, iar ca să ascultăm ca lumea punem întotdeauna aceleași șase întrebări la prima întâlnire. Sunt scrise mai jos, ca să știi ce te așteaptă înainte să intri pe ușă.
- Ce se întâmplă azi, concret, când cineva vrea să ajungă la tine? Sună, scrie pe telefon, vine în ușă, sau nu găsește pe unde?
- Ce ar trebui să poată face un om pe site, o singură dată pe zi, ca ziua ta de mâine să fie mai ușoară?
- Cine ține site-ul viu după ce plecăm noi, și cât timp are omul ăla pe săptămână?
- Ce ai mai încercat până acum și n-a mers? Vrem să nu-ți vindem a doua oară aceeași greșeală.
- Ce nu poate să lipsească în ziua în care dăm drumul, și ce poate să aștepte liniștit încă trei luni?
- Peste șase luni, după ce anume îți dai seama că a meritat? Un număr, un telefon care nu mai sună, o dimineață mai scurtă — spune-ne tu care.
Rafturile din camera asta sunt goale, și sunt goale intenționat. Focus9 Lab e un studio nou: n-avem încă clienți livrați, deci n-avem încă voci care să vorbească despre noi — iar a scrie noi citate și a le pune ghilimele ar fi exact felul de minciună mică pe care camera asta a fost făcută s-o audă. Se umple singură, cu vorbele oamenilor pentru care construim, în forma în care le-au spus ei, cu numele lor și cu data. Până atunci, aici stau întrebările noastre, nu laudele noastre.
Oțel, sticlă, lumină de nord, nicio urmă de căldură. Camera aceasta e intenționat cea mai puțin seducătoare din clădire, pentru că sarcina ei e alta: să pună cifrele pe masă fără decor. Ea e contragreutatea care face celelalte camere credibile.
Cifrele sunt de două feluri și diferența e scrisă lângă fiecare. Unele sunt proprietăți ale tehnologiei: un site static servit de la marginea rețelei răspunde din nodul cel mai apropiat, fără server de așteptat, iar un pachet de cod are exact mărimea pe care o are, măsurată la fiecare build. Altele sunt ținte pe care ni le asumăm sau estimări de plan, și poartă cuvântul „țintă” ori „estimat” chiar lângă valoare.
Tot aici stau benzile de preț, orientative, și lista scurtă cu ce luăm și ce nu luăm. Un laborator care spune de la început ce nu face economisește timpul amândurora, iar un preț orientativ dat devreme e o formă de respect, nu o slăbiciune de negociere.
Camera aceasta e rece intenționat. Nu are lumină caldă, nu are poveste și nu încearcă să vă placă. Aici stau cifrele pe care le putem susține, prețurile de la care pornim și lucrurile pe care nu le facem. Focus9 Lab e un studio nou: nu avem încă proiecte de client în producție, deci nu veți găsi aici procente de creștere, mărturii sau logo-uri împrumutate. Găsiți trei lucruri verificabile în locul lor — proprietăți reale ale felului în care construim, ținte pe care ni le asumăm în scris și prețuri orientative, cu ce intră în ele. Dacă ați ajuns aici sceptic, camera asta e scrisă pentru dumneavoastră.
- Timp până la primul octet, de pe edge
- < 50 ms tehnic
- LCP — când se vede conținutul principal
- ≤ 1600 ms tinta
- INP — cât durează până răspunde la atingere
- ≤ 120 ms tinta
- Deplasare de conținut la încărcare (CLS)
- 0 tehnic
- JavaScript la prima încărcare
- ≤ 62 KB (gzip) tinta
- Imagini bitmap descărcate de acest site
- 0 tehnic
- Cereri către domenii terțe și cookie-uri la prima vizită
- 0 tehnic
- Contrast minim text pe fundal
- 4,5:1 tehnic
- Lighthouse pe mobil, poarta noastră de lansare
- ≥ 98 /100 tinta
- De la textul aprobat la textul publicat
- < 2 min tehnic
Diagnostic
de la 600 EUR, orientativ · 5 zile lucrătoare
Site de prezentare
de la 2400 EUR, orientativ · 3–5 săptămâni
Site cu funcții reale
de la 6000 EUR, orientativ · 6–10 săptămâni
Aplicație web
de la 15000 EUR, orientativ · de la 3 luni, în etape livrabile
Întreținere și lucru continuu
de la 180 EUR, orientativ · lunar, cu preaviz de 30 de zile
Ce luăm
- Proiecte cu un decident numit, care poate spune „da” și „nu” în aceeași săptămână.
- Lucrări cu un obiectiv scris înainte de a începe: mai multe programări online, mai puține telefoane de rutină, un timp de răspuns mai scurt, un formular care se completează până la capăt.
- Mandate mici, ca test reciproc — o zi de audit, o pagină, un formular care nu funcționează. Un contract mare poate veni după, dacă amândoi vrem.
- Sisteme moștenite, dacă avem acces la codul și la baza de date existente și voie să spunem franc ce am găsit acolo.
- Proiecte pe care le va prelua altcineva după noi. Codul, domeniul și accesurile sunt ale clientului de la început, iar documentația se scrie pentru cine vine după.
- Clienți care vor să înțeleagă ce cumpără. Explicăm fiecare decizie tehnică în limbaj simplu, de câte ori e nevoie, fără să facem pe deștepții.
Ce nu luăm
- Proiecte fără un decident. Dacă aprobările trec printr-un grup care nu vine la ședințe, termenul nu se poate ține — indiferent cât de bine lucrăm. Preferăm să nu vă promitem o dată pe care structura de decizie nu o permite.
- Muncă de pitch neplătită. Prima discuție, estimarea și o părere onestă sunt gratuite. Concepte, machete sau strategii produse ca să fim aleși dintre mai mulți furnizori — nu. Munca de dinaintea contractului se plătește oricum; preferăm să fie vizibilă în ofertă, nu ascunsă în preț.
- Redesign fără un obiectiv măsurabil. „Să arate mai modern” nu ne dă nimic de verificat la final și nu vă dă nimic de cerut de la noi. Dacă nu putem scrie împreună, într-o propoziție, ce trebuie să se schimbe și de unde vom ști că s-a schimbat, refacerea e o cheltuială, nu o investiție.
- Termene care cer tăieri pe care nu le-am semna: accesibilitate, testare, securitate. Putem lucra repede și putem livra pe etape, dar nu livrăm ceva ce va trebui refăcut peste trei luni și plătit a doua oară.
- Cereri de a fabrica dovezi: recenzii scrise de noi, cifre de rezultat pe care nu le-a măsurat nimeni, logo-uri de clienți pe care nu i-am avut. Refuzăm și pentru clienții noștri, și pentru noi înșine — pagina pe care o citiți e exemplul, iar coloana goală de mai jos e dovada.
Se iese afară. Cer deschis, o bancă de stejar uleiat, un singur zid, iar în zid o fantă de alamă pentru scrisori. Aceea e tot formularul de contact.
Se lasă un mesaj așa cum se pune o scrisoare la cutie: domeniul, tipul de proiect, termenul la care v-ați gândit, o bandă de buget orientativă și ce aveți de spus. Nimic nu e obligatoriu în afară de un fel în care să vă putem răspunde, iar bugetul se cere devreme pentru că e singurul mod cinstit de a nu vă face să pierdeți o săptămână.
Nu există numărătoare inversă, fereastră care sare în față sau insistență după. Răspundem în scris, cu ce credem că se poate face și ce nu, iar dacă lucrarea nu ni se potrivește, o spunem direct și, când avem pe cine, recomandăm pe altcineva.
Ai ieșit afară. Cer deschis, o bancă de stejar uleiat, un zid și, în zid, o fantă de alamă pentru scrisori. Asta e tot ce avem în loc de formular de contact: nicio fereastră care sare, niciun cronometru, nimeni care să-ți spună că oferta expiră diseară. Scrii ce ai de scris, pui scrisoarea în fantă și pleci. Îți răspunde un om, cu o părere, nu cu un preț generat automat.
09 · 21:00
Camera nouă
Camera nouă. Mereu nouă.
Zidărie brută, o prelată peste o formă nedeslușită, o singură lampă de lucru pe trepied. La ora nouă seara aceasta e ultima cameră din clădire și singura care nu se termină niciodată.
În românește, „nouă” înseamnă și cifra, și lucrul proaspăt. A noua cameră este camera nouă: aici stă experimentul care rulează acum — o unealtă pe jumătate făcută, o tehnică pe care o încercăm, ceva ce nu a intrat încă în nicio livrare. Se schimbă des și nu se lustruiește, pentru că lustrul ar strica singurul lucru pe care îl are de spus.
Dacă toate cele nouă celule ale semnului s-au aprins pe drum, lampa se leagănă o dată și aruncă pe prelată aceeași figură de nouă pătrate pe care o desena soarele la ora nouă dimineața. E singura răsplată din tot situl și se stinge singură.
A noua cameră nu se termină niciodată, și asta e ideea. Zidărie brută, o prelată aruncată peste ceva ce încă n-are nume, o lampă de lucru pe picior și praf în fasciculul ei. Aici ține studioul experimentul lunii — lucrul pe care îl construim din curiozitate, înainte să știm dacă ne folosește la ceva. Când se termină și se dovedește bun, se mută într-una din celelalte opt camere și devine metodă. Când nu, rămâne aici ca lecție. În ambele cazuri, a doua zi punem altceva sub prelată.
Materiale fără nicio imagine
Tot ce vezi în clădirea asta — betonul aparent cu găurile lui de cofraj, terrazzo-ul, stejarul uleiat, alama periată, pâsla de lână — e generat în browserul tău, din zgomot și puțină matematică, într-un worker, exact în secundele în care privești încărcătorul. Zero fotografii descărcate, zero texturi în bundle, zero cereri de rețea pentru imagini: de-asta cele nouă pătrate se umple unul câte unul, fiecare când materialul lui iese din cuptor. Experimentul lunii e să vedem cât de departe merge principiul — dacă un site poate arăta ca o clădire fotografiată fără să care nici un pixel de fotografie. Măsurăm două lucruri: câtă memorie de textură cere pe un telefon de gamă medie și în cât timp se toarnă cele nouă materiale. Ambele praguri pe care ni le-am pus sunt ținte, nu rezultate; când avem cifrele măsurate, le trecem în Camera Rece, unde e locul lor.
Camera nouă. Mereu nouă.