Naar inhoud

Next Session: plannen dat zichzelf regelt.

Ons eigen product, van begin tot eind ontworpen en gebouwd. Een cross-platform app, een serverloze backend en een automatische planner die de volgende spelavond voorstelt zodra de vorige is afgelopen. Gelanceerd en live in Google Play en op het web.

Rol Productontwerp, app, backend, infrastructuur
Platformen Android en web, klaar voor iOS

Het probleem

Iedereen wil spelen. Niemand prikt een datum.

Vaste speelgroepen verliezen meer avonden aan het plannen dan aan wat dan ook. De datum staat in een groepschat, de poll verwatert, één iemand loopt achter vijf anderen aan, en de campagne stopt stilletjes.

Wat we eraan deden

We lieten de app het achterna zitten doen.

Een sessie wordt voorgesteld, iedereen stemt op zijn beschikbaarheid, en zodra er genoeg spelers zijn staat de datum vast. Daarna stelt de planner de volgende sessie vanzelf voor. De organisator is niet langer de flessenhals en de groep houdt zijn vaste avond.

Wat we bouwden

Drie systemen die het werk doen.

Het product is klein aan de oppervlakte en event-driven eronder. Elk scherm hieronder komt uit de gelanceerde app.

01

Voorstellen, stemmen, bevestigen.

Een lid stelt een sessie voor met mogelijke datums. Iedereen stemt voor of tegen. Zodra het aantal acceptaties de drempel van de groep haalt, bevestigt de sessie zichzelf op de winnende datum. Wordt die drempel rekenkundig onhaalbaar, dan wijst de sessie zichzelf af in plaats van te blijven hangen, en datzelfde signaal zet het volgende voorstel in gang.

Acht sessiestatussen, elk met een eigen kleur en label, houden de hele tafel duidelijk over wat er van hen wordt verwacht.

Een bevestigde sessie in Next Session
02

Een automatische planner die nooit hoeft te zoeken.

Zet hem aan, kies een tijdstip, en de volgende sessie stelt zichzelf voor op het moment dat de huidige is afgerond. Geen cronjob die alles afloopt en geen wachtrij met toekomstige sessies: er is altijd precies één sessie onderweg, en juist het afronden daarvan is het event dat de volgende genereert.

Worden voorstellen steeds afgewezen, dan pauzeert hij zichzelf en waarschuwt hij een beheerder in plaats van de groep te blijven spammen. Betaalde herhaalregels draaien op dezelfde motor, met frequentie, einddatum en een conflictbeleid.

De instellingen van de automatische planner in Next Session
03

Beschikbaarheid die de planner kan lezen.

Elke speler houdt een eigen agenda bij: vaste wekelijkse patronen plus losse uitzonderingen. De app vat de tafel samen tot een groepsstatus per dag, zodat wie voorstelt een datum kiest die al werkt in plaats van te gokken.

Diezelfde gegevens doorzoekt de automatische planner vooruit om de volgende haalbare avond te vinden.

De beschikbaarheidskalender in Next Session

Push- en in-app-meldingen

Zeven soorten meldingen met losse schakelaars voor push en in-app, RSVP-knoppen op de melding zelf, en een eigen vooraankondigingstijd per gebruiker voordat een sessie begint.

Groepen, rollen, uitnodigingslinks

Rechten voor beheerder, organisator en lid, plus roterende uitnodigingstokens zodat een gedeelde link ongeldig gemaakt kan worden zonder aan de groep te komen.

Abonnementen en advertenties

Een gratis laag met advertenties en een Next Session+ premium-recht, afgeschermd op het moment van tikken in plaats van verstopt.

Sessies op locatie en online

Adresaanvulling voor tafels die fysiek afspreken, platform en deelnamelink voor tafels die online spelen, allebei aantikbaar vanuit de sessie.

Acht talen, drie thema’s

Engels, Nederlands, Duits, Frans, Spaans, Italiaans, Pools en Portugees door de hele app heen, inclusief meldingen vanaf de server, met een licht, donker en systeemthema.

Beweging als productafwerking

Een eigen opstartanimatie, ronde onthullingsovergangen, skeleton-laadstaten en confetti bij bevestiging, allemaal met respect voor de instelling voor minder beweging.

Hoe we werken

Hoe dit project verliep.

01

Afbakenen en plannen

We schreven het product op voordat we code schreven: rollen, de levensloop van een sessie, de meldingenmatrix en de regel dat er altijd maar één sessie tegelijk onderweg is. Die keuze haalde later een hele categorie randgevallen weg.

02

Bouwen en bijsturen

Eén Flutter-codebase voor Android en web, realtime data vanaf dag één, en cloud functions geschreven naast de schermen die ze aanroepen. Vertalingen en het donkere thema zaten er vroeg in, niet achteraf.

03

Lanceren en onderhouden

Storevermelding, privacy en voorwaarden, toestemming, analytics en een marketingsite op dezelfde hosting. De app is live en de infrastructuur houden we zelf gezond.

Onder de motorkap

De stack waarop het draait.

Zo gekozen dat één team de app, de backend en de uitrol kon bezitten zonder iets over te dragen.

App
  • Flutter, Material 3
  • Riverpod-state
  • go_router-navigatie
  • Android, web, klaar voor iOS
Backend
  • Firebase Auth
  • Cloud Firestore
  • Cloud Functions
  • Cloud Storage, App Check
Diensten
  • Cloud Messaging push
  • RevenueCat-abonnementen
  • Google AdMob
  • Google Places-adresaanvulling
Web en uitrol
  • Statische Astro-site
  • Firebase Hosting
  • Google Play-release
  • Service worker push

Heb je een softwareproject in gedachten?

Vertel ons wat je bouwt en we zeggen je eerlijk hoe we kunnen helpen.

Bespreek je softwareproject