Artech Solutions — domača stran

Izziv

Stranka je potrebovala stran, ki ne bo le digitalna vizitka, ampak bo dejansko prinašala povpraševanja — z možnostjo, da potencialni naročnik priloži načrt ali fotografijo projekta. To je prineslo tri konkretne pasti:

Dodatna zahteva je bila vzdržnost: stranka želi enostavno, poceni gostovanje in predvidljive stroške, brez mesečnih naročnin na orodja tretjih oseb.

Pristop

Odločil sem se za statično stran v čistem HTML/CSS/vanilla JavaScriptu, brez ogrodja. Pri obsegu nekaj predstavitvenih strani bi framework prinesel več režije (build, odvisnosti, vzdrževanje) kot koristi; čista izvedba je hitra, lahka za gostovanje in jo bo mogoče vzdrževati tudi čez leta.

Za obrazec sem napisal lasten PHP backend namesto naročnine na storitev kot je Formspree. Funkcija mail() pošlje povpraševanje na podjetjev naslov, stranka pa prejme samodejni potrditveni odgovor. To pomeni nič ponavljajočih se stroškov in poln nadzor nad podatki (pomembno tudi z vidika GDPR).

Strani sem strukturiral ločeno, a jih strežem na čistih URL-jih (/storitve, /galerija, /kontakt …) prek .htaccess. Vse poti do sredstev sem nastavil absolutno glede na koren, da delujejo ne glede na obliko URL-ja.

Za vizualni jezik sem uporabil temno industrijsko paleto z oranžnim poudarkom in tipografijo Space Grotesk / Manrope — resno, "težko-industrijsko", a sodobno.

Ključne pasti in rešitve

1. Nalaganje datotek brez varnostnih in dostavnih težav

Velike fotografije in PDF-je shranim na strežnik in v e-pošto vključim povezavo, namesto da bi datoteke pripel kot priponke — s tem se izognem omejitvam velikosti in temu, da bi pošto označilo za neželeno. Na backendu preverim končnico in dejanski MIME-tip, omejim velikost na 8 MB, vsako datoteko shranim pod varno, naključno generiranim imenom in očistim uporabniški vnos.

2. Obrazec se ne sme zatakniti med pošiljanjem e-pošte

PHP mail() je blokirajoč klic — vsako pošiljanje doda zakasnitev. Zato uporabniku takoj vrnem odgovor in zaprem povezavo (fastcgi_finish_request()), samodejni potrditveni odgovor stranki pa se pošlje v ozadju. Uporabnik tako ne čaka na dve zaporedni pošiljanji.

3. Zanesljivost in zaščita pred neželeno pošto

Dodal sem skrito "honeypot" polje za odvračanje botov in iz glav e-pošte odstranil znake za prelom vrstic (zaščita pred header-injection). Vsako povpraševanje se kot varnostna kopija zabeleži v dnevnik nad korenom spletne mape (ni javno dostopen) — če pošiljanje e-pošte spodleti, lead vseeno ni izgubljen.

4. Takojšnja vidnost popravkov vs. hitrost nalaganja

Nastavil sem politiko predpomnjenja v .htaccess: HTML/CSS/JS se pri strežniku vedno preverijo (no-cache, must-revalidate), slike se predpomnijo za dan, pisave za leto. Tako so popravki kode vidni takoj po objavi, statična sredstva pa ostanejo hitra.

Rezultat

Tehnologije in orodja

HTML5 CSS3 (brez ogrodja) Vanilla JavaScript PHP (lasten obrazec) Apache / LiteSpeed .htaccess GitHub Actions (FTP deploy) schema.org (JSON-LD) Google Search Console Gostovanje Neoserv (cPanel)

Pogled na stran

Celoten ogled na živi strani →

Imaš podoben projekt?

Pogovoriva se