Când am început lucrul la site-ul Zafra Chalet, o vilă închiriată integral în Poiana Țapului, lângă Bușteni, drumul obișnuit era la îndemână: o temă gata făcută, câteva module pentru galerie, SEO și formular de contact, pozele încărcate și gata. Așa arată majoritatea site-urilor de cazare din România.
Știam însă ce urmează după un astfel de site. Proprietarul învață un panou de administrare gândit pentru programatori. Modulele trebuie actualizate, iar unul dintre ele se strică la a treia actualizare. Pagina se încarcă greu pe telefon, iar oaspetele care caută cazare de pe o pârtie din Bucegi, cu o liniuță de semnal, renunță și rezervă de pe Booking. Acolo, vila plătește comision la fiecare rezervare.
Așa că am ales alt drum: am construit site-ul de la zero, cu aceleași unelte și aceeași grijă pe care le punem în aplicațiile pentru companii.
Ne-am impus o regulă simplă: proprietara nu trebuie să știe nimic tehnic și nu trebuie să poată strica site-ul din neatenție.
Aproape toate deciziile vin de aici. Pagina e împărțită în secțiuni fixe: vila, ciubărul, spațiile, galeria, harta, întrebările frecvente. Proprietara le poate muta, porni sau opri și poate alege în ce anotimp apare fiecare. Coloanele și fonturile însă nu le poate atinge, așa că pagina arată mereu ca în designul aprobat. Când mută sau ascunde o secțiune, numerotarea și meniul de sus se refac singure.
La fel cu datele care se repetă. Telefonul, adresa sau lista de facilități se scriu o singură dată. Dacă vila primește o saună, proprietara o adaugă într-un singur loc, iar ea apare deodată în pagină, în informațiile pentru Google și în rezumatul citit de asistenții AI.
Tot site-ul e un singur program, scris în Go. Datele stau într-o bază SQLite, care e, de fapt, un singur fișier. Echipa SQLite chiar recomandă baza lor pentru site-uri cu trafic mic și mediu, iar o vilă cu zece locuri e exact acest caz.
Pentru proprietară, alegerea înseamnă liniște. Nu există un server de baze de date separat care să cadă, nu există module de actualizat, iar o copie de siguranță e un singur fișier. Pentru noi înseamnă că putem testa tot site-ul dintr-o singură comandă, înainte de fiecare publicare.
Pagina se construiește pe server și ajunge în browser gata făcută. JavaScript-ul face doar efectele: harta, galeria, clipurile. Chiar și cu JavaScript oprit, oaspetele poate citi tot și poate deschide întrebările frecvente.
Ne-am gândit tot timpul la un om care deschide site-ul de pe telefon, pe date mobile, poate chiar de pe munte. Am lucrat pe câteva fronturi.
Primul e ordinea. Imaginea mare de sus e cerută înaintea oricărui alt lucru, cu o indicație de prioritate ridicată pentru browser. Pe telefon e o imagine mai mică decât pe calculator, așa că nimeni nu descarcă degeaba o poză pentru monitor mare.
Al doilea e răbdarea. Pagina are 60 de imagini, dar 58 dintre ele se încarcă abia când vizitatorul ajunge aproape de ele. Cât timp oaspetele citește, browserul pregătește discret pozele următoare, așa că la derulare sunt deja acolo. Și secțiunile din josul paginii nu sunt desenate până nu e nevoie de ele.
Al treilea e ce nu încărcăm. Fonturile sunt găzduite chiar pe site, doar cu literele necesare, inclusiv diacriticele, iar pagina nu încarcă nimic de la alte firme: niciun script de statistici, niciun widget. Primul text apare cam de două ori mai repede, iar imaginea de sus cu aproape trei secunde mai devreme pe un telefon obișnuit.
Restul ține de meserie: pagina principală are 64 KB și ajunge comprimată la 15,6 KB, toate fișierele vin în paralel pe HTTP/2, iar la a doua vizită aproape totul vine din memoria browserului. În Lighthouse, instrumentul Google pentru măsurarea paginilor, site-ul obține 98–100 pe calculator și în jur de 87 pe mobil, plus 100 la SEO.
Vila arată diferit iarna și vara, așa că ne-am dorit ca și site-ul să facă la fel. Iarna, sus apare creasta Bucegilor înzăpezită și ciubărul aburind în curtea albă. Vara apar terasa, grădina și traseele spre Caraiman. Se schimbă și textele, pentru că nimeni nu vrea să citească „Veniți să vă răcoriți la munte” când afară sunt minus zece grade.
Seara, site-ul trece pe atmosfera înserării, cu nuanța ei albastră și cu alt clip. Ora apusului diferă de la o lună la alta: în decembrie, seara începe pe la 16:30, în iunie după 21:00.
Contează și unde se ia decizia. Serverul alege anotimpul și ora înainte să trimită pagina. Oaspetele din ianuarie primește direct varianta de iarnă, fără să descarce pozele de vară doar ca să fie ascunse și fără ca pagina să „sară” de la o variantă la alta. Google vede exact ce vede și oaspetele.
Tot mai mulți oameni nu mai caută pe Google, ci întreabă ChatGPT sau Perplexity ceva de genul „o vilă cu ciubăr lângă Bușteni”. Am pregătit site-ul pentru amândouă.
Google primește descrierea vilei într-un format structurat, după standardul schema.org pentru unități de cazare, plus întrebările frecvente. Asistenții AI găsesc la /llms.txt un rezumat curat al vilei, după propunerea llms.txt. Amândouă se generează din aceleași date ca pagina, deci nu au cum să rămână în urmă. Pe multe site-uri, aceste informații se scriu separat într-un modul SEO, iar după câteva luni spun altceva decât pagina.
Oaspetele alege perioada și numărul de persoane, iar mesajul către gazdă pleacă gata completat, inclusiv pe WhatsApp. Gazda confirmă prețul în conversație. Recenziile de pe Booking și Google Maps sunt la un clic distanță, ca oaspetele să aibă încredere fără să plece de pe site.
Un site de prezentare pare o țintă fără interes, dar exact astfel de site-uri ajung să afișeze reclame străine sau programe periculoase după ce un modul a rămas neactualizat. La Zafra, browserul primește o listă strictă cu locurile de unde pagina are voie să încarce ceva: doar site-ul însuși și hărțile OpenStreetMap. Chiar dacă cineva ar reuși să strecoare un script, browserul ar refuza să-l ruleze. Baza de date nu e accesibilă din internet, iar textele scrise în administrare acceptă doar formatări simple.
Înainte de fiecare versiune nouă rulează o serie de teste automate. Ele verifică, printre altele, că fiecare secțiune are text și poze în fiecare anotimp și la fiecare oră, că niciun text nu iese din spațiul lui și că fiecare poză are o descriere pentru nevăzători. Dacă un test pică, versiunea nu ajunge online.
Pe lângă ele, am trecut prin site în browser în toate combinațiile: patru anotimpuri, zi și seară, pe calculator, tabletă și telefon.
Mulți dintre oaspeții vilei au trecut de 50 de ani, așa că am ținut cont și de ei: text mare, contrast bun, telefon și WhatsApp la un clic, fără animații pentru cine le-a oprit din setările telefonului.
Partea publică e gata. Acum construim administrarea, cu câteva piese la care ținem în mod special.
Proprietara va putea încărca pozele direct din telefon, exact cum le-a făcut, inclusiv în formatul HEIC al iPhone-ului. Serverul le va întoarce corect, va șterge locația GPS și celelalte date ascunse din fișier, apoi va crea, cu libvips, trei mărimi în format WebP: 800, 1600 și 2400 de pixeli. O poză de 12 MB ajunge astfel la 150–400 KB. Pagina va oferi apoi browserului toate cele trei variante, iar fiecare ecran o va alege pe cea potrivită: telefonul nu va mai primi poza de 2400 de pixeli făcută pentru un monitor mare. Ne propunem să trecem de 90 pe mobil.
Clipurile filmate cu telefonul vor trece și ele printr-o conversie automată. Un clip 4K de 200 MB va ajunge la vreo 5 MB și va porni imediat, fără să aștepte descărcarea completă. Conversiile se vor face pe rând, în fundal, fără ca vizitatorii să simtă ceva.
Proprietara va scrie doar în română. La salvare, site-ul va trimite la tradus, cu un model AI, numai textele modificate, apoi va verifica dacă traducerea a păstrat formatarea. Dacă nu, traducerea nu ajunge pe site. Nume ca Zafra Chalet, Poiana Țapului sau Caraiman rămân neschimbate. Versiunea în engleză va avea adresa ei, iar Google va ști că e aceeași pagină în altă limbă.
Mai urmează autentificarea cu cod de pe telefon pentru administrare, posibilitatea de a anula orice modificare, calendarul sincronizat și rezervarea cu plată online.
Nu orice afacere mică are nevoie de un site construit de la zero. Câteva lucruri merită totuși cerute de la orice site, oricum ar fi făcut: să se deschidă repede pe un telefon obișnuit, să trimită pozele la mărimea ecranului, nu la mărimea din aparatul foto, să spună același lucru în pagină și în informațiile pentru Google, să aibă un llms.txt pentru asistenții AI și să-l lase pe proprietar să schimbe conținutul fără să strice designul. Iar fiecare rezervare directă e o rezervare fără comision.
Proprietara și oaspeții pot citi mai multe pe pagina Despre site a Zafra Chalet.
La DO IT MAGIC SOFTWARE construim site-uri și platforme web rapide și sigure, de la o vilă la munte la aplicații pentru companii. Dacă vrei un site care lucrează pentru tine, scrie-ne.