Noen ganger kan det være fint å bare kaste seg ut i et hobbyprosjekt og bare kode i vei uten de begrensningene som kanskje finnes i en vanlig jobb. Hvorfor ikke bare sette i gang og bruke alle de nye og kule verktøyene som finnes der ute? Det var det vi gjorde da vi lagde Pokermaster - "Strava for pokerspillere"
Hva er prosjektet?
Jeg og en kompis har spilt en del poker og pleide å holde styr på resultatene våre manuelt. Etter hvert syntes vi det var tungvint, så vi satte oss ned og laget en enkel webapp for å gjøre det lettere. Målet vårt var å ha et sted hvor vi kunne loggføre spill, holde oversikt over hvordan det gikk over tid, og inkludere vennene våre i gruppespill. Det skal bemerkes at dette ikke er en app hvor man kan spille poker, men kun noe som gjør det enklere å følge med på egen og vennenes spilling. Per nå har vi implementert følgende funksjoner:
- Loggføring av egne spill: Du kan registrere hvor mye du vant eller tapte etter en sesjon.
- Gruppespill: Det er mulig å legge inn resultater fra spill med flere deltakere. Hvis vennene dine også bruker appen, kan de godkjenne resultatene.
- Statistikk: En oversikt over tidligere spill viser hvordan du har gjort det over tid.
- Følge venner: Du kan se hvordan det går med vennene dine og hvem som gjør det best (eller dårligst) i gruppespillene.
Noen bilder fra appen:
Hva inspirerte deg til å lage det
Det som inspirerte oss var egentlig at vi ville prøve det nyeste og kuleste innen utvikling, og at det var gøy å se hvor langt vi kunne komme med den mest moderne tech-stacken man kan tenke seg. Det var også litt gøy å lage noe som ligner på et sosialt medium, altså at man kan følge hverandre og poste ting, noe som ga oss noen utfordringer med å håndtere varsler, tagging av hverandre og lignende
Så hva er da tech stacken?
Nå kommer vi til det som faktisk er litt kult, for her har vi bare gått all-in med noen av de mest trendy verktøyene som finnes i 2024.
- NextJS
- Vercel før hosting + DNS server
- Supabase før Auth + Lagring
- V0.dev + shadcn med tailwind før UI
- Resend som SMTP server (Signup mail etc)
Hva er én ting du lert?
Foruten å ha lært meg masse om ny teknologi, som jeg alltid synes er gøy, har jeg også lært mye annet. Det viktigste er nok verdien av å jobbe sammen med noen. Hele prosjektet er laget sammen med en kompis, noe som gjør det mye morsommere når man kan dele ideer og motivere hverandre til å fortsette med prosjektet. Jeg har hatt så mange hobbyprosjekter som har dødd fordi jeg mistet motivasjonen, men slik er det ikke denne gangen.
Tekniske julemirakel
Jeg må bare gi en stor shoutout til Supabase. Med hjelp av Supabase CLI og Docker (min favoritteknologi) kan man enkelt sette opp en lokal Supabase-instans, noe som er helt fantastisk for utvikling. Alt fungerer ekstremt bra, det er enkelt å sette opp, og i tillegg får man autentisering og row-level security rett ut av boksen, noe som gir et ekstra lag med sikkerhet for dataene i applikasjonen din. Dette er også det første ordentlige prosjektet mitt med V0.dev, som har vist seg å fungere veldig bra.
Tekniske feiltrinn
Vi prøvde å bruke Twilio SendGrid, men klarte ikke å få det til å fungere, så vi byttet til Resend – det fungerte knirkefritt. Vi var kanskje litt for ivrige med å bruke PostgreSQL-funksjoner. Det fungerte bra helt til første gangen vi skulle gjøre en større migrering. Da oppdaget vi at vi hadde kodet inn litt for mye "smart magi" i selve databasen, noe som skapte utfordringer.
Det var alt for denne gang! Hvis dere er interessert i hvordan appen fungerer, er det bare å sjekke den ut på https://pokermaster.se!