kim.simplineers.se — en teknikdemo från Simplineers

En binär räcker.

Sidan du tittar på är en komplett webbapplikation — HTTP‑server, databas, gränssnitt och typsnitt — kompilerad till en enda fil på 13,4 MB. Ingen container, ingen CDN, inget JavaScript‑ramverk, ingen cookiebanner. Bara Go, HTMX och SQLite bakom Caddy.

01Servern, live

Panelen nedan hämtas om var tredje sekund direkt från Go-processen. Ingen JavaScript-kod är skriven för det här — bara två HTML-attribut.

Läser av servern …

receptet<div hx-get="/partial/stats" hx-trigger="load, every 3s">

02Gästbok — skriv till databasen

Formuläret postar till servern och svaret — ett färdigrenderat HTML-fragment — sätts in överst i listan. Inget bygge, ingen JSON, ingen state-hantering i klienten. Inlägget lagras i en SQLite-fil på servern: ingen IP-adress, inga kakor, bara det du skriver. De 200 senaste inläggen behålls.

  1. Anonym

    Päronsoda

  2. Anonym

    Ostron

  3. Kim

    Vitlök

receptet<form hx-post="/entries" hx-target="#gb-list" hx-swap="afterbegin">

Sök bland Sveriges 60 största kommuner, seedade i tabellen kommuner. Varje tangenttryckning (med 250 ms debounce) blir en SQL-fråga på servern — svarstiden står under resultatet.

60 kommuner väntar i databasen — börja skriva så söker servern medan du skriver.

receptet<input hx-get="/partial/search" hx-trigger="input changed delay:250ms">

04Logga in med BankID

Riktig BankID-inloggning mot BankID:s skarpa miljö. Binären pratar med BankID:s API över ömsesidig TLS — Simplineers FP-certifikat från Handelsbanken, och BankID:s rot-CA pinnad i binären så systemets CA-store aldrig används. Webbläsaren får bara färdiga HTML-fragment, och QR-koden animeras en gång i sekunden. Hela flödet ligger på servern; qrStartSecret lämnar den aldrig.

Skarp inloggning med ditt riktiga BankID. Personnumret tas emot men sparas aldrig — bara ett slumpmässigt sessions-id hamnar i kakan.

receptet<button hx-post="/bankid/auth"> → /collect + animerad QR <div hx-trigger="every 1s">

05Så funkar det

Poängen är inte att verktygen är exotiska — det är att de är . Varje del av en stack är något som ska uppgraderas, säkras, övervakas och förklaras för en revisor. Det här är hela listan:

En vanlig stackDen här sidan
SPA-ramverk + byggpipelineHTMX — 49 kB, serveras ur binären
Databasserver att driftaSQLite — en fil på disk
Runtime + paketträd (~200 MB)En statisk Go-binär (13,4 MB)
Containerorkestreringsystemd — en unit-fil på 15 rader
CDN, fonter och skript från tredje partAllt från samma server — CSP utan undantag
Cookiebanner + samtyckeslogikEn strikt nödvändig sessionskaka — undantagen, ingen banner