Kolofon

Hvordan det her blev bygget

De fleste sites forklarer ikke sig selv. Det her gør, for hvordan det blev lavet, er en del af, hvad det er: et bevidst eksperiment i at bygge godt, med usædvanlige medarbejdere, og et register værd at bevare.

Everything on ronutz

The complete directory, grouped by what you came to do.

Use

compute

Understand

read

Explore

trace

Work with me

hire

CONCORD

Dette site blev designet og bygget gennem en protokol ved navn CONCORD: et struktureret samarbejde mellem ét menneske og tre forskellige AI-systemer, hver i sin egen rolle. Det er ikke et trick. Det er en fungerende metode, med sin egen styring, sit eget beslutningsregister og ét menneske ansvarlig for hvert valg, der blev publiceret.

Præmissen er enkel. Forskellige AI-modeller har forskellige styrker, og et svært problem vinder på mere end ét perspektiv holdt i spænding. Derfor blev arbejdet delt op efter rolle, og ét menneske sad i midten, gik som bro mellem dem, ratificerede det, der var solidt, og forkastede det, der ikke var.

CONCORD er ikke hentet noget sted fra. Det blev udformet af Rodolfo Nützmann til dette projekt ud fra et praktisk behov: hvordan man trækker på flere AI-systemer på én gang, hver især virkelig stærk til noget forskelligt, uden at opgive den ene tråd af menneskeligt ansvar, som rigtigt arbejde kræver. Svaret var at give hvert system et fast sæde, forhindre dem i at forhandle indbyrdes og lede hver udveksling gennem én person, der havde hele billedet. Den ordning har et ældre navn. AI-systemerne er agenter: de handler efter anvisning og på en andens vegne. PRIME er principalen: den, der faktisk beslutter, som udøver dømmekraften, og som bærer både følgerne og navnet.

Styrken ligger hos agenterne. Ansvaret ligger hos principalen, og det kan ikke overdrages.

Det begyndte uformelt som en måde at fordele arbejdet på og størknede undervejs i opbygningen til en navngiven metode: faste sæder, én overordnet regel om, at intet udgives, uden at PRIME ratificerer det, og en skriftlig optegnelse over, hvorfor hver beslutning blev truffet. Navnet udtrykker formålet: enighed, en aftale opnået med vilje gennem en proces, ikke hvad et uovervåget værktøj tilfældigvis frembringer.

Mekanikken, sagt enkelt

ForeslåHvert sæde fremlægger muligheder inden for sit eget område.
VideregivePRIME bærer forslag mellem sæderne; de forhandler aldrig direkte.
RatificerePRIME godtager det, der holder, og afviser det, der ikke gør. Ellers udgives intet.
AfgrænseEt fast sæt interne regler afgrænser hvert resultat, ved hvert sæde.
RegistrereEn skriftlig beslutningslog bevarer begrundelsen bag hvert valg.
HuskeKonteksten, de interne regler og den log består som filer, der føres fra den ene session til den næste, så metoden overlever enhver enkelt samtale.

Pladserne

  • PRIMERodolfo Nützmann
    Menneske

    Den eneste ratificerende. Hver beslutning, hver publiceret linje gik gennem et menneske, der havde hele billedet og bar det endelige ansvar. AI'erne foreslog; PRIME afgjorde.

  • ANVILTeknik
    Anthropic · Claude Opus 4.8

    Chefingeniørens plads. Arkitektur, kode, indholdsstruktur og selve byggeriet, forvandlet fra hensigt til et fungerende, testet og udrulningsklart site.

  • SCOUTStrategi og brand
    OpenAI · ChatGPT 5.5

    Strategiens og positioneringens plads. Spørgsmålene om, hvad det her er, hvem det er til, og hvordan det skal præsentere sig for verden.

  • PRISMDesign
    Google · Gemini 3.1 Pro

    Designets plads. Det visuelle sprog, typografien, farven og helhedens fornemmelse, formet til et sammenhængende system.

AI-modelversioner pr. juni 2026.

Hvordan det blev gjort

Nogle få principper gjaldt fra start til slut, og de er synlige, hvis du ved, hvor du skal kigge.

Beregn, gæt aldrig

Katalogets værktøjer beregner svar lokalt og deterministisk. De kalder ikke en server med dine inddata, og de tilnærmer ikke: det, der kører i din browser, bliver i din browser. Den erklærede undtagelse er det røde rum, hvor nogle få værktøjer har til opgave at spørge en live-tjeneste, og de siger det, før du trykker på »Ask«. De ældste værktøjer har en stamtavle: en bits-og-bytes-beregner, en IP-adresseringsberegner og et pinout-skema for kabling lå allerede på nutzmann.net i 2004 og på ntz.com.br i 2013, og Internet Archive har dem stadig.

Åben i kernen

The deterministic logic each catalogue tool runs is the whole of the tool. There is no hidden server step, no account, and nothing about your use of a tool is reported anywhere. Everything on the main floor runs in your browser.

Dokumenteret gennem konstruktion

Hver del af kodebasen er kommenteret og dokumenteret, ikke som en eftertanke, men som en stående regel. Byggeriet er tænkt til at være læsbart, for den, der vedligeholder det, og for den, der arver det.

Bygget til at vare og rejse

Sitet er en statisk eksport: hurtigt, cachebart og uafhængigt af noget ved kørselstid. Det er bygget op fra bunden til mange sprog, så det kan henvende sig til et globalt publikum uden at blive bygget om.

Assimilated, with sources

Good ideas are adopted here wherever they come from: a reader's note, an outside review, a vendor's documentation, a standard, another site's habit worth having. Each one arrives with its source named, in the changelog entry that adopts it and in the page that carries it, so the trail from idea to origin is never lost. Two response headers say the same thing to anyone who reads headers: X-Clacks-Overhead carries Terry Pratchett's name in the overhead, as thousands of sites have since 2015, and X-Collective states the method in six words. Resistance is futile; attribution is mandatory.

Stakken

For den, der går op i den slags, det tekniske fundament, klart angivet.

Framework
Next.js 15 og React 19, eksporteret som et fuldt statisk site
Internationalisering
next-intl, med 16 sprog og understøttelse af højre-mod-venstre
Designsystem
En tilpasselig, tokenbaseret temamotor; standardtemaet er Obsidian
Typografi
Inter til tekst, JetBrains Mono til data og koder
Værktøjsmotor
Et deterministisk beregningslag, der kører helt i browseren
Søgning
Statisk fuldtekstsøgning på klientsiden; ingen søgeserver

Hvordan oversættelser markeres

Engelsk er kilden: skrevet med AI og kun udgivet, når en person beslutter det. Brasiliansk portugisisk er også skrevet med AI og gennemgås gradvist; de andre sprog er maskinoversat. Hvert sprog er markeret efter, hvor langt det er: blå, når det dækker hele webstedet, gul, mens nyere indhold stadig er på engelsk og er ved at indhente, rød, når det endnu ikke har nogen oversættelse og vises på engelsk indtil videre. Alle sprog undtagen engelsk har en kort note, og du er velkommen til at hjælpe med at forbedre dem.

  • Gennemset af et menneske
  • Maskinel, fuldstændig
  • Maskinel, undervejs
  • Endnu ikke oversat

Standarder og frameworks

Hvert værktøj her implementerer en offentliggjort specifikation, ikke et gæt. Afkoderne og beregnerne bygges mod de dokumenter, der definerer deres formater, og fastgøres til de testvektorer, dokumenterne offentliggør, så hvert svar tjekkes mod sandhedskilden i stedet for mod sig selv.

Specifikationerne

JSON Web Tokens følger RFC 7519, med signaturer og algoritmer i RFC 7515 og 7518; PKCE er RFC 7636; Base64 og dens slægtninge er RFC 4648; UUID'er er RFC 9562 (der erstattede RFC 4122 i 2024 og har egne testvektorer); HMAC er RFC 2104, over SHA-familien standardiseret i FIPS 180-4 og FIPS 202; X.509-certifikater er RFC 5280; IPv4 er RFC 791, og CIDR-notationen er RFC 4632; IPv6-adressering og dens kanoniske tekstform er RFC 4291 og RFC 5952; og cipher suite-afkoderen drives af det officielle IANA TLS Cipher Suites-register, krydstjekket med TLS 1.3- og 1.2-specifikationerne (RFC 8446 og 5246), registeropdateringsreglerne, der fastsætter kolonnen “Recommended” (RFC 8447), og RC4-forbuddet (RFC 7465). Hvor et register er autoriteten, indlejres dets data direkte i stedet for at blive tastet ind igen.

Referencevektorer

Hvert værktøj leveres med et sæt referencevektorer: kendte input parret med kendt korrekte output, hentet fra de relevante RFC'er og standardiseringsorganer. De kører ved hvert build, så en refaktorering, der stille ændrer et svar, får buildet til at fejle i stedet for at gå i luften.

OWASP

Sikkerhedsværktøjerne er defineret ud fra OWASP's frameworks, ikke samlet ad hoc. Krypto- og TLS-værktøjerne svarer til områderne Cryptographic Failures og Security Misconfiguration i OWASP Top 10 og til de tilsvarende tjek i Application Security Verification Standard; token-værktøjet følger OWASP's vejledning til at inspicere og validere JWT'er. OWASP's prevention cheat sheets fastsætter også hårde regler for, hvad der bygges som det næste: enhver XML- eller SAML-håndtering, der tilføjes her, skal hærdes mod XXE, før den går i luften.

Rødt og blåt

Den samme afkod-og-forklar, der lader en red-teamer læse et opfanget token, lader en blue-teamer forstå, hvad ens egen stak udsender. Platformen står bevidst på analysesiden af den linje: den identificerer, afkoder, konverterer og forklarer, og går ikke så vidt som at forfalske, injicere eller omgå kontroller. Den grænse er et designvalg, ikke en forglemmelse; disse værktøjer findes for at lære fra sig og diagnosticere, ikke for at blive et våben.

Lokalt og deterministisk

Every catalogue tool runs in the browser. It calls a pure function: given the same input it returns the same output, holds no state, and sends nothing to a server. The red room's tools are the declared exception, live lookups that name the service they ask. No cookies and no third-party analytics; the site's own aggregate request counting is set out in full on the Privacy page.

The ceiling, stated plainly

This site runs as a single Cloudflare Worker serving static assets, and that platform has hard, published limits worth being honest about. A Worker version may carry at most 20,000 static files on the free plan and 100,000 on the paid plan (raised from 20,000 in September 2025, and only when deploying with Wrangler 4.34 or newer), with no single file over 25 MiB. Requests for static assets themselves are free and unlimited; only invocations of the Worker script, such as the API, are metered.

Those numbers matter because this architecture multiplies content deliberately. Every rendered page ships as roughly three files: its HTML, the framework's navigation payload, and a search-index fragment, across all sixteen languages, and the English and Portuguese pages add machine-readable Markdown twins. In practice one tool costs about fifty files and a tool with its companion article about a hundred, so the current site stands at a little over eighteen thousand files. Under the paid ceiling that leaves room for hundreds more tools; the build is measured against these limits, and if the toolbox ever truly outgrows a single Worker, the expansion path is already mapped: splitting routes across additional Workers, each with its own allowance, and ultimately object storage with no count limit at all.

Er dette vibe coding?

Koden er 100 % syntetiseret af Claude.

Det er et rimeligt spørgsmål, som fortjener et klart svar. Vibe coding er et begreb, som AI-forskeren Andrej Karpathy opfandt i begyndelsen af 2025 for en måde at bygge software på, hvor man beskriver, hvad man vil, for en sprogmodel, accepterer det, den skriver, uden at læse det nøje, og styrer efter resultater frem for efter selve koden. Han beskrev det som at give efter for stemningen og glemme, at koden overhovedet findes, og var klar i mælet om, at det egnede sig bedre til hurtige engangsprojekter end til systemer, som folk er afhængige af.

Efter den definition blev en del af dette websted bygget sådan, og det er bedre at vedkende sig end at skjule. Applikationens overflade, frameworkets ledningsføring, komponenterne, stylingen, de rør, der holder siderne sammen, blev fremstillet hurtigt med en AI-ingeniør og styret efter udfald og efter et fast sæt interne regler, ikke skrevet i hånden linje for linje. For det lag, hvor en fejl er synlig og let at rette, var hastighed hele pointen.

De dele, der betyder mest, holdes op mod en anden standard. Alt, der beregner dine data, verificeres, ikke laves på fornemmelse: kernen i hvert værktøj holdes op mod den offentliggjorte standard, det implementerer, de relevante RFC'er og specifikationer, og dets output bekræftes mod uafhængige referencer, før det udgives. Som en ofte citeret bemærkning fra programmøren Simon Willison lyder, er kode, du har gennemgået, testet og forstået, slet ikke vibe coding. Karpathy selv kalder nu den disciplinerede version agentic engineering: at beholde AI'ens løftestang uden at give køb på resultatets kvalitet. Det er den linje, dette projekt trækker. Hurtigt, hvor hastighed er gratis, grundigt, hvor det tæller, og ét menneske ansvarligt for det hele.

Særlig tak

Mariana, Ulli, Richard, Ocyrema, Felisberto, Regine, Eduardo, Ricardo, Pedro, Liliane, Tereza, Cezar, Leonardo, Eduardo, Victor, Miu, Nina, Luna, Tux, Kiki, Greg and Theo.

En note om metoden

At bygge software med AI-medarbejdere er nyt nok til, at det ærlige er at være åben om det. Intet her blev publiceret, uden at et menneske besluttede, at det skulle være sådan. AI'erne var værktøjer, dygtige værktøjer, men værktøjer. Dømmekraften, ansvaret og navnet på arbejdet er menneskelige.

/dev/fun