En demohylde, der passer sig selv: femogtyve builds fra 2019 til 2026, én PHP-fil og et sitemap, der følger med

Client
GrN.dk — demo.grn.dk
Sector
Web / portefølje-infrastruktur
Periode
2019–2026; hylden genopbygget juli–september 2026

demo.grn.dk

At a glance

demo.grn.dk er der, eksperimenterne bor: femogtyve af dem, fra en solopgangsberegner for Silkeborg fra XHTML-tiden til procedural WebGL, et Blender-planetarium, en krystalsal, en AI-receptionist, en britisk regnskabsautopilot og en dansk ERP-dag. Mange af casene på denne side åbner på en post på hylden. Hylden selv er én PHP-fil, der lister demoerne, grupperer dem i Featured og Tools, filtrerer, mens man skriver, og afleder sitemappet fra den samme liste — så en demo, der lander i webroden, er på hylden og i sitemappet, før nogen har skrevet om den.

25 demoer, 2019 → 2026: 12 featured, 12 værktøjer og en »Fresh on disk«-række, der fylder sig selv fra webroden
Ét array fodrer hylden, filteret og sitemap.xml — en ny mappe er listet, før den er beskrevet
Gamle PHP-demoer holdt i live med en kompatibilitetsrunde i stedet for at blive pensioneret; nye demoer registreres gennem den samme fil

The challenge

En mappe med enkeltstående builds samlet over syv år er en kirkegård, medmindre noget holder den præsentabel: indexsider blev forældede, ældre PHP gik i stykker på nyere versioner, nogle mapper var halvfærdige, og intet fortalte en besøgende — eller en søgemaskine — hvad der var. Hylden skulle være billig at vedligeholde, i hånden eller af den AI-pipeline, der nu laver de fleste demoer, og den skulle være sikker: en mappe med et index, men uden beskrivelse, fortjener stadig et kort, men en privat eller ødelagt mappe må ikke sive ud på forsiden.

The solution

demos.php rummer de kuraterede poster — titel, beskrivelse, tags, ikon, farvetone og gruppe — og én skjult liste. Ved hver forespørgsel scanner den webroden: enhver mappe med en index.php eller index.html, som hverken er kurateret eller skjult, bliver et »Fresh on disk«-kort med en pladsholdertekst, så hylden aldrig halter efter filsystemet. sitemap.php læser det samme array, hvilket gør sitemappet til et biprodukt frem for en pligt. Gamle demoer blev bragt til at køre på den nuværende PHP med en kompatibilitetsrunde i stedet for at blive pensioneret; three.js-værkerne hoster selv deres biblioteker; og alt ligger bag Cloudflares edge-cache, hvilket er grunden til, at hvert deploy af en demo også tømmer dens URL’er.

Den AI-pipeline, der bygger de nyere demoer, registrerer dem på samme måde — en kurateret post for det nye slug øverst i Featured-rækken — så hylden er blevet udgivelsestrinnet for demoarbejde, ikke en eftertanke.

The results

Femogtyve demoer på én side, 2019 til 2026: tolv featured, tolv værktøjer og det, der landede i nat, et filter, der svarer på /, og et sitemap, der ikke har været forældet siden. Hylden er der, en kunde går hen for at klikke; denne side er der, de går hen for at læse hvorfor.