Technické Manifesto

Ako budujeme HomeGrif

Technologický stack

Používame moderné, overené technológie s permisívnymi licenciami:

1. Runtime: Node.js 20.x (MIT)

JavaScript runtime pre serverovú časť. Express.js 4.18.x ako webový framework.

2. Databáza: PostgreSQL 15.x

Relačná databáza s MIT-like licenciou. pg driver pre Node.js pripojenie.

3. Autentifikácia: Passport.js (MIT)

Google OAuth 2.0 pre investorov a prospektov. bcryptjs pre hashovanie hesiel.

4. Frontend: Vanilla JS/CSS

Bez frameworku - čistý ES6+ JavaScript. Leaflet.js pre interaktívne mapy (BSD-2).

5. Email: Resend (MIT)

Transakčné emaily z hello@homegrif.com. Dvojsmerná komunikácia cez webhooky.

6. Bezpečnosť: Cloudflare + Helmet

Turnstile CAPTCHA, rate limiting, honeypot. CSP, HSTS, XSS ochrana hlavičiek.

Architektúra

Jednoduchá, škálovateľná architektúra na Render PaaS:

Preferujeme jednoduchosť pred komplexnosťou. Minimálna potrebná zložitosť.

Licencie

Všetky závislosti používajú permisívne open-source licencie:

Bezpečnosť

Bank-grade bezpečnostné praktiky:

1. Automatický monitoring

Dependabot pre týždenné bezpečnostné skeny. npm audit mesačne.

2. Aktualizačná politika

Kritické/vysoké zraniteľnosti - okamžitá oprava. Minor/patch - týždenne.

3. Rate limiting

Admin login: 5 pokusov/15min. Kontaktný formulár: 5/hodina. Webhooky: 100/min.

4. Input validácia

XSS prevencia, SQL injection ochrana. Všetky vstupy sanitizované.

Vývojové princípy

Šesť pravidiel, ktorými sa riadime:

1. 1. Dáta v databáze

Všetky perzistentné dáta v PostgreSQL, nie v súboroch (okrem statického obsahu).

2. 2. Audit trail

Každá akcia musí byť sledovateľná. GDPR a compliance ready.

3. 3. Transparentnosť

Jasná, čestná komunikácia. Verejná dokumentácia.

4. 4. Testovanie

Smoke testy pred každým deploy. Regresné testy pre každý bug fix.

5. 5. Verziovanie

Semantic versioning (MAJOR.MINOR.PATCH). Changelog pre každý release.

6. 6. Jednoduchosť

Minimum potrebnej komplexnosti. Radšej 3 podobné riadky ako predčasná abstrakcia.

Prostredia

Dvojvetvový deployment model:

1. TEST (test.homegrif.com)

Vetva: main. Auto-deploy pre development a testovanie.

2. PROD (www.homegrif.com)

Vetva: production. Merge z main po verifikácii na TEST.

Prispievanie

Pri pridávaní nových závislostí: 1) Skontrolovať kompatibilitu licencie (MIT, ISC, BSD, Apache). 2) Spustiť npm audit. 3) Aktualizovať túto dokumentáciu. 4) Vyhnúť sa závislostiam so známymi zraniteľnosťami.

Máte záujem o spoluprácu?

Pozrite si náš tech stack alebo nás kontaktujte.

Tech Stack

Živý dokument • Posledná aktualizácia: December 2024 • v2.2.0