NoEmStiLok CMS - sajt bez baze podataka, brz i višejezičan

NoEmStiLok CMS

Sve što drugi rešavaju dodacima, ovde je već unutra

Brz sajt, ugrađen SEO i sadržaj koji ostaje vaš. NoEmStiLok sam napisao od nule: svaka stranica je običan fajl na serveru, pa je backup kopiranje foldera, hosting jeftin, a sadržaj možete odneti kod bilo kog programera.

Bez baze podataka Automatski sitemap Višejezičan Ćirilica i latinica Statični keš Van dometa masovnih napada

Sajt koji upravo čitate radi na NoEmStiLok-u, na četiri jezika i dva pisma.

Radionica NoEmStiLok CMS-a — izmena sadržaja stranice u pregledaču

Jedna odluka od koje sve zavisi

Skoro svaki CMS čuva vaš tekst u bazi podataka. NoEmStiLok ga čuva kao fajl, a podatke o stranici — naslov, opis, datum, redosled u meniju — upisuje u sam taj fajl. Zvuči kao sitnica, a menja sve.

Backup je kopiranje foldera

Nema izvoza baze, nema uvoza, nema „radilo je na starom serveru”. Preseljenje sajta je prenos fajlova.

Nema ažuriranja koja ruše sajt

Nema desetina dodataka koji se sami ažuriraju i povuku sajt sa sobom. Ono što radi danas, radi i za godinu dana, dok ga neko namerno ne promeni.

Jeftin i običan hosting

Dovoljan je običan PHP hosting. Bez zakupa baze, bez posebnog servera i bez servisa koji rade u pozadini.

Sadržaj je čitljiv i bez CMS-a

Stranice su običan HTML. Otvore se u bilo kom editoru i razume ih svaki programer — niste vezani ni za CMS ni za mene.

Snimanje koje ne može da sruši sajt

Ovo je deo na koji sam najponosniji. Svaka izmena — teksta, podešavanja ili koda — prolazi kroz tri koraka, uvek istim redom.

Korak 1

Proba pre upisa

Nova verzija stranice se prvo iscrta na serveru i proveri da li negde puca. Ako puca, snimanje se odbija, a stranica na sajtu ostaje netaknuta.

Korak 2

Automatska kopija

Postojeća verzija se pre prepisivanja odlaže u arhivu, sa datumom i vremenom u imenu. Nijedna izmena ne briše prethodnu.

Korak 3

Tek onda upis

Stranica se snima i osvežava se tačno ono što je izmena pogodila — ne ceo sajt.

Napadi na sajtove idu na ono što je svima poznato

Većina napada na male i srednje sajtove nije lično uperena protiv vas. To su automati koji po ceo dan kucaju na ista vrata: adresu za prijavu najrasprostranjenijih platformi, poznate dodatke i njihove objavljene propuste. Sajt ne padne zato što je neko baš vas odabrao, nego zato što koristi ono što se masovno napada.

Nema poznate adrese za prijavu

Automati traže adrese koje postoje na milionima sajtova. NoEmStiLok nema takvu adresu, pa te posete završe na stranici koje nema.

Nema tuđih dodataka

Sve što sajt radi napisao sam ja. Nema dodatka koji je nekome prodat, prestao da se održava ili preuzet od nepoznatog vlasnika — a to je danas najčešći put unutra.

Nema spiska verzija sa propustima

Za poznate platforme postoje javni spiskovi: ova verzija tog dodatka ima ovu rupu. Za NoEmStiLok takvog spiska nema jer ga koriste samo moji klijenti.

Nema baze kao mete

Cela jedna porodica napada gađa bazu podataka. Ovde baze nema, pa nema ni tog ulaza, ni njene lozinke koja može da procuri.

Da budem pošten: nepoznat ne znači neprobojan i ni jedan sajt nije. Ali napadi koji obaraju sajtove na veliko idu za onim što je unapred poznato — a tu NoEmStiLok jednostavno nije na spisku. Uz to, prijava u administraciju je jedna jedina tačka kroz koju sve prolazi, a svaka izmena ostavlja kopiju prethodne verzije, pa i najgori dan ima povratak unazad.

Brzina nije podešavanje, nego posledica

Kada stranica jednom bude sastavljena, NoEmStiLok je snima kao gotov fajl. Sledeći posetilac je dobija direktno sa servera — bez pokretanja programa i bez pretraživanja baze. To je brzina statičnih stranica, a vi i dalje menjate sadržaj klikom.

Kada nešto izmenite, ne briše se ceo keš: osvežava se tačno ta stranica, njena nadređena stranica i početna. Ostatak sajta ostaje brz.

  • WebP slike se prave same pri postavljanju, a serviraju se samo pregledačima koji ih podržavaju.
  • Više veličina svake slike — telefon dobija manju, ekran veću, uz upisane dimenzije da sadržaj ne poskoči pri učitavanju.
  • Prva slika u tekstu se učitava prioritetno, jer ona odlučuje kada posetilac vidi stranicu.
  • Nepromenjena stranica se ne šalje dva puta — pregledač dobija odgovor da je ono što već ima još uvek važeće.

SEO je ugrađen, a ne dodatak koji se kupuje

U većini CMS-ova ovo su dodaci koje treba naći, plaćati i održavati. Ovde je deo samog sistema i radi bez vašeg učešća.

  • Mapa sajta se piše sama pri svakom kreiranju, izmeni, preimenovanju i brisanju stranice — sa tačnim datumom poslednje izmene.
  • Nedovršene stranice se ne prijavljuju Google-u. Radna verzija ostaje van mape sajta dok je ne objavite.
  • Naslov i opis za pretragu unosite uz brojanje karaktera, da se ne bi seklo u rezultatima pretrage.
  • Podaci o stranici za pretraživače (schema.org) generišu se automatski, sa tipom koji birate po stranici.
  • Putanja do stranice prikazuje se i posetiocu i pretraživaču, sa oznakama koje Google razume.
  • Veza između jezičkih verzija prijavljuje se automatski, pa Google zna da su to iste stranice na različitim jezicima.

Više jezika i oba pisma, bez dodataka

Jezik u NoEmStiLok-u nije podešavanje nego zaseban folder sa svojim sadržajem. Novi jezik znači novi folder — ništa se ne prepravlja na postojećem sajtu.

Svaki jezik ima svoje adrese na svom jeziku, uključujući i pune ćirilične adrese. Kada posetilac promeni jezik, ostaje na istoj stranici — ne vraća se na početnu, kao što se dešava na većini višejezičnih sajtova.

Ista stranica, četiri adrese:

  • /usluga-programiranja/izrada-sajta
  • /услуга-програмирања/прављење-веб-сајтова
  • /programming-services/web-development
  • /dich-vu-lap-trinh

Radionica: sve menjate sami, iz pregledača

Cela administracija je jedan ekran, dostupan tek posle prijave. Nema zasebnog programa, nema FTP-a, nema instalacije na vašem računaru.

Deo radionice Šta radite u njemu
Sadržaj Tekst, slike, tabele i linkovi, kao u običnom tekst editoru. Nalepljen tekst iz drugog izvora se sam sređuje.
Stranice Nova stranica, preimenovanje, brisanje, redosled u meniju i nadređena stranica — meni i putanje se sami slažu prema tome.
Objava Radna verzija ili objavljeno, datum objave, isključivanje stranice iz Google pretrage, uključivanje komentara.
Fajlovi Postavljanje i brisanje slika i dokumenata — uz prikaz gde se fajl koristi pre nego što ga obrišete.
Izgled Karusel na početnoj, boje i stilovi, tamna ili svetla tema.
Prevodi Svi tekstovi van sadržaja stranica — dugmad, poruke, nazivi — za svaki jezik posebno.
Adrese i podešavanja Adrese stranica, e-mail nalog i opšta podešavanja sajta, bez dodirivanja servera.

I ovde važi pravilo iz tri koraka: pogrešno podešavanje ne može da obori sajt, jer se odbija pre nego što bude sačuvano.

Kada je NoEmStiLok pravi izbor, a kada nije

Ne prodajem ga svima. Na stranici o izradi sajta birate između NoEmStiLok-a i WordPress-a sa mojom temom — oba su moja i oba poznajem do kraja, pa nemam razloga da vas guram na pogrešnu stranu.

Uzmite NoEmStiLok kada

  • želite brz sajt koji se retko kvari i jeftino održava;
  • dosadilo vam je da sajt pada, biva provaljen ili traži čišćenje;
  • sajt je višejezičan ili traži i latinicu i ćirilicu;
  • važan vam je SEO, a ne date se u podešavanje dodataka;
  • želite sadržaj koji možete odneti bilo gde;
  • treba vam nešto napravljeno baš za vas, a ne tema kupljena na internetu.

Bolje WordPress kada

  • već imate saradnika ili tim koji radi isključivo u WordPress-u;
  • oslanjate se na određeni gotov dodatak koji vam je uslov;
  • želite sami da birate i menjate teme iz ponude na tržištu;
  • projekat mora da se uklopi u postojeći WordPress ekosistem firme.

Od čega je napravljen

Bez skrivenih slojeva i bez desetina dodataka nepoznatog porekla. Ceo sistem je PHP koji sam napisao, na proverenim osnovama:

Osnova

CodeIgniter 3 i PHP 8, bez baze podataka i bez spoljnih servisa u pozadini.

Izgled

Bootstrap 5.3, prilagođen prvo telefonu, sa tamnom i svetlom temom.

Uređivači

TinyMCE za tekst i CodeMirror za kod, oba na vašem serveru — ništa se ne šalje napolje.

Šta traži od servera

PHP 8 ili noviji, Apache sa mod_rewrite, GD ili Imagick za slike i cURL. Bez baze podataka. Ako niste sigurni šta vaš hosting ima, pošaljite mi naziv paketa i proveriću.

Česta pitanja

Da. Prijavite se na sajt i menjate tekst, slike, stranice i menije iz istog pregledača u kome gledate sajt. Obuka je kratka jer nema zasebnog programa koji treba učiti — menjate stranicu tamo gde je i vidite.

Izmena koja bi oborila stranicu ne prolazi — sistem je odbija pre nego što je sačuva. A kada je izmena ispravna ali vam se ne dopada, svaka ranija verzija stranice čuva se automatski i vraća se izborom iz liste.

Preuzmete folder sajta i to je sve — unutra su vaš sadržaj kao običan HTML, slike i izvorni kod. Nema baze koju treba izvoziti, nema licence koju treba prenositi i nema formata koji samo ja umem da pročitam. Svaki PHP programer se snađe u tome.

Skoro sigurno da. Treba mu običan PHP hosting sa Apache serverom, a ne treba mu baza podataka — što znači da može i na jeftinijem paketu nego većina CMS-ova. Pošaljite mi naziv hosting paketa i proveriću pre nego što bilo šta dogovorimo.

WordPress sam po sebi nije loše napisan — problem je što je toliko rasprostranjen da se napada automatski, u velikom broju, i što se do sajta najčešće dolazi preko nekog od hiljada dodataka koje niko posebno ne prati. NoEmStiLok nema tuđih dodataka, nema poznatu adresu za prijavu, nema javno objavljene propuste po verzijama i nema bazu podataka. To ne znači da je neprobojan, nego da ga masovni napadi jednostavno zaobiđu. I dalje radim i sajtove u WordPress-u kada je to bolje rešenje — samo treba znati na šta se pristaje.

Koliko vam treba. Svaki jezik je zaseban folder sa svojim sadržajem, svojim adresama i svojim naslovima za pretragu. Latinica i ćirilica se vode kao dva pisma istog jezika, sa punim ćiriličnim adresama ako to želite.

Postoji korpa, obračun u više valuta sa dnevnim kursom i naplata karticom, sa stranicama potvrde na svakom jeziku. Obim prodavnice se dogovara po projektu — opišite šta prodajete pa da vidimo šta vam zaista treba.

Ja sam ga napisao i ja ga održavam. Kada vam zatreba nešto čega nema, menjam izvorni kod umesto da tražim dodatak koji to približno radi — i to je razlog zašto sam ga uopšte i napisao.

Opišite svoj sajt u dve rečenice

Recite šta radite, na koliko jezika treba da bude i šta želite da menjate sami. Vraćam se sa predlogom i procenom — i reći ću vam ako mislim da vam NoEmStiLok nije pravi izbor.