BetTrack
En webapp til at holde regnskab med væddemål og casino: hvad der står ude, hvad der er afgjort, og om det samlet set giver overskud.
Besøg bettrack.dkHvorfor jeg lavede den
Efter tre år på STX kunne man ikke undgå at se, at gambling er et kæmpe problem blandt især unge drenge. Det, der overraskede mig mest, var ikke selve spillet — det var, hvor mange der gik rundt og sagde, de var i massiv profit. Det skabte et fællesskab omkring det at gamble, og det fik flere til at prøve selv. Men sandheden var en helt anden: næsten ingen var faktisk i plus. De fleste var i minus, uden selv at vide hvor meget, fordi de spillede på flere forskellige platforme, og fordi ingen udbyder er forpligtet til at vise mere end de seneste 90 dages historik, medmindre man selv går ind og leder efter det.
Så jeg undersøgte, om der fandtes en nem måde at samle det på tværs af platforme. Det gjorde der ikke. Jeg kunne til gengæld læse mig frem til, at Spillemyndigheden på et tidspunkt selv havde forsøgt at bygge noget lignende, uden at det blev en succes. Min hypotese var, at det aldrig fik nok oplevet nytte til, at nogen gad bruge det — det løste et problem, ingen aktivt søgte en løsning på, i stedet for et de allerede mærkede.
Derfor byggede jeg BetTrack: ét sted, hvor tallene på tværs af alle konti lægges sammen, i stedet for at ligge spredt hos hver enkelt udbyder. Håbet er, at et ærligt overblik gør det sværere at bilde sig selv ind, at man går i plus, når man reelt ikke gør.
Om projektet
BetTrack er min egen platform og den, jeg lægger flest timer i. Man registrerer sine væddemål og sine ind- og udbetalinger, og appen fører regnskabet: hvad der er sat, hvad der er afgjort, og hvordan kapitalen har udviklet sig over tid. Der er en betalt Pro-udgave med en rådgiver-chat bygget på Claude Haiku 4.5. Den er bygget i TanStack Start med Supabase til database og login, og al serverlogik ligger i typede RPC-funktioner frem for et separat REST-API.
Det svære
Et afventende væddemål — et der er sat, men endnu ikke afgjort — blev talt som et realiseret tab nogle steder i appen, men ikke andre. Resultatet var, at dagens resultat, delingsbilledet og den samlede kapital kunne vise tre forskellige beløb på samme tid. Det er den slags fejl, der får folk til at holde op med at stole på tallene, og dermed på hele appen.
Sådan løste jeg det
Al profit- og tabsberegning er samlet i én fil, som alle sider er tvunget til at gå igennem — der er ikke længere et sted, hvor det kan regnes 'næsten rigtigt'. Væddemål fik samtidig tre adskilte datofelter, så et bet tæller i statistikken den dag det afgøres, mens kampstart og oprettelsesdato stadig kan rettes hver for sig ved bagudregistrering. Alle ændringer af beløb går gennem atomare databasefunktioner, der lægger forskellen til direkte i databasen, så to samtidige opdateringer ikke kan overskrive hinanden.
Hvad der kom ud af det
- Row Level Security på alle tabeller — data er beskyttet i databasen, ikke kun i frontend-koden
- 69 versionerede databasemigrationer, ingen ad-hoc ændringer direkte i produktion
- Login hænger ikke længere på Android: token læses synkront fra enheden før netværkskaldet
- Betalingslag og Pro-funktioner er indbygget i arkitekturen, ikke sat på bagefter
Fortæl mig, hvad du har brug for.
Skriv et par linjer om projektet, så vender jeg tilbage inden for 24 timer med, hvad jeg tænker det kræver. Det koster ikke noget, og du binder dig ikke til noget ved at spørge.