
KalasKoll – Smarta barnkalas-inbjudningar
Digitala inbjudningar till barnkalas. Du skapar kalaset, delar en länk eller QR-kod, och gästerna svarar direkt i mobilen. Du ser OSA och allergier i realtid istället för att jaga svar i föräldrachatten. Gratis att komma igång.
”Min son skulle fylla sex och ville bjuda hela förskoleklassen, 22 barn. Jag satt med papperslappar och en föräldrachatt som spårat ur. Då byggde jag det här istället.”
Historien bakom KalasKoll – Smarta barnkalas-inbjudningar
Varför jag byggde det
Alexander skulle fylla sex och ville bjuda hela förskoleklassen. 22 barn. Inbjudningarna åkte hem i ryggsäckarna, och sen kom svaren lite hur som helst. Några i föräldrachatten, några muntligt vid hämtning, några aldrig alls.
Allergierna var värst. Man vill inte gissa när ett barn inte tål nötter, och man vill absolut inte ha den informationen liggande i en gruppchatt.
Så jag byggde det jag själv ville ha. En länk eller QR-kod på inbjudan, gästen svarar i mobilen på trettio sekunder, och jag ser gästlistan uppdateras direkt.
Hur det är byggt
Next.js 16 med App Router och TypeScript. Tailwind och shadcn/ui i gränssnittet, Supabase för databas, inloggning och realtid. Stripe för betalning, Resend för mejl, 46elks för SMS. Ligger på Vercel.
AI-korten genereras med Flux Dev via Replicate, med DALL-E 3 som reserv när Replicate strular.
Allt är byggt med Claude Code. Jag skriver vad jag vill ha och granskar det som kommer tillbaka. Jag har lärt mig mer om RLS-policyer och kryptering av att ifrågasätta AI:ns kod än jag gjort av tutorials. 375 commits sen slutet av januari.
Det svåraste
Allergidata. Det räknas som hälsodata enligt GDPR artikel 9, vilket betyder eget samtycke, kryptering och en plan för radering. Nu ligger det AES-256-krypterat, föräldern måste kryssa i ett separat samtycke, och ett cronjobb raderar allt sju dagar efter kalaset.
Buggen som tog längst att förstå var en annan. Som admin kan jag se appen som en viss användare för att felsöka. Sidorna använde vanliga databasklienten, så radsäkerheten i Postgres gav mig min egen data istället för användarens. Allt såg ut att fungera. Det var bara fel siffror.
Härnäst
Just nu putsar jag på adminverktygen och jagar laddningstider. Sidorna renderas på servern nu istället för att hämta data i webbläsaren, vilket tog bort ett par sekunder på de tyngsta vyerna.
Sen vill jag ha en kartlänk till kalasplatsen, för det är den vanligaste frågan gästerna ställer. Och en riktig påminnelse, ett SMS dagen innan till dem som svarat ja.
Längre fram: presentlistor, så att tre barn inte kommer med samma lego.