Halo City Leskovac — prodaja i servis telefona na sopstvenom sajtu
Radnja od tri čoveka u centru Leskovca koja već dvanaest godina prodaje i popravlja telefone, a u pretrazi je praktično nije bilo. Trebalo joj je pet strana koje pokrivaju ono što ljudi zaista kucaju, poziv na jedan dodir umesto kontakt-forme, i vizuelni nivo koji ne izgleda jeftinije od konkurencije sa pravim domenom.
- Klijent
- Halo City Leskovac
- Delatnost
- Prodaja i servis mobilnih telefona
- Područje
- Leskovac i Jablanički okrug
- Tip
- Višestrani sajt, pet javnih strana
- Tehnologije
- Next.js 16 · React 19 · Tailwind 4 · TypeScript
- Status
- Živ od maja 2026, na mom poddomenu
U ovom tekstu
- Čime se Halo City bavi
- Zašto sajt stoji na mom poddomenu
- Šta je trebalo rešiti
- Pet strana umesto jedne duge
- Poziv i Viber umesto kontakt-forme
- Cenovnik koji je namerno izbačen
- 3D koji nije preživeo drugu verziju
- Brzina — prvi ekran bez čekanja
- SEO i lokalna vidljivost
- Analitika koja poštuje odgovor
- Šta radnja na kraju ima
Čime se Halo City bavi
Halo City Leskovac je prodavnica i servis mobilnih telefona na Bulevaru Oslobođenja 1, u samom centru Leskovca. Radnja posluje od avgusta 2014, ima tri zaposlena, a na Google Maps-u nosi ocenu 4,3 od 41 recenzije (stanje od 3. septembra 2026).
Posao stoji na dve noge. Prva je prodaja — novi telefoni popularnih marki (iPhone, Samsung, Xiaomi, Huawei, Honor, OPPO), provereni polovni uređaji i oprema: maske, zaštitna stakla, punjači, kablovi, slušalice, držači. Druga je servis — zamena ekrana i baterije, konektor za punjenje, tečnost i vlaga, softver i sistem, kamera i zvučnik, sve do mikrolemljenja na matičnoj ploči kada telefon više ne daje znake života.
Kupci ne dolaze samo iz Leskovca. U grad gravitiraju Vlasotince, Lebane, Vladičin Han, Bojnik i Medveđa — mesta iz kojih se sa pokvarenim telefonom putuje u najbliži veći centar. To je i razlog zašto sajt ovakvoj radnji uopšte znači: čovek kome je pukao ekran prvo pita pretragu, ne komšiju. Ako radnje nema u rezultatima, ne postoji ni za tog čoveka.
Sve što radnja nudi bilo je već tu — dvanaest godina rada, ocena, redovni kupci i adresa u centru. Nedostajala je jedino adresa na internetu.
Zašto sajt stoji na mom poddomenu
Ovde treba biti otvoren. halocity.svilenkovic.rs je moj poddomen, ne klijentov domen. Radnja je stvarna, sajt je živ od maja 2026, ali firma nema svoj domen — pa sajt stoji na mojoj infrastrukturi, na hostu koji nosi ime radnje.
To nije parkirana stranica koja čeka nešto. Sajt ima sopstveni HTTPS sertifikat koji se automatski obnavlja, sopstveni sitemap i robots.txt, sopstvenu analitiku sa pristankom na kolačiće, sopstveni zapis u Google Search Console-u i u Bing Webmaster alatima, i sopstveni IndexNow ključ kojim se izmene prijavljuju pretraživačima. Radi kao svaki drugi sajt, samo mu je adresa poddomen.
Razlika koja se plaća jeste u lokalnom SEO-u. Sopstveni domen sa imenom firme u adresi ima bolju polaznu poziciju za upite tipa „servis telefona Leskovac" nego poddomen, i to je pošteno reći umesto praviti se da razlike nema.
Selidba je pripremljena i već jednom uvežbana. Sajt je u julu 2026. prebačen sa starog radnog hosta na današnji, i tada je stara adresa dobila trajno preusmerenje u jednom skoku, sa očuvanom putanjom — /servis je otišao na /servis, ne na naslovnu. Ista procedura čeka i pravi domen kada ga bude: DNS zapis, sertifikat, izmena kanonskih adresa, 301 sa poddomena. To je pola dana posla, a ne novi sajt.
Šta je trebalo rešiti
Zadatak nije bio „napravi sajt radnji" nego četiri konkretne stvari:
- Naći se u pretrazi za dva različita posla. Čovek koji kupuje telefon i čovek kome je pukao ekran nisu isti posetilac i ne kucaju istu stvar. Jedna strana ne može da bude prva za oba upita.
- Poziv na jedan dodir. Vlasnik i dva zaposlena stoje za pultom ceo dan. Kontakt-forma koju niko ne otvara je gore nego da je nema.
- Izgledati ozbiljno. U gradu već postoji konkurent sa pravim domenom i dužim stažom na internetu. Radnja od tri čoveka ne može da ga pobedi obimom, pa mora izgledom i jasnoćom.
- Ne obećati cenu koja se menja. Cena ekrana zavisi od modela i od kursa. Broj na sajtu koji ne stoji je gori od nikakvog broja.
Uz to je išao uslov koji se lako previdi: sajt mora da radi na telefonu sa slabom vezom, jer ga najčešće otvara neko kome je uređaj u kvaru i ko sedi u autobusu. Sve odluke o brzini, pa na kraju i ona da 3D ode sa sajta, izvedene su iz te jedne rečenice.
Pet strana umesto jedne duge
Prva verzija je bila jedna duga strana sa svim sekcijama, kako se to obično radi za male firme. Ubrzo je postalo jasno da to ne rešava prvu tačku zadatka. Jedna strana ima jedan naslov, jedan opis i jedan glavni pojam — i tim pojmom se takmiči ili za prodaju ili za servis, nikako za oba.
Sajt je zato razbijen na pet strana, svaka sa sopstvenim naslovom, opisom i kanonskom adresom:
- Naslovna — tri najkraća puta do informacije (ponuda, servis i adresa), zašto se radnji veruje, utisci kupaca i lokacija.
- Proizvodi — aktuelna ponuda bez kataloga i bez cena: koja tri podatka poslati da bi odgovor stigao iz prve i pitanja koja kupci postavljaju o ponudi.
- Servis — šta poslati pre dolaska, šta uraditi pre predaje telefona i najčešća pitanja o servisu.
- O nama — samo podaci koji mogu da se provere: datum osnivanja, adresa, matični broj, PIB i registrovana delatnost, uz link na javni poslovni profil.
- Kontakt — adresa, mobilni i Viber, fiksni broj, e-pošta, radno vreme i link za navigaciju.
Naslovi nose grad tamo gde ljudi traže pojam sa gradom: naslovna je „Prodaja i servis mobilnih telefona Leskovac", a servis „Servis mobilnih telefona u Leskovcu". To zvuči kao sitnica, ali je razlika između strane koja se takmiči za pojam sa gradom i strane koja se takmiči sa celom Srbijom.
Strane se ne završavaju slepo. Ponuda i servis se završavaju pozivom, Viberom i putem do adrese, a strana o radnji vodi dalje ka ponudi, servisu i kontaktu.
Poziv i Viber umesto kontakt-forme
Na celom sajtu nema nijedne kontakt-forme. To je bila odluka, ne propust.
Forma na sajtu male radnje radi ovako: posetilac napiše poruku, poruka padne u sanduče koje se otvara uveče ili nikad, a čovek u međuvremenu pozove nekog drugog. Telefon zvoni odmah. Viber poruka stigne odmah. Zato su na sajtu samo ta dva puta, i to na svakom ekranu.
Broj u zaglavlju je aktivan link koji na telefonu otvara pozivnik. Dugme za Viber otvara razgovor sa unapred napisanom porukom: na strani sa ponudom poruka već traži model, memoriju i boju, a na servisu model uređaja i opis problema. Vlasnik dobija poruku koja već kaže o čemu se radi, umesto praznog „zdravo".
Kontakt strana je ostatak: adresa, mobilni i fiksni broj, e-pošta, radno vreme po danima sa jasno napisanim „nedeljom zatvoreno" i link koji otvara navigaciju. Mapa je posebna priča. U prvoj verziji stajala je sa filterom preko sebe pa je izgledala kao pokvarena slika, zatim je zamenjena običnim ugrađenim prikazom, a u drugoj verziji sajta umesto ugrađene mape stoje link za navigaciju i link na Google profil radnje.
Sporedna korist od odluke bez forme je pravna. Sajt ne prikuplja lične podatke kroz veb, pa politika privatnosti može da bude kratka i istinita umesto duga i prepisana.
Cenovnik koji je namerno izbačen
Sajt je jedno vreme imao ceo cenovnik servisa sa iznosima u dinarima. Izbačen je u celosti i to je bila dobra odluka.
Cena zamene ekrana zavisi od modela, od toga da li ide originalni ili proveren deo, i od nabavne cene koja se menja. Cenovnik na sajtu koji ne prati radnju stvara dva problema: kupca koji dođe sa štampanim brojem u glavi, i radnju koja mora da objašnjava zašto broj više ne važi.
Prva zamena za iznose bio je opis postupka: besplatna dijagnostika, cena pre popravke, popravka tek po odobrenju. U septembru 2026. sajt je dobio drugu verziju, pisanu tako da na strani ostane samo ono što može da se proveri, i tada je izbačen i taj opis. Danas sajt ne obećava ništa o ceni. Kaže koje podatke treba poslati, a cenu, dostupnost i prijem uređaja potvrđuje radnja, telefonom ili preko Vibera.
Isti princip je primenjen i kada se posao promenio. Sajt je imao celu stranu o otkupu polovnih telefona; kada je fokus prešao na prodaju i servis, strana je uklonjena zajedno sa svakim pominjanjem otkupa u meniju, opisima, strukturisanim podacima i sitemapu — a stara adresa je dobila preusmerenje na prodaju, da nijedan zapamćen ili indeksiran link ne završi u praznom. Sajt prati radnju, ne obrnuto.
3D koji nije preživeo drugu verziju
Ovo je deo gde je bilo najviše lutanja i gde je najviše rada završilo u kanti.
Ideja je od početka bila da sajt ima živu, trodimenzionalnu pozadinu — nešto što odmah kaže da ovo nije šablon kupljen za dvadeset evra. Prva ozbiljna verzija je otišla korak dalje: telefon je modelovan u Blenderu iz skripte, izvezen kao .glb model od stotinak kilobajta bez ikakvog spoljnog dekodera, pa umnožen u lepezu od pet uređaja u različitim bojama koji stoje u heroju. Iz istog modela je izrenderovana i fotorealistična pozadina sa tri telefona.
Na ekranu je izgledalo lažno. Ne loše — lažno. Telefon u igrici i telefon na sajtu prodavnice nisu ista stvar: kupac zna kako izgleda pravi iPhone i odmah vidi da gleda model. Ceo taj sloj je obrisan istog dana, zajedno sa modelom, renderom i skriptom koja ih pravi.
Zamena je jedna prava fotografija lineup-a telefona bez pozadine, izrezana alatom za uklanjanje pozadine i sabijena u WebP od 46 kilobajta. Rezultat je bolji od svega što je pre toga modelovano, a težak je koliko i jedna ikonica.
Trodimenzionalni sloj je posle toga još neko vreme živeo kao pozadina: WebGL scena sa šesnaest bledih, fasetiranih kristala koji su lebdeli u dubini, uz prašinu, maglu i kameru koja je blago pratila miša i skrol. U drugoj verziji sajta, početkom septembra 2026, ta scena je uklonjena u celosti, zajedno sa three.js-om i ostalim 3D bibliotekama, bibliotekom za animacije, glatkim skrolom, uvodnim ekranom i trakom sa logotipima marki. U kodu sajta danas nema nijedne 3D zavisnosti.
Pozadinu sada crta sam brauzer iz nekoliko CSS pravila: dve meke mrlje boje, plava gore desno i topla žuta dole levo, fina mreža koja bledi naniže i veliki nepravilan prsten koji napravi krug za trideset osam sekundi. Nema skripta koji treba sačekati ni scene koju treba pauzirati i počistiti, a sloj je tu od prvog iscrtavanja strane. Kada je u sistemu uključeno smanjenje animacija, prsten stoji.
Ostatak pokreta je jednako skroman. Sekcije se blago podignu kada uđu u ekran, a na naslovnoj tanka traka pri vrhu pokazuje koliko je strane pročitano i, na širokim ekranima, linija signala sa leve strane se puni dok se skroluje. To su CSS prelazi i dve male komponente, bez ijedne biblioteke za animacije.
Brzina — prvi ekran bez čekanja
Dok je 3D scena postojala, cela izvedba je bila podređena jednom pravilu: ništa od 3D-a ne sme da se dogodi pre nego što posetilac vidi sadržaj. Biblioteka se nije uvozila u glavni paket nego se učitavala naknadno, tek kada se strana potpuno učita i brauzer ostane bez posla. Merenje pre i posle te izmene: rezultat za mobilne uređaje porastao je sa 88 na 92, a vreme u kojem je glavna nit blokirana palo je sa 380 na 250 milisekundi.
Scena se uz to pauzirala kada kartica nije u prvom planu, gustina piksela bila je ograničena odozgo, a pri uklanjanju komponente sve geometrije i materijali su se uredno oslobađali. Uz uključeno smanjenje animacija ili bez podrške za WebGL scena se nije ni pokretala.
Druga verzija je ceo taj posao rešila tako što ga je uklonila. Bez 3D biblioteke nema šta da se odlaže, pauzira ili oslobađa pri prelasku između strana, a pozadina košta koliko i nekoliko pravila u stilu.
Isti oprez važi i za ostatak. Slika u heroju se učitava odmah i sa visokim prioritetom, jer je ona ono što posetilac prvo vidi. Sekcije se pojavljuju pri skrolu, ali ih sakriva tek skript koji ih i otkriva: bez JavaScript-a ništa nije sakriveno, uz smanjenje animacija sve se prikaže odmah, a ako nešto zapne, posle pet sekundi se prikaže i ono što je ostalo.
Iz prve verzije vredi zapamtiti jednu mernu zamku, jer se ponavlja na svakom sajtu sa gradijentnim naslovom. Glavni naslov je tada bio obojen gradijentom kroz tekst, što ga tehnički čini providnim, pa ga automatski test nije računao kao najveći element na ekranu. Na tekstualnim stranama kandidat je umesto njega postajala traka za kolačiće, koja se pojavljuje posle učitavanja, pa je laboratorijski rezultat prikazivao pet sekundi, a nezavisno merenje u pravom brauzeru nešto preko jedne sekunde. Broj iz laboratorije je bio artefakt, ne kvar, i tako je i tretiran.
SEO i lokalna vidljivost
Sve strane su prošle prolaz u kojem su naslovi skraćeni na dužinu koju pretraživač zaista prikazuje, a opisi svedeni ispod sto šezdeset znakova. Naslov naslovne je sa devedeset dva znaka skraćen na pedeset pet i počinje pojmom, ne imenom firme.
Strukturisani podaci su najveći deo lokalnog posla. Sajt nosi povezani graf u kojem su prodavnica mobilnih telefona, registrovana radnja sa punim poslovnim imenom, matičnim brojem i PIB-om, sam sajt i, na podstranama, putanja kretanja. Uz njih idu adresa sa poštanskim brojem, geografske koordinate, radno vreme po danima i datum osnivanja. Ocena, broj zaposlenih i spisak mesta iz okoline bili su deo grafa u prvoj verziji, a u drugoj su izostavljeni.
Jedna stvar je pritom morala da se ispravi. Blok sa čestim pitanjima bio je postavljen na nivou celog sajta, pa je pretraživaču javljan i na stranama na kojima pitanja uopšte nema. Prebačen je da se emituje samo na prodaji i servisu, tamo gde ta pitanja stvarno stoje na ekranu. Podatak koji obećava ono što posetilac ne vidi je greška koja se pre ili kasnije naplati.
Uz to idu hiper-lokalna zaglavlja koja se retko postavljaju: oznaka regiona, koordinate, ime mesta i kontakt podaci u obliku koji čitaju društvene mreže. Datoteka robots.txt izričito pušta i botove veštačke inteligencije, jer se sve više odgovora danas daje u razgovoru sa asistentom umesto u listi rezultata. Sitemap ima šest adresa i prijavljen je u oba pretraživača, a izmene se dodatno guraju kroz IndexNow.
Selidba na današnji host donela je i jedan poučan problem. Pretraživač je novi host obišao istog dana kada je pušten, dok je sadržaj bio identičan starom — i proglasio staru adresu kanonskom. Novi sajt je tako neko vreme bio uredan, indeksiran i nevidljiv u isto vreme. Rešenje je bilo trajno preusmerenje starih adresa, ručni zahtev za ponovni obilazak i strpljenje; tehnika je sve vreme bila ispravna, samo je pretraživaču trebalo reći koja je adresa prava. Posle tog prolaza sve strane su nosile stotinu poena na tehničkom delu revizije i prolazile proveru ispravnosti koda bez ijedne greške.
Analitika koja poštuje odgovor
Sajt meri posetu, ali tek kada posetilac to dozvoli. Traka za kolačiće nudi tri odgovora — prihvatanje, samo neophodno i podešavanja — a analitika je unapred postavljena na zabranjeno i čeka odluku. Funkcionalni kolačići rade uvek, jer bez njih sajt ne bi mogao da se prikaže ispravno.
Ta postavka je jedno vreme imala tihu grešku koju vredi ispričati, jer se ne vidi ni na jednom testu. Traka je pristanak upisivala pod jednim imenom, a deo koji pali analitiku čitao je pod drugim. Prvi put je sve radilo — posetilac klikne, merenje krene. Ali povratnik koji je već ranije pristao ne dobija traku, pa merenje za njega nikad nije ni startovalo. Rezultat je bila statistika koja sistematski gubi upravo one koji se vraćaju, dakle najvredniji deo posete. Ispravka je bila jedna reč u kodu; nalaženje je bilo ceo posao.
Politika privatnosti je napisana za ovaj sajt, ne prepisana: piše šta se prikuplja (anonimna statistika posete i to tek po pristanku), šta se ne prikuplja (nijedan podatak kroz formu, jer forme nema), i šta posetilac može da traži.
Šta radnja na kraju ima
Adresu na internetu koja radi bez staranja. Sajt stoji na serveru kao samostalna aplikacija iza servera koji je objavljuje, sa sertifikatom koji se sam obnavlja i punim skupom bezbednosnih zaglavlja. Nema dodataka koji se raspadnu pri sledećem ažuriranju, nema mesečne pretplate platformi, nema panela u koji neko mora da ulazi da bi sajt nastavio da radi.
Praktično, dan izgleda ovako: neko iz Vlasotinca traži gde se menja ekran, nađe stranu o servisu, vidi šta treba da kaže o telefonu, pritisne broj ili Viber i pre puta zna da li radnja prima taj uređaj. Nema forme, nema čekanja odgovora, nema koraka između.
Ostaje jedna stvar koja ne zavisi od koda: prava adresa. Radnja ima profil na Google Maps-u sa ocenom i recenzijama, i taj profil je najjača poluga koju lokalni posao ima — kada mu se u polje sa sajtom upiše ova adresa, obe strane počinju da rade jedna za drugu. Kada radnja bude uzela i sopstveni domen, prelazak je pripremljen unapred.
Do tada sajt radi ono zbog čega je i pravljen: dvanaest godina rada iza pulta konačno ima gde da se vidi, i to na strani koja se otvara odmah i na najslabijoj vezi.
Sajt u slikama
Kako živi sajt stoji na merenjima
- Izmereno
- Performanse na mobilnom
- 98 od 100
- Performanse na računaru
- 100 od 100
- Najveći sadržaj (LCP) 2,4 s
- Blokiranje glavne niti (TBT) 36 ms
- Pomeranje rasporeda (CLS) 0,000
- Prvi sadržaj (FCP) 902 ms
- Indeks brzine 1,2 s
- Najveći sadržaj (LCP) 638 ms
- Blokiranje glavne niti (TBT) 58 ms
- Pomeranje rasporeda (CLS) 0,000
- Prvi sadržaj (FCP) 245 ms
- Indeks brzine 677 ms
Stvarni posetioci (Chrome UX Report)
Sajt još nema dovoljno poseta za Google-ov javni uzorak sa terena, pa su prikazana samo laboratorijska merenja.
Bezbednosna zaglavlja
- HSTS
- Politika sadržaja (CSP)
- X-Content-Type-Options
- Referrer-Policy
- Permissions-Policy
- Zaštita od uokviravanja
SSL ocena
A+
testssl.sh
Validan HTML
0
grešaka, W3C Nu HTML Checker
Pristupačnost
0
kršenja WCAG 2.2 AA, axe-core
Strukturirani podaci
MobilePhoneStore · Organization · WebSite
0 grešaka u obaveznim poljima
Google PageSpeed Insights (Lighthouse), medijana tri uzastopna merenja po uređaju. Ocene se razlikuju od merenja do merenja. Izmeri ponovo
Halo City Leskovac
Prodaja i servis mobilnih telefona u centru Leskovca — Bulevar Oslobođenja 1.
halocity.svilenkovic.rsČesto postavljana pitanja
Zašto sajt stoji na poddomenu, a ne na sopstvenom domenu?
Zašto na sajtu nema kontakt-forme?
Zašto na sajtu nema cena servisa?
Da li animirana pozadina usporava sajt na starijem telefonu?
Zašto Next.js, a ne WordPress?
Koliko strana ima sajt i može li da se proširi?
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.