mojeWebFoundry

aktivní běží od 2026-08-22
projekt · automatizace

Framework pro stavbu několika obsahově i vizuálně oddělených statických webů nad jedním technickým jádrem. Tento web je jedním z nich; vedle něj z téhož repozitáře vzniká FreeOrbit.eu a Libernetics.eu.

Dvě věci to drží pohromadě. První je, že se sdílí jen infrastruktura – build, kontroly, nasazení. Identita, navigace, komponenty a obsah zůstávají každému webu vlastní a nesmí se samovolně sjednocovat, protože návštěvník je má vnímat jako samostatné weby, ne jako jeden portál se třemi záložkami. Druhá je, že výstupem je pořád jen statický web: hotové HTML, CSS, JavaScript a assety, které obslouží webserver bez aplikačního serveru, databáze a bez Node.js na produkci.

AI asistenceProjekt vzniká s pomocí AI asistentů pro psaní kódu. Architektura a rozhodnutí jsou zapsané v ADR; kód vzniká po malých krocích, které procházejí testy a kontrolami kvality.

Od Jekyllu dál

Statické weby jsem předtím stavěl v Jekyllu. Model „šablona plus Markdown“ tam funguje a pro spoustu webů stačí dodnes; tohle je záměrný posun jinam, ne oprava něčeho rozbitého.

Chtěl jsem zjistit, kam se statické weby posunuly. Co dnes zvládne web postavený na komponentách místo šablon, kam došel build tooling a kolik toho jde ohlídat automaticky – aby validace obsahu, přístupnost nebo bezpečnostní pravidla nebyly věc, na kterou si musí člověk vzpomenout při každé změně.

Co framework dává

  • Statický export přes adapter-static s úplným prerenderem, bez SPA fallbacku. Každá stránka existuje jako soubor.
  • Obsah v Markdownu s validovaným frontmatterem. Schéma je zapsané, takže neznámé pole, chybějící překlad nebo odkaz na neexistující položku shodí build, ne až čtenáře.
  • Kontroly předem: lint, typová kontrola, testy a validace obsahu běží při každém commitu a stejný cíl volá CI, aby se lokální a CI kontrola nerozešly.
  • Přístupnost, kontrast a výkonové rozpočty jako automatické brány nad hotovým artifactem, ne jako dodatečná revize.
  • Bezpečnost: same-origin Content Security Policy bez unsafe-inline a kontrola hotového buildu na sourcemapy, interní cesty, tvary tajemství a cizí originy.
  • Vyhledávání přes Pagefind, který běží při buildu nad hotovým HTML. Produkce zůstává statická, index je jen další soubor.
  • Nasazení jako pull: server si release sám stáhne z registru, ověří součet, zkontroluje značku dokončeného buildu a atomicky přepne symlink. Do serveru nevede zapisovací kanál ani deploy klíč.

Další web se přidává jako nový workspace. Kontroly, testy, brány i nasazení jsou hotové.

Jak to vzniká

Každé rozhodnutí o společném kontraktu má vlastní ADR a implementace se k němu musí dát dohledat. Pravidla, která platí na víc místech, nejsou v hlavě, ale v registru se strojovou kontrolou: verze runtime, umístění bran, dostupná pole obsahu i čísla zobrazovaných verzí. Když se dva zápisy téhož rozejdou, spadne lint – ne až web.

← zpět na Objevuj