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
.envtugi ja e-posti seadistushostingu 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 meeldeSEO: 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
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.
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.
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.
