Case archive

Projekt som visar systemtänk i praktiken

Sju leveranser där värdet sitter i mer än ytan: bokningslogik, datapipelines, innehållsflöden, drift och gränssnitt som går att använda.

01

multi-tenant booking / Laravel / live app

VenueFlow

Läs case
Problem

En verksamhetsnära bokningsprodukt behöver hantera gäster, resurser, tider, personalroller och konflikter utan att skapa friktion för användaren.

Lösning

Jag byggde en Laravel-baserad plattform med publik bokning utan konto, admin- och staff-vyer, RBAC, tenant-isolering och transaktionssäker kontroll av bokningskrockar.

Vad projektet visar

Visar att jag kan bygga system där affärsregler, datamodell och vardagsflöden måste sitta ihop, inte bara ett snyggt frontendskal.

Detaljer
Tenant-isoleringRollbaserad åtkomstKonfliktkontrollVisuell golvplanNeon + Render
Teknik
Laravel 11PHP 8.3Neon PostgreSQLBladeTailwindAlpine.jsRender
02

data pipeline / TypeScript / static delivery

FX Monitor

Läs case
Problem

Växelkurser behöver kunna jämföras över tid med KPI:er, diagram och riskindikatorer utan att kräva tung backenddrift.

Lösning

Jag byggde en monorepo med React/TypeScript-frontend och en Python-pipeline som hämtar ECB-data, publicerar statiska JSON-filer och uppdateras dagligen via GitHub Actions.

Vad projektet visar

Visar att jag kan koppla ihop data, CI, prestanda och interaktiv UX till en lösning som är enkel att drifta och lätt att resonera om.

Detaljer
Daglig CI-uppdateringStatiska datafilerKPI-beräkningJämförelselägeTvåspråkigt UI
Teknik
ReactTypeScriptVitestPythonpytestruffChart.jsGitHub Actions
03

publik webb + adminpanel / React / JWT-API

Lördagsgolf

Läs case
Problem

Besökare ska snabbt förstå bana, upplägg och resultat, samtidigt som arrangörerna behöver ett säkert sätt att registrera spelare, rundor och banor utan att röra databasen direkt.

Lösning

Jag byggde en React/Vite-frontend som pratar med en egen ASP.NET Core-backend: publika säsongs- och spelarsidor, en adminpanel bakom JWT-inloggning för att hantera spelare, rundor och banor, samt ett adapterlager som normaliserar API-svarens skiftande form.

Vad projektet visar

Visar att jag kan bygga och koppla ihop en frontend mot en egen autentiserad backend över två repon, med adapters och en robust API-klient som håller UI:t oberoende av backendens exakta svarsform.

Detaljer
JWT-säkrad adminpanelCRUD för spelare/rundor/banorAdapterlager mot API-kontraktAPI-klient med timeout/retrySpelarstatistik per säsong
Teknik
React 19ViteReact RouterTailwindASP.NET CoreJWTRender
04

golf scorecard / Next.js / Claude API

Fairway

Läs case
Problem

Att föra runda på papper ger ingen data att förbättra sig från. Golfare behöver ett sätt att logga rundor hål för hål och få konkret återkoppling på vad som faktiskt kostade slag.

Lösning

Jag byggde en fullstack Next.js-app med hål-för-hål-scorecard, localStorage-lagring, statistikdiagram, screenshot-import via AI-vision och Claude-driven coachinganalys per runda.

Vad projektet visar

Visar end-to-end produkttänk: säker AI-integration på serversidan, strukturerad data från ostrukturerad input och ett gränssnitt som håller under en runda.

Detaljer
AI på serversidanScreenshot-importlocalStorageHål-för-hål-statistikCoachingrapport
Teknik
Next.js 16TypeScriptTailwind v4Anthropic SDKZodRender
05

hyperlokal data-hub / Next.js / Claude API

Kommunfotbollen

Läs case
Problem

Lokalfotboll är utspridd över flera källor och lokaltidningar. Ingen enskild plats samlar tabeller, matcher och målskyttar för kommunens lag, uppdaterat automatiskt.

Lösning

Jag byggde en Next.js-app som hämtar serier, matcher och tabeller från en extern sportkälla, och som låter Claude läsa lokaltidningarnas matchreferat för att bedöma relevans och extrahera målskyttar ur ostrukturerad text.

Vad projektet visar

Visar att jag kan bygga en källagnostisk ingest-arkitektur och använda AI för strukturerad extraktion ur text, drivet av ett schemalagt, kostnadsfritt driftupplägg.

Detaljer
Källagnostisk ingestAI-driven relevansfiltreringMålskytte-extraktion ur textCron via GitHub ActionsSupabase Postgres
Teknik
Next.js 16TypeScriptDrizzle ORMSupabaseZodTailwind v4Anthropic SDKGitHub ActionsRender
06

delad utgiftsapp / Laravel / Vue 3

Kvitt

Läs case
Problem

Att dela utlägg i grupp (resa, sommarstuga, matlag) slutar ofta i ett virrvarr av småskulder korsvis mellan alla, och ingen vet riktigt vem som ska betala vem.

Lösning

Jag byggde en Laravel + Inertia + Vue-app med grupper, delade utlägg och en girig skuldförenklingsalgoritm som räknar ut det minsta antalet transaktioner som krävs för att göra upp hela gruppens mellanhavanden, plus påminnelser med en atomärt skyddad nedkylning.

Vad projektet visar

Visar att jag kan lösa ett riktigt algoritmproblem, inte bara bygga CRUD, och hantera race conditions korrekt med atomära databasoperationer.

Detaljer
SkuldförenklingsalgoritmGrupper & delade utläggAtomär påminnelse-cooldownPush- & e-postnotiserSchemalagda påminnelser
Teknik
Laravel 13PHP 8.3Inertia.jsVue 3PostgreSQLPestLarastanTailwind v4Render
07

feature-flag-plattform / Laravel / RBAC

FlagForge

Läs case
Problem

Att slå på och av funktioner i produktion utan att kunna kontrollera vem som godkänner det, spåra vad som ändrades, eller rulla tillbaka snabbt är farligt i en verksamhet med flera miljöer och flera personer inblandade.

Lösning

Jag byggde en Laravel-baserad feature-flag-kontrollpanel à la LaunchDarkly: projekt-scopade API-nycklar, deterministisk rollout-hashning, ett draft/publish-flöde per miljö med tvåpersonersgodkännande för kritiska flaggor, en "break-glass"-nödöppning, och en omutlig audit-logg med kontrollsummekedja.

Vad projektet visar

Visar att jag kan designa styrning och behörighet för ett verktyg andra utvecklare litar på i produktion, inte bara bygga funktioner — governance, spårbarhet och race-condition-säkerhet är förstaklassmedborgare, inte eftertankar.

Detaljer
RBAC per projektTvåpersonersgodkännandeOmutlig audit-kedjaDeterministisk rollout-hashningBreak-glass-nödöppning
Teknik
Laravel 12PHP 8.3PostgreSQLPHPUnitPintGitHub ActionsRender

Vill du se hur ditt projekt skulle brytas ner?

Skicka nuläge, mål och det som är oklart. Jag återkommer med ett konkret första steg och vad som bör byggas först.