Skip to content
cleson.dev
All work

Case study

Randalo

Your people. Your city. Your night.

Randalo is an events and community app for German-speaking countries. I started it with two co-founders and have been building the platform behind it ever since: architecture, backend, cloud and web front ends.

Role
Co-founder & managing director
Team
with Nic Markfort and Jannik Nohn
Since
January 2026
Platforms
iOS, Android, web
Status
Beta, live on the App Store and Google Play
  • Home screen with events near Osnabrück
  • Map with event markers in Münster
  • Event page “Rooftop-Sommerabend” with directions, chat and photos
  • Creating an event: choosing an occasion
  • Group chat of the “Rooftop Crew”
  • Shared gallery “Festival-Tag am Fluss”
  • Party game “Never have I ever”
  • User portal with ideas from the community
Screenshots from the app’s demo mode (in German). The people and photos shown are AI-generated.
The tournament board in the browser with knockout round and upcoming games.
The tournament board in the browser with knockout round and upcoming games.

01 Background

One night, one app.

Doing something together usually means jumping between tools: you find events on social media, plan in a messenger, settle costs in yet another app, and the photos end up scattered across everyone’s phones. Meanwhile, much of what happens in your own city goes unnoticed.

Randalo brings it into one app: discover, plan, split costs, play and remember. For groups of friends just as much as for clubs, crews and organisers who appear as an Orga.

What the app does

  • Discover

    Find events nearby on the map, in the feed and in the calendar, and subscribe to places to get a push notification for new events.

  • Organise

    Create events from an occasion, repeat them as a series, hand out roles and polls, and invite by link or QR code.

  • Orgas

    Crews and clubs found an Orga with members, roles, their own calendar and a shared chat.

  • Kasse

    Track expenses, see balances and settle up in a few payments. The money itself never flows through Randalo.

  • Games & tournaments

    Party games, a photo game and tournaments with schedule, standings and live scores, on iPhone even on the lock screen.

  • Gallery

    Every photo of the night in one place. Guests without the app upload through a photo link.

02 My role

The platform, end to end.

We are three founders and managing directors. I own the technical platform and wrote about half of the 2,400+ commits in the monorepo, most of the backend and infrastructure among them.

  • 01

    Architecture & backend

    Ten domain services on .NET 10 and gRPC, a REST gateway with FastEndpoints and realtime over SignalR.

  • 02

    Cloud & operations

    The whole Azure environment as code in Bicep, deployments through GitHub Actions and telemetry with OpenTelemetry.

  • 03

    Web front ends

    Organiser portal in Next.js, tournament board in Vue, admin console in TanStack Start and the randalo.events website in Astro.

  • 04

    Automation

    AI-assisted event import from links, a media pipeline without manual steps, and an orchestrator that spins up short-lived servers for tests and tears them down again.

  • 05

    App & repository

    Work on the Flutter app and bringing app, backend, website and infrastructure together in one monorepo.

03 Architecture

Under the hood.

The app and three web front ends talk to a .NET 10 backend made of domain services. Public clients only go through the public API; internal tools like the organiser portal and admin console call the services server-side over gRPC. Everything runs in Azure Container Apps in a European region.

Interactive diagram: Randalo platform overview
Interactive: click an element for details, switch to “Live” to play the data flow, explore connections with Route and Lens.Open full screen
  • Clear boundaries

    Each service owns its schema in a shared Azure SQL database and talks to others only over gRPC or messages.

  • Async where it fits

    Changes such as new memberships spread through MassTransit and Azure Service Bus, backed by an outbox.

  • Local like production

    .NET Aspire starts every service along with database, message bus and emulators in a single command.

  • Infrastructure as code

    About 100 Bicep files describe the Azure environment, from database roles to domains and certificates.

04 Media pipeline

From upload to finished video.

Photos and videos don’t just land in storage: every file is uploaded in chunks, verified by checksum, scanned for viruses and then automatically turned into the right image sizes or HLS video streams. This is exactly the kind of process I build for businesses too: robust, free of manual work and designed to recover from failures on its own.

Interactive diagram: Randalo media pipeline
Interactive: click an element for details, switch to “Live” to play the data flow, explore connections with Route and Lens.Open full screen
  • Idempotent

    A strictly increasing workflow revision makes sure redelivered messages can’t mix anything up.

  • Scales to zero

    The workers run as Container Apps jobs that only start when there is work in the queue.

  • Transparent

    The app shows progress live over SignalR: requested, virus scan, processing, done.

05 How we work

How we build.

commits since December 2025
2,400+
.NET projects
77
test files in the app
1,400+
architecture decisions (ADRs)
16
  • Decisions on record

    We record architecture decisions as ADRs, for example that payments never run through the app or that a series creates real individual events.

  • Tests on throwaway servers

    Integration tests run against the full Aspire stack on short-lived Hetzner VMs that our own orchestrator starts and cleans up.

  • Contracts in check

    CI regenerates the generated gRPC client code. If it drifts from the .proto files, the build fails.

  • AI on the team

    We build with AI agents like Claude Code that know the repository’s conventions through project-specific rules and skills.

06 Timeline

From idea to the stores.

  1. Dec 2025

    Kick-off

    The first commits for Randalo.

  2. Jan 2026

    The backend begins

    I set up the .NET backend that grew into today’s service platform.

  3. May 2026

    Restart in Flutter

    The app moves from FlutterFlow to its own Flutter code.

  4. Jun – Sep 2026

    Beta 1.0

    First beta builds with events, map, chats, gallery, tournaments and party games.

  5. Aug 2026

    Randalo UG

    The three of us become managing directors of Randalo UG (haftungsbeschränkt).

  6. Sep 2026

    Version 1.1

    App Store submission, Sign in with Apple and a minimum age of 18.

  7. Oct 2026

    Versions 1.2 and 1.3

    New event page, invites by QR code, photo game, Orgas with Kasse, series and Live Activities on iPhone.

  8. Oct 2026

    One monorepo

    App, backend, website and infrastructure now live in a single repository.

Planning something similar?

Whether it’s an app, a platform or automating a process: I’ll help you build it properly.