Mella CMS

Kuus päeva, 31 commit'i ja üks oma CMS

· autor: Meelis Luks · Ajaveeb
Kuus päeva, 31 commit'i ja üks oma CMS

14. oktoobril 2026, kell 13:02 tegin oma projekti esimese git commit'i. Seal oli kirjas lihtsalt "First commit". Täna, 19. oktoobri õhtul, on ajaloos 31 commit'i ja projekt on kasvanud tööriistaks, mida julgen nimetada päris sisuhaldussüsteemiks. Nimeks sai Mella CMS.

Kirjutan siia üles, kuidas see kuue päeva jooksul sündis. Git'i ajalugu on parem päevik kui mu enda mälu.

Mis see üldse on?

Mella CMS on iseseisev sisuhaldussüsteem. Taga on Express ja SQLite, haldusliides on React'is ja avalik leht renderdatakse serveris. Eraldi andmebaasiserverit ei vaja, sest kasutan Node'i sisseehitatud node:sqlite'i. Käivitad selle ja töötab.

Päev 1 (14. oktoober): vundament

Esimene commit oli suur: 54 faili ja ligi 7400 rida. Seal olid juba serveri marsruudid, andmebaas, kasutajad, seaded, vaated ja admin-paneeli skelett. Seda tuli ette valmistada, enne kui sai midagi huvitavat ehitada.

Päev 2 (15. oktoober): editor ja lehtede ehitaja

See oli esimene tihe päev, viis commit'i. Hommikul panin sisse rikkaliku tekstiredaktori. Selle integreerimine võttis kolm katset, sest esimene versioon vajas kohe parandusi. Keskpäevaks tegin visuaalse lehteehitaja (üle 3400 lisatud rea). Päeva lõpuks sai ehitajaga seadistada avalehe ja kuvada eelvaadet heleda ja tumeda teemaga.

Päev 3 (16. oktoober): keeled

Selle päeva ainus commit tuli õhtul kell 19:28. See oli suur: 73 faili muutus. Lisasin mitmekeelsuse ja lippude ikoonid. Hiljem tuli veel üks väike parandus, et lipud saaksid ligipääsetavuse jaoks alt-teksti.

Päev 4 (17. oktoober): bränd, turvalisus ja server

Päeva kõige tihedam, seitse commit'i, ja viimane tuli alles kell 22:24. Mella sai logo ja brändi elemendid. Siis hakkasin tegelema asjadega, mis teevad CMS-ist usaldusväärse:

  • Turvalisus ja parooli taastamine

  • .env tugi ja e-posti seadistus

  • hostingu ja käivitamise seadistused

Päev 5 (18. oktoober): turvaaudit, logid ja kasutusjuhend

Hommik algas turvaauditiga: kitsendasin seadete lugemisõigusi, panin küpsistele Secure lipu ja lisasin turvapäised. Seejärel kontrollisin üleslaaditavate failide sisu ja lisasin suuruspiirangud.

Siis tulid funktsioonid, mis lisavad CMS-ile elu:

  • tegevuste, külastuste ja klikkide logid

  • piltide lightbox koos pealkirjaga

  • võimalus kasutajal jälgimine välja lülitada

Päeva lõpus kirjutasin kasutusjuhendi inglise ja eesti keeles, ekraanipiltide ja PDF-idega. Üks commit lisas üle 200 faili. Pärast seda lisasin veel pildi-slaideri ja PDF-vaaturi.

Päev 6 (19. oktoober): lihvimine

Tänane päev on olnud viimistlemise päev:

  • kontaktvormi ja slaideri uuendused

  • ruudustiku (grid) paigutuse parandused

  • dokumentatsioon eesti keele jaoks

  • ehitaja eelvaate heleda/tumeda valik jääb nüüd brauseri localStorage'isse meelde

  • SEO: kanoonilised URL-id, responsiivsed pildid ja jagamispilt

  • 429-vastuste, admini vahemälu ja CSP tugevdamine

Numbrites

Algus

14. oktoober 2026

Viimane commit

19. oktoober 2026, 18:47

Commit'e kokku

31

Failide arv repos

347

Kõige tihedam päev

17. oktoober (7 commit'i)

Tööd tehtud

6 päeva järjest

Mida ma sellest õppisin

  1. Turvalisus tuleb pidevalt, mitte lõpus. Parooli taastamine, turvapäised ja üleslaadimiste kontroll said tehtud siis, kui ülejäänud süsteem oli veel noor. Lõppu jäi vaid lihvimine.

  2. Dokumentatsioon on osa tootest. Kasutusjuhend kahes keeles võttis terve pärastlõuna, aga nüüd saab keegi teine CMS-i ilma minu abita kasutada.

  3. Väikesed commit'id on armsad. Kui midagi läheb katki, näeb ajaloost kohe, millal ja miks.

Mis edasi? Tahan lehte päriselt hostingusse tõsta ja vaadata, kuidas see päris kasutuses käitub. Sellest kirjutan järgmises postituses.