Kolofon

Hur det här byggdes

De flesta webbplatser förklarar inte sig själva. Den här gör det, för hur den gjordes är en del av vad den är: ett medvetet experiment i att bygga väl, med ovanliga medarbetare, och ett register värt att bevara.

CONCORD

Den här webbplatsen designades och byggdes genom ett protokoll som heter CONCORD: ett strukturerat samarbete mellan en person och tre olika AI-system, vart och ett i en egen roll. Det är inget trick. Det är en fungerande metod, med en egen styrning, ett eget beslutsregister, och en enda människa ansvarig för varje val som publicerades.

Premissen är enkel. Olika AI-modeller har olika styrkor, och ett svårt problem vinner på mer än ett perspektiv som hålls i spänning. Därför delades arbetet upp efter roll, och en person satt i mitten, gick som brygga mellan dem, ratificerade det som var gediget och förkastade det som inte var det.

CONCORD är inte hämtat någonstans ifrån. Det utformades av Rodolfo Nützmann för det här projektet utifrån ett praktiskt behov: hur man drar nytta av flera AI-system samtidigt, vart och ett verkligt starkt på något olika, utan att ge upp den enda tråd av mänskligt ansvar som riktigt arbete kräver. Svaret var att ge varje system ett bestämt säte, hindra dem från att förhandla sinsemellan och leda varje utbyte genom en enda person som höll hela bilden. Den ordningen har ett äldre namn. AI-systemen är agenter: de handlar på anvisning och för någon annans räkning. PRIME är huvudmannen: den som faktiskt beslutar, som utövar omdömet och som bär både följderna och namnet.

Styrkan ligger hos agenterna. Ansvaret ligger hos huvudmannen, och det kan inte överföras.

Det började informellt – som ett sätt att dela upp arbetet – och stelnade under bygget till en namngiven metod: fasta säten, en enda överordnad regel att inget publiceras utan att PRIME ratificerar det, och en skriftlig anteckning om varför varje beslut fattades. Namnet anger syftet: endräkt, en överenskommelse som nås med avsikt genom en process, inte vad ett oövervakat verktyg råkar frambringa.

Mekaniken, enkelt uttryckt

FöreslåVarje säte lägger fram alternativ inom sitt eget område.
FörmedlaPRIME bär förslag mellan sätena; de förhandlar aldrig direkt.
RatificeraPRIME godtar det som håller och avvisar det som inte gör det. Annars publiceras inget.
AvgränsaEn fast uppsättning interna regler avgränsar varje resultat, vid varje säte.
RegistreraEn skriftlig beslutslogg bevarar resonemanget bakom varje val.
MinnasSammanhanget, de interna reglerna och den loggen består som filer, förda från en session till nästa, så att metoden överlever varje enskilt samtal.

Platserna

  • PRIMERodolfo Nützmann
    Människa

    Den enda ratificeraren. Varje beslut, varje publicerad rad gick genom en människa som hade hela bilden och bar det slutliga ansvaret. AI:erna föreslog; PRIME avgjorde.

  • ANVILTeknik
    Anthropic · Claude Opus 4.8

    Chefsingenjörens plats. Arkitektur, kod, innehållsstruktur, och själva bygget, omvandlat från avsikt till en fungerande, testad och driftsättningsbar webbplats.

  • SCOUTStrategi och varumärke
    OpenAI · ChatGPT 5.5

    Strategins och positioneringens plats. Frågorna om vad det här är, för vem det är, och hur det ska presentera sig för världen.

  • PRISMDesign
    Google · Gemini 3.1 Pro

    Designens plats. Det visuella språket, typografin, färgen och helhetens känsla, formade till ett sammanhängande system.

AI-modellversioner per juni 2026.

Hur det gjordes

Några principer gällde från början till slut, och de syns om du vet var du ska titta.

Beräkna, aldrig gissa

Verktygen på den här webbplatsen beräknar svar lokalt och deterministiskt. De anropar ingen server med dina indata, och de approximerar inte. Det som körs i din webbläsare stannar i din webbläsare.

Öppen i kärnan

Den deterministiska logik som varje verktyg kör är hela verktyget: det finns inget dolt serversteg, inget konto och ingen telemetri. Allt körs i din webbläsare.

Dokumenterad genom konstruktion

Varje del av kodbasen är kommenterad och dokumenterad, inte som en eftertanke utan som en stående regel. Bygget är tänkt att vara läsbart, för den som underhåller det och för den som ärver det.

Byggd för att bestå och resa

Webbplatsen är en statisk export: snabb, cachebar och oberoende av något vid körning. Den är uppbyggd från grunden för många språk, så att den kan tilltala en global publik utan att byggas om.

Stacken

För den som bryr sig om sådant, den tekniska grunden, tydligt angiven.

Ramverk
Next.js 15 och React 19, exporterade som en helt statisk webbplats
Internationalisering
next-intl, med 16 språk och stöd för höger-till-vänster
Designsystem
En anpassningsbar, tokenbaserad temamotor; standardtemat är Obsidian
Typografi
Inter för text, JetBrains Mono för data och koder
Verktygsmotor
Ett deterministiskt beräkningslager som körs helt i webbläsaren
Sökning
Statisk fulltextsökning på klientsidan; ingen sökserver

Hur översättningar märks

Engelska och brasiliansk portugisiska skrivs och granskas av en person. De flesta andra språk är maskinöversatta och märkta efter hur långt de har kommit: bärnstensgul när ett språk täcker hela webbplatsen, gul medan nyare innehåll fortfarande är på engelska och håller på att komma ikapp. Språk markerade med rött har ännu ingen översättning och visas på engelska tills vidare. Maskinöversatta sidor har också en kort notis, och du är välkommen att hjälpa till att förbättra dem.

  • Granskad av en människa
  • Maskinell, fullständig
  • Maskinell, pågår
  • Inte översatt ännu

Standarder och ramverk

Varje verktyg här implementerar en publicerad specifikation, inte en gissning. Avkodarna och kalkylatorerna byggs mot de dokument som definierar deras format och fästs vid de testvektorer som dokumenten publicerar, så att varje svar prövas mot sanningskällan i stället för mot sig självt.

Specifikationerna

JSON Web Tokens följer RFC 7519, med signaturer och algoritmer i RFC 7515 och 7518; PKCE är RFC 7636; Base64 och dess släktingar är RFC 4648; UUID är RFC 9562 (som ersatte RFC 4122 år 2024 och har egna testvektorer); HMAC är RFC 2104, över SHA-familjen standardiserad i FIPS 180-4 och FIPS 202; X.509-certifikat är RFC 5280; IPv4 och CIDR-notationen är RFC 4632; IPv6-adressering och dess kanoniska textform är RFC 4291 och RFC 5952; och cipher suite-avkodaren drivs av det officiella IANA TLS Cipher Suites-registret, korsvis kontrollerat mot TLS 1.3- och 1.2-specifikationerna (RFC 8446 och 5246), registeruppdateringsreglerna som sätter kolumnen “Recommended” (RFC 8447) och RC4-förbudet (RFC 7465). Där ett register är auktoriteten tas dess data in direkt i stället för att skrivas av.

Referensvektorer

Varje verktyg levereras med en uppsättning referensvektorer: kända indata parade med känt korrekta utdata, hämtade från relevanta RFC:er och standardiseringsorgan. De körs vid varje build, så en omstrukturering som tyst ändrar ett svar får builden att misslyckas i stället för att gå ut.

OWASP

Säkerhetsverktygen definieras utifrån OWASP:s ramverk, inte ihopsatta på måfå. Krypto- och TLS-verktygen motsvarar områdena Cryptographic Failures och Security Misconfiguration i OWASP Top 10 och de matchande kontrollerna i Application Security Verification Standard; token-verktyget följer OWASP:s vägledning för att inspektera och validera JWT. OWASP:s prevention cheat sheets sätter också hårda regler för vad som byggs härnäst: all XML- eller SAML-hantering som läggs till här måste härdas mot XXE innan den går ut.

Rött och blått

Samma avkoda-och-förklara som låter en red-teamer läsa ett fångat token låter en blue-teamer förstå vad den egna stacken sänder ut. Plattformen står medvetet på analyssidan av den linjen: den identifierar, avkodar, konverterar och förklarar, och går inte så långt som att förfalska, injicera eller kringgå kontroller. Den gränsen är ett designval, inte ett förbiseende; dessa verktyg finns för att lära ut och diagnostisera, inte för att bli ett vapen.

Lokalt och deterministiskt

Allt körs i webbläsaren. Verktyget anropar en ren funktion: med samma indata ger den samma utdata, håller inget tillstånd och skickar ingenting till en server. Inga cookies, ingen analys, som integritetssidan beskriver i sin helhet.

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.

Är det här vibe coding?

Koden är till 100 % syntetiserad av Claude.

Det är en rimlig fråga, som förtjänar ett tydligt svar. Vibe coding är en term som AI-forskaren Andrej Karpathy myntade i början av 2025 för ett sätt att bygga programvara där man beskriver för en språkmodell vad man vill ha, godtar det den skriver utan att läsa det noga, och styr efter resultat snarare än efter själva koden. Han beskrev det som att ge efter för stämningen och glömma att koden ens finns, och var tydlig med att det passade bättre för snabba engångsprojekt än för system som folk är beroende av.

Enligt den definitionen byggdes en del av den här webbplatsen så, och det är bättre att stå för det än att dölja det. Applikationens yta, ramverkets koppling, komponenterna, stilsättningen, rörmokeriet som håller ihop sidorna, togs fram snabbt med en AI-ingenjör och styrdes av utfall och av en fast uppsättning interna regler, inte handskriven rad för rad. För det lagret, där ett fel är synligt och lätt att rätta, var snabbheten hela poängen.

De delar som betyder mest hålls mot en annan måttstock. Allt som beräknar dina data verifieras, görs inte på känsla: kärnan i varje verktyg stäms av mot den publicerade standard det implementerar, de relevanta RFC:erna och specifikationerna, och dess utdata bekräftas mot oberoende referenser innan den publiceras. Som en ofta citerad rad från programmeraren Simon Willison lyder är kod som du har granskat, testat och förstått inte vibe coding alls. Karpathy själv kallar nu den disciplinerade versionen agentic engineering: att behålla AI:ns hävstång utan att ge avkall på resultatets kvalitet. Det är den linje det här projektet drar. Snabbt där snabbhet är gratis, noggrant där det räknas, och en människa ansvarig för alltihop.

Särskilt tack

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

En not om metoden

Att bygga programvara med AI-medarbetare är nog nytt för att det ärliga ska vara att vara öppen om det. Inget här publicerades utan att en människa bestämde att det skulle vara så. AI:erna var verktyg, dugliga verktyg, men verktyg. Omdömet, ansvaret och namnet på arbetet är mänskliga.

/dev/fun