// Studija slučaja

FOX Models — sajt modelske agencije u tamnoj 3D izvedbi

Modelskoj agenciji je sajt izlog, a izlog su lica. Ova izvedba postavlja fotografije u 3D prsten koji se okreće dok skrolujete, a sve ispod toga je običan brz katalog: bordovi, profili sa merama i prijava za nove modele. Naš poddomen, naš projekat, otvoren za proveru.

Klijent
FOX Models, modelska agencija
Delatnost
Bordovi modela, skauting, booking
Grad
Beograd
Tip
Višestrani sajt sa 3D scenom (naš projekat)
Tehnologije
Next.js 16 · React Three Fiber · three.js · GSAP · Lenis
Obim
24 statičke strane, 17 profila modela
Status
Živ na našem poddomenu, zatvoren za indeksiranje
Naslovna strana sajta FOX Models sa naslovom Lica koja pamtiš
Naslovna — naslov „Lica koja pamtiš" preko 3D prstena fotografija

Ko je FOX Models i čiji je ovo sajt

FOX Models je modelska agencija iz Beograda. Vodi ženski i muški bord, skautira nova lica i plasira ih kod modnih kuća, magazina i brendova — od prvog test snimanja do kampanje. Posao agencije je da lice dovede pred naručioca koji bira, a sajt je prvo mesto gde taj naručilac gleda: otvori bord, prelista, zapamti dva imena i piše na booking.

Da odmah bude jasno čije je ovo: models1.svilenkovic.rs je naš poddomen i naš sopstveni projekat. Sajt je nastao kao predlog redizajna za agenciju, stoji živ na našem serveru i služi kao primer rada. Imena, mere i deo fotografija su demo sadržaj koji stoji na jednom mestu u kodu — pri prelasku na pravi domen agencije zamenjuje se podacima iz njene baze.

Zbog toga u tekstu ispod nema nijedne tvrdnje o posećenosti, upitima ili rezultatima kampanja. Ima samo onoga što se može otvoriti i proveriti: kako je sajt sklopljen, zašto je 3D scena tu gde jeste, gde je bilo teško i šta bi agencija dobila kada bi ga uzela na svoj domen.

Dve izvedbe za istu agenciju

Za FOX Models postoje dva sajta, ne jedan. Ovo je tamna verzija sa 3D scenom. Druga je klasična, svetla, bez ijedne 3D linije — o njoj piše u posebnoj studiji, FOX Models, klasična verzija, i ona živi na drugom poddomenu. Isti sadržaj, ista agencija, dva potpuno različita utiska.

Razlog za dve izvedbe je prost: kod modne agencije ukus vlasnika odlučuje više nego bilo koja lista funkcija. Umesto da nagađamo, napravili smo dva pola. Jedan je gola mreža lica bez ukrasa, u maniru skandinavskih agencijskih sajtova. Drugi je ovaj — crna podloga, cyan akcenat, fotografije koje se okreću u prostoru dok skrolujete.

Kada je agencija pogledala obe, poruka je bila da naslovna sme da bude jednostavnija. Tu povratnu informaciju je pokupila klasična verzija i njena početna strana je svedena na čistu mrežu cele postave. Ova verzija je namerno ostala na suprotnom kraju, kao odgovor na pitanje šta je maksimum atmosfere koji sajt agencije može da podnese a da i dalje bude upotrebljiv.

Šta je trebalo rešiti

Sajt modelske agencije je katalog ljudi. To zvuči kao obična galerija dok ne sednete da ga sklopite — onda ispadne da ima četiri zahteva koji se međusobno guraju:

  • Fotografija je proizvod. Sve što stoji preko slike, seče je ili je razvlači radi protiv sajta. Kadriranje mora da bude tačno, na svim širinama, i za portret i za kvadrat.
  • Bordovi se ne gledaju, oni se prelistavaju. Naručilac ne čita opise, on skenira lica i zaustavi se na jednom. Mreža mora da bude brza, a osnovni podaci moraju da budu na dohvat bez otvaranja profila.
  • Svaki model je sopstvena strana. Booking se šalje sa jedne adrese koja se prosledi kolegi, otvori na telefonu i deli. Profil mora da ima svoj URL, svoj naslov i svoju sliku za pregled u porukama.
  • Prijava novih lica je drugi tok posla. Skauting stiže od nepoznatih ljudi, sa telefona, sa dve do tri fotografije. To nije ista forma kao booking i ne sme da bude ista.

Uz to je stajao zahtev koji je ceo projekat gurnuo u 3D: agencija koja radi sa modnim kućama ne sme da ima sajt koji izgleda kao lokalni katalog. Prvi ekran mora da nosi utisak. Ali utisak koji jede fotografije ili blokira skrol je gori nego da ga nema — pa je scena morala da bude atmosfera iza sadržaja, ne prepreka ispred njega.

Struktura sajta

Šest tipova strana, ništa više. Naslovna, ženski bord, muški bord, profil modela, editorijali i kontakt sa prijavom. Iz toga se u izgradnji dobija 24 statičke strane, jer svaki model dobija svoju: trenutno ih je sedamnaest, dvanaest u ženskom i pet u muškom bordu.

Naslovna vodi kroz pet poteza. Prvo naslov preko 3D scene, pa traka sa imenima brendova i magazina za koje se radilo, pa izbor lica iz ženskog borda, pa naslovnice i editorijali, pa dva velika ulaza u ženski i muški bord. Na dnu je kratak tekst o agenciji i poziv za nova lica. Svaka od tih sekcija ima svoj link ka punoj listi, tako da niko ne ostane zaglavljen na naslovnoj.

Adrese su čiste i na srpskom: /zene, /muskarci, /editorijali, /kontakt, /model/mina-s. Nema nastavaka, nema parametara, nema identifikatora u upitu. Server ih rešava kroz try_files, pa svaka od njih ima i pravi 404 ako se pogreši u kucanju.

3D prsten fotografija

Scena je jedan fiksni sloj iza celog sadržaja naslovne. U njemu se vrti prsten od devet portreta, postavljenih u krug i okrenutih ka centru, uz polje od hiljadu osamsto tačaka koje daje dubinu. Kamera nije statična: kako skrolujete, ona se primiče prstenu i istovremeno se podiže, a prsten se spušta i ubrzava okret. Pomeranje miša naginje ceo sklop za nekoliko stepeni.

Ceo taj pokret vodi jedna vrednost — koliko ste procenata strane preskrolovali. Nema tajmera, nema animacije koja ide sama za sebe. Ako stanete, scena stane sa vama. Zbog toga ne postoji trenutak u kome sadržaj i pozadina rade dve različite stvari.

Detalj koji se ne primeti, a bez njega ceo efekat pada: fotografije se u 3D ne razvlače. Svaka tekstura se pri učitavanju iseče na odnos stranica ploče u prstenu, po istom principu po kome slika u mreži popunjava svoj okvir. Bez toga bi široka slika na uspravnoj ploči izgledala kao izobličeno lice, što je na sajtu modelske agencije jedina greška koja se ne oprašta.

Scena postoji samo na naslovnoj. Unutrašnje strane je ne uvoze, pa se ni deo koda sa 3D bibliotekom na njima ne preuzima — bord i profili su čist sadržaj. Na naslovnoj se scena učitava tek u pregledaču, posle glavnog sadržaja, i nikada ne blokira prikaz teksta.

Ko je u sistemu isključio animacije, dobija statičnu sliku: prsten stoji, kamera se ne pomera, a scena se prestaje iscrtavati u petlji. Rezolucija iscrtavanja je ograničena odozgo, pa telefoni sa gustim ekranom ne moraju da crtaju više piksela nego što ima smisla.

Bordovi, pretraga i A–Z

Bord je mreža kartica sa fotografijom, imenom i gradom. Prelaskom preko kartice preko slike se pojavi tanak sloj sa osnovnim merama — za žene visina, mere i broj obuće, za muškarce visina, grudi sa strukom i broj odela. To je tačno onoliko koliko naručiocu treba da odluči hoće li otvoriti profil.

Iznad mreže stoje tri alata. Filter po bordu — Main Board, Development, Commercial, New Faces i domaći modeli. Pretraga po imenu koja radi dok kucate. I A–Z indeks sa srpskom azbukom, uključujući Č, Ć, Đ, Š i Ž, u kome su slova bez ijednog modela vidljivo ugašena i ne mogu da se kliknu. Broj prikazanih modela stoji odmah pored pretrage i menja se u hodu.

Ugašena slova su sitnica koja se često preskoči. Indeks u kome kliknete na slovo i dobijete praznu stranu je gori od indeksa koga nema, jer posetilac pomisli da je sajt pokvaren. Ovde slovo ili vodi negde ili je jasno mrtvo.

Muški bord na /muskarci radi po istoj logici i sa istim komponentama — jedna implementacija, dva pola, bez kopiranog koda koji se posle razilazi.

Strana modela

Profil je podeljen na dve kolone: galerija fotografija sa jedne strane, podaci sa druge. Podaci idu kao uredan spisak — visina, grudi, struk, bokovi ili odelo, obuća, kosa, oči — iznad njih oznaka borda, ispod njih dva poteza: Booking upit koji vodi pravo na formu i link ka Instagram nalogu agencije.

Ispod svakog profila stoji četvoro lica iz istog borda i link ka celom bordu. To je jedina navigacija koja na ovakvom sajtu stvarno radi: čovek koji je otvorio jedan profil skoro nikada ne traži baš to lice, nego lice tog tipa.

Svaka strana modela ima sopstveni naslov, opis i kanonsku adresu, i nosi strukturirane podatke o osobi i putanju do borda kroz koji se do nje stiglo. Kada se link zalepi u poruku ili mejl, izlazi ime, grad i glavna fotografija — a ne golo ime domena.

Editorijali

Strana Editorijali je zid od naslovnica, kampanja i snimanja, sa nazivom magazina ili brenda ispod svake. Klik otvara lajtboks preko cele strane.

Lajtboks je pisan tako da ga može voditi i tastatura: strelice listaju, taster za izlaz zatvara, fokus ostaje zarobljen unutar prikaza dok je otvoren i vraća se na tačno onu sliku sa koje je krenuo. Na telefonu se lista prevlačenjem. To nije ukras — galerija koja se ne može zatvoriti tasterom je galerija iz koje deo posetilaca izađe zatvaranjem kartice.

Fotografije se meko utapaju kada stignu, umesto da uskaču. Pošto na pravom domenu slike stižu iz agencijske baze i mogu da kasne, taj prelaz je namerno ostavljen svuda gde se slika renderuje iz podataka.

Prijava novih modela i zaštita od lažnih skauta

Kontakt strana ima dva odvojena dela. Levo je prijava za nova lica: ime, godine, visina, grad, Instagram, mejl, poruka i polje za fotografije u koje se slike prevlače mišem ili biraju dodirom. Traži se dve do četiri fotografije bez šminke, na prirodnom svetlu, i to piše iznad forme — jer je to jedini format koji skautu stvarno koristi.

Desno su adrese za booking i za skauting, grad i Instagram nalog. Ispod njih stoji upozorenje koje na sajtu modelske agencije vredi koliko i sve ostalo: skauting je uvek besplatan, agencija nikada ne traži uplatu za upis u bord i ne javlja se preko nezvaničnih naloga. Lažni skauti na društvenim mrežama su realan problem ove branše i jedina odbrana koju sajt može da pruži jeste da jasno kaže kako prava komunikacija izgleda.

Otvoreno o ovoj izvedbi: u njoj forma radi samo u pregledaču — proveri polja, prikaže potvrdu i tu stane. Slanje mejla i prijem fotografija su serverski posao koji se veže pri prelasku na pravi domen, jer se tamo forma spaja na isti PHP sloj koji služi i slike iz baze. To je namerna granica ovog prikaza, a ne propust koji čeka da bude primećen. Adresa za kontakt i prijavu stoji na sajtu i vodi na prave adrese agencije.

Tehnička izvedba i brzina

Sajt je pisan u Next.js 16 sa React-om 19 i TypeScript-om, a 3D deo u React Three Fiber-u nad three.js-om, uz GSAP i Lenis za meki skrol. Ono što je bitno za rad na serveru: build ne ostavlja aplikaciju koja se vrti, nego gomilu gotovih HTML fajlova. Nginx ih servira direktno sa diska.

Ta odluka rešava tri stvari odjednom. Nema Node procesa koji može da padne ili da procuri memoriju. Nema servera koji se napada, jer nema ničega što izvršava zahtev. I nema računa da se strana sklapa za svakog posetioca — sve je već sklopljeno.

Na nivou servera stoji ostatak: gzip, trajno keširanje za fajlove sa otiskom u imenu, mesec dana za slike, čiste adrese, sopstveni sertifikat i politika sadržaja koja ograničava odakle sme da se učita bilo šta. Fontovi se učitavaju kroz sistem koji ide uz Next, sa uključenim proširenim latiničnim skupom — bez toga bi se č, ć, š, ž i đ pojavljivali iz rezervnog fonta i naslovi bi imali dva pisma u istom redu.

Dva mesta su oduzela najviše vremena i vredi ih zapisati. Prvo: kada 3D platno stoji iza sadržaja, telo strane mora da bude providno, a osnovnu boju mora da nosi sloj iznad njega. Dok to nije bilo tako, scena se uredno iscrtavala i nije se videla ništa — crn ekran preko koga se crta neprovidna pozadina izgleda isto kao scena koja ne radi. Drugo: učitavanje tekstura mora da bude umotano u sloj koji čeka, inače ceo deo stabla tiho izostane, bez ijedne greške u konzoli. Oba slučaja se ne prijave nigde — vide se samo tako što nešto nema.

Ostatak ponašanja je uobičajen, ali proveren: sadržaj se pojavljuje pri ulasku u vidno polje, a ako skripta ne radi, poseban stil u noscript ga odmah vraća u vidljivo stanje. Detalj i kontakt prelaze u jednu kolonu ispod određene širine, a vodoravno prelivanje je isečeno na nivou dokumenta, pa se sajt ne klati levo-desno ni na uskim ekranima.

SEO, indeksiranje i šta agencija dobija

Sve što SEO traži je već ugrađeno. Svaka strana ima svoj naslov, opis i kanonsku adresu; naslovna nosi podatke o organizaciji i sajtu; bordovi nose listu modela kao kolekciju; profili nose podatke o osobi i putanju kroz sajt; editorijali nose galeriju. Mapa sajta se generiše u izgradnji i sadrži sve strane, uključujući svaki profil.

Uz to ide jedan namerni potez koji izgleda kao greška dok se ne objasni: sajt je zatvoren za indeksiranje. Na našem poddomenu ne treba da bude u pretrazi — u suprotnom bi se pojavljivao kao još jedan rezultat za ime agencije, mešao se sa njenim pravim sajtom i cepao signale na dve adrese. To je jedan red u podešavanjima koji se skida na dan prelaska na pravi domen, i tada sve gore navedeno počne da radi za agenciju umesto da stoji.

Šta bi agencija dobila. Sajt koji se otvara odmah jer je sve unapred sklopljeno; profil za svakog modela sa adresom koja se šalje naručiocu; bord koji se filtrira i pretražuje umesto da se skroluje do dna; jedno mesto u kodu na koje se kači njena baza, tako da dodavanje modela ne znači zvati nas; i prvi ekran koji izgleda kao agencija koja radi sa modnim kućama, a ne kao spisak.

Sve to stoji živo i može se otvoriti na telefonu i na računaru pre nego što se donese ijedna odluka. To je i bila svrha — da se o predlogu ne priča, nego da se on klikne.

// Sajt uživo

FOX Models

Tamna verzija sa 3D scenom na naslovnoj, ženski i muški bord, profili modela i prijava.

models1.svilenkovic.rs

Često postavljana pitanja

Zašto 3D na sajtu modelske agencije?
Zato što je prvi ekran jedino mesto gde takav sajt ima priliku da ostavi utisak, a fotografije su ionako jedini sadržaj. Prsten koji se okreće koristi te iste fotografije umesto da im pravi konkurenciju. Scena je iza sadržaja, ne ispred njega, i postoji samo na naslovnoj.
Da li 3D usporava sajt na telefonu?
Scena se učitava samo na naslovnoj i tek posle glavnog sadržaja — unutrašnje strane ne preuzimaju ni deo koda sa 3D bibliotekom. Rezolucija iscrtavanja je ograničena odozgo, a ko je u sistemu isključio animacije dobija statičnu sliku bez petlje iscrtavanja.
Može li agencija sama da dodaje modele?
U ovoj izvedbi sadržaj stoji na jednom mestu u kodu, jer je reč o prikazu. Struktura je namerno napravljena tako da se to jedno mesto zameni bazom, pa modeli, mere i fotografije idu kroz administraciju kao na svakom drugom našem sajtu.
Zašto se sajt ne pojavljuje u Google pretrazi?
Namerno je zatvoren za indeksiranje jer stoji na našem poddomenu. Da je otvoren, konkurisao bi pravom sajtu agencije za njeno sopstveno ime. Zabrana je jedan red u podešavanjima i skida se onog dana kada sajt pređe na domen agencije.
Šta se dešava sa prijavom koju neko pošalje?
U ovoj izvedbi forma radi samo u pregledaču i staje na potvrdi. Slanje mejla i prijem fotografija se vezuju pri prelasku na pravi domen, na isti serverski sloj koji tada služi i podatke o modelima. Adrese za booking i skauting na strani kontakta su prave.
Koliko modela ovakav sajt može da podnese?
Trenutno se u izgradnji pravi po jedna strana za svakog modela, njih sedamnaest. Za bord od nekoliko stotina lica prelazi se na bazu sa učitavanjem u delovima, dok filter po bordu, pretraga i A–Z indeks ostaju isti — oni su i pisani za velike bordove.

Treba vam ovakav sajt?

Recite mi čime se bavite i šta sajt treba da uradi za vas — dobijate fiksnu ponudu i rok, u pisanoj formi.

Pozovi