Feltnotater·marts 2026·9 minutter

Hvad vi har bygget: En rundvisning i vores seneste GitHub-repositorier

Fra AI-drevet DNS-håndtering til en fuldgyldig infrastrukturoperationsplatform — her er et ærligt kig på de 10 seneste repositorier på vores webhousecode- og cbroberg-GitHub-konti, og hvad de hver især gør.

Vi bygger en masse software. En del er til kunder, en del er infrastruktur, vi selv driver, og en del er værktøjer, der gør vores daglige arbejde hurtigere og mindre fejlbehæftet. Det meste ligger i private repositorier — fungerende kode, der stille og roligt gør sit arbejde. Men lejlighedsvis synes vi, det er værd at løfte gardinet lidt.

Her er en rundvisning i de 10 seneste repositorier på vores organisation webhousecode og cbrobergs personlige konto — hvad de er, hvad de gør, og hvorvidt de er offentlige eller private.


1. cms — Hjernen bag @webhouse/cms

🔓 Offentlig · webhousecode · Senest aktiv: marts 2026

Dette er det mest aktive repository, vi har lige nu, og det er det, vi er mest begejstrede for. cms er den centrale motor bag @webhouse/cms (eller webhouse.app) — vores eget udviklerfokuserede content management system, som vi har bygget og skrevet om i serien CMS Chronicle.

De seneste commits fortæller historien bedre end nogen beskrivelse kunne. På blot de seneste dage: en AI-orkestrator med en kurationskø og godkendelsesworkflow, konfigurerbare AI-agenter (Indholdsskriver, SEO-optimering, Oversætter, Indholdsopfrisker), en tokenbudget-tracker, en MCP-klient og -server med offentlige og administrative grænseflader, brandstemme-identifikation via samtaleinterview, linkkontrollogik og en llms.txt-manifest til AI-agentopdagelse.

Dette er, hvordan en agentisk CMS ser ud indefra — agenter, der kører på skema, foreslår indhold, venter på menneskelig godkendelse (eller selvpublicerer, når tilliden er høj nok) og eksponerer sig for AI-klienter via Model Context Protocol.

Stack: TypeScript · Next.js · Anthropic API · MCP


2. whop — WebHouse Operations Platform

🔒 Privat · webhousecode · Senest aktiv: marts 2026

Dette er udelukkende internt — og det er et godt eksempel på den slags værktøjer, vi bygger for at holde 30 års infrastruktur under kontrol.

WHop (WebHouse Operations Platform) er vores serveroversigt, sundhedsovervågning og migrationsplanlægningsværktøj. Det kortlægger 21 servere på AWS Frankfurt, Stockholm, Irland og Keyweb Erfurt — med 419 Apache VirtualHosts scannet og indekseret på tværs af dem. Dashboardet viser serverkort med noter, EOL-advarsler, sites, SSL-sundhed og diskstatus.

Den fremtrædende funktion er AI-migrationsanalysatoren: den sender reel per-server-data (DNS-bekræftede sites, trafik, båndbredde, månedlig omkostning) til Claude og får tilbage en struktureret migrationsplan — prioriterede handlinger, estimerede besparelser, foreslået ny infrastruktur og en migrationsrækkefølge. Med flere servere, der stadig kører Ubuntu 16.04 og 18.04 (EOL), er dette ikke en teoretisk øvelse.

Planlagte cronjobs håndterer HTTP-sundhedstjek hvert 15. minut, natlige SSL-tjek, Apache-logindsamling, AWS-synkronisering, DNS-synkronisering og ugentlige SSH-scanninger — alt sammen styret via vores egen platform cronjobs.webhouse.net.

Stack: Next.js 15 · TypeScript · Tailwind CSS · SQLite/Drizzle · Anthropic API · ssh2 · AWS SDK


3. whapi — Intern API-testplatform

🔒 Privat · webhousecode · Senest aktiv: marts 2026

WHapi er vores interne erstatning for Postman — en moderne API-test- og dokumentationsplatform, live på api.webhouse.net.

Det er en fuldgyldig HTTP-klient med understøttelse af GET, POST, PUT, PATCH, DELETE, HEAD og OPTIONS — med query-parametre, overskrifter, JSON/text/form-body og bearer/basic/API-nøgle-autentificering. Anmodninger organiseres i samlinger og mapper med træk-og-slip-sortering. Der er miljøskift med {{variabler}}, en server-side HTTP-proxy (ingen CORS-problemer), en historik over de seneste 500 anmodninger pr. bruger og Postman v2.1-import.

API Docs-funktionen giver dig mulighed for at indlæse enhver OpenAPI 3.x-specifikation via URL og gennemse endpoints inline — ved at klikke på et endpoint fyldes anmodningsbyggeren ud. Autentificering er passwordfri: en 6-cifret OTP sendt til din e-mail, kun hvidlistet.

Vi byggede dette, fordi Postman er blevet oppustet og kontoafhængigt. Dette kører på en 1 GB fly.io-instans med en SQLite-database og gør præcis det, vi har brug for.

Stack: Next.js 16 · TypeScript · Tailwind CSS v4 · shadcn/ui · SQLite/Drizzle · undici · fly.io


4. webhouse-site — Denne hjemmeside

🔒 Privat · webhousecode · Senest aktiv: marts 2026

Repositoryet for webhouse.dk selv — den hjemmeside, du læser dette på.

Den er bygget med Next.js og vores eget @webhouse/cms, hvilket betyder, at de artikler, casestudier, ydelser og team-sider, du ser, alle styres via det CMS, vi aktivt udvikler. Sitet er på en måde både en produktvisning og et levende testmiljø for vores egne værktøjer — hver ny CMS-funktion bliver afprøvet her først.

Stack: Next.js · @webhouse/cms · TypeScript


5. dns-mcp — DNS-håndtering via Claude

🔒 Privat · webhousecode · Senest aktiv: februar 2026

Dette er en TypeScript/Node.js-MCP (Model Context Protocol)-server, der giver Claude direkte adgang til at håndtere DNS-zoner og -poster — fra enhver Claude-klient, herunder Claude Desktop, Claude Code, claude.ai og iOS/Android-apps.

Serveren eksponerer 12 værktøjer, der dækker alt fra at liste og oprette zoner til batch-upsert af poster og verificering af, at forventede poster eksisterer. Du kan bogstaveligt talt skrive "Opret en A-poster på www.example.dk med pejling til 1.2.3.4" ind i Claude, og det sker.

Den understøtter både stdio-transport (til lokal brug med Claude Code og Claude Desktop) og en HTTP-transport hostet på dnsmcp.webhouse.net med OAuth 2.1-autentificering — så den også virker på mobil. Dette er MCP i praksis, som vi har skrevet om: ikke en demo, men et værktøj, vi bruger hver dag.

Stack: TypeScript · Node.js · MCP SDK · OAuth 2.1 · fly.io


6. dns-api — REST API til BIND 9 DNS-håndtering

🔒 Privat · webhousecode · Senest aktiv: februar 2026

API’en, som dns-mcp (og dns-gui) bygger oven på. Dette er et REST API bygget med Hono og Bun, der styrer BIND 9 DNS-zoner på vores master DNS-server (dns2.webhouse.net) via SSH.

Det håndterer 399 DNS-zoner på tværs af en master/slave-opstilling (Frankfurt → Irland) med et komplet sæt endpoints for zoner og poster — herunder batch-upsert, postverificering og JSON-skabeloner til almindelige konfigurationer som Resend-e-mailopsætning (DKIM, SPF, DMARC, MX i ét kald).

Designvalg, der er værd at bemærke: en dedikeret dnsapi-servicebruger (ikke en personlig konto), én SSH-TCP-forbindelse pr. operation, per-domænemutex-låsning, automatisk zonefil-backup før hver ændring, named-checkzone-validering før genindlæsning og deterministiske SHA1-post-ID’er. Det er den slags upåfaldende infrastrukturarbejde, der holder 399 kundedomæner kørende korrekt.

Stack: Hono · Bun · TypeScript · SSH · BIND 9 · fly.io


7. dns-gui — Web-GUI til DNS-håndtering

🔒 Privat · webhousecode · Senest aktiv: februar 2026

Den browserbaserede front-end til håndtering af DNS-zoner og -poster via dns-api. Tilgængelig på dns.webhouse.net, giver den os en visuel grænseflade til de samme operationer, der er tilgængelige via API’en og MCP-serveren.

Sammen danner dns-api, dns-mcp og dns-gui en komplet DNS-håndteringsstack — brugbar fra browseren, terminalen eller en samtale med Claude.

Stack: TypeScript · Next.js (infereret)


8. fysiodk-aalborg-sport — Sports-skades-app

🔒 Privat · webhousecode · Senest aktiv: marts 2026

En hybrid mobil- og webapplikation til rapportering og sagsbehandling af sports-skader hos FysioDanmark Aalborg Sport, live på sport.fdaalborg.dk og udgivet på både App Store og Google Play.

Patienter kan rapportere en sports-skade på under to minutter ved hjælp af en guided flow med en interaktiv kropsmodel. Fysioterapeuter får et sagsbehandlingsdashboard. Klinikadministratorer har fuld brugerstyring, revisionslogning og statistik. Hele systemet har rollebaseret adgang (Ejer, Admin, Fysioterapeut, Patient), push- og e-mail-notifikationer, GDPR-kompatibel databevaring (5 år, automatisk sletning) og understøttelse af e-mail/adgangskode, Google, Apple ID og biometrisk login.

Ved sidste commit var version 1.5.1 under review på begge platforme. Det er en fuldstack-produktionsapplikation — monorepo med en Next.js-webapp, Capacitor-shels til iOS og Android, Playwright E2E-tests, der dækker 10 brugerflows, og Fastlane-pipelines til App Store- og Google Play-udgivelse.

Stack: Next.js 16 · React 19 · TypeScript · Supabase · Capacitor 8 · Tailwind · shadcn/ui · AWS SES · Turborepo


9. claude-agents — Agentorkestrering & arbejdsgangguide

🔓 Offentlig · cbroberg · Senest aktiv: januar 2026

Et personligt repository fra Christian med et struktureret bibliotek af Claude-agentdefinitioner — der dækker hele softwareudviklingslivscyklussen fra opdagelse til sikkerhedsrevision.

Agenterne er organiseret i faser: Opdagelse & Planlægning (kodebasens analysator, planlægningsspecialist, webresearch), Arkitektur & Design (enterprise-arkitekt, API-arkitekt, UI/UX-designer, databaseekspert), Implementering (Next.js frontend-ingeniør, DevOps-infrastruktur) og Kvalitet & Gennemgang (kodekvalitet, kodegennemgang, test/QA, sikkerhedscompliance, dokumentation).

Dette er mindre et produkt og mere en arbejdsmetode — et praktisk svar på spørgsmålet om, hvordan du strukturerer fleragents-workflows, når du bygger reel software. Det afspejler, hvordan vi tænker på AI-integration: ikke som en enkelt "AI-knap", men som en sammensættelig mængde specialister med definerede ansvarsområder.

Stack: Markdown · Claude-agentdefinitioner (.claude/agents/)


10. svg-logo-generator-cli — Batchgenerator til SVG-logoer

🔒 Privat · cbroberg · Senest aktiv: februar 2026

En Next.js-webapplikation til generering af SVG-logoer i bulk fra en CSV-fil med produktnavne og -typer. Upload en CSV via træk-og-slip, konfigurer afstand, generer, forhåndsvis og download.

Et par detaljer, der er værd at bemærke: det inkluderer automatisk detektion af kyrilliske tegn med skrifttype-skift (til bulgarsk og andre sprog), vedvarende indstillinger mellem sessioner og valgfri OAuth-autentificering via Google eller GitHub. Det er den slags fokuserede interne værktøjer, der løser et specifikt, gentagende problem — præcis den type automatisering, vi beskriver på vores AI-værktøjer-side.

Stack: Next.js · TypeScript · NextAuth.js


Hvad disse repositorier fortæller os

Når vi ser på disse ti repositorier, træder nogle temaer frem.

Først og fremmest er næsten alt bygget på den samme moderne stack: Next.js, TypeScript, Tailwind CSS, shadcn/ui, SQLite eller Supabase og fly.io til hosting. Vi har standardiseret bevidst, og det betaler sig i hastighed og vedligeholdelsesevne.

For det andet er AI overalt — men ikke på en overfladisk måde. Claude er ikke blot tilføjet som en chatbot. Den er integreret i DNS-håndtering, infrastrukturplanlægning, indholdsworkflows og udviklingsværktøjer. MCP-mønsteret dukker specifikt op igen og igen: vi fortsætter med at bygge MCP-servere, så AI-klienter kan agere på vores systemer, ikke bare tale om dem.

For det tredje bygger vi vores egne værktøjer. WHapi i stedet for Postman. WHop i stedet for et regneark. En DNS-stack i stedet for en SaaS DNS-udbyder. Dette er ikke stædighed — det er, fordi specialtilpassede værktøjer passer til vores præcise arbejdsgang, kører på vores infrastruktur og ofte bliver grundlaget for noget, vi kan tilbyde kunder.

Hvis noget af dette lyder som den type tænkning, du ønsker anvendt på dine egne systemer, vil vi meget gerne høre fra dig.

Repository-data hentet direkte fra github.com/webhousecode og github.com/cbroberg via GitHub API. Alle repositorybeskrivelser, README-indhold og commit-meddelelser er autentiske og uredigerede.