---
title: "Concert Music Festival: de app die zichzelf bijwerkt · Polargate"
description: "Een Spaans zomerfestival had de line-up gecompileerd in de app-binary en de backend opgesloten in een no-codeplatform. Polargate bouwde het fundament in vier dagen…"
url: https://polargate.ai/nl/work/concert-music-festival
locale: nl
publisher: POLARGATE S.L.
---
- [Polargate](https://polargate.ai/nl)
- [Werk](https://polargate.ai/nl/work)
- Concert Music Festival Livemuziek en festivals

# Van een bevroren line-up naar een app die zichzelf bijwerkt

Een Spaans zomerfestival had de line-up gecompileerd in de app-binary en de backend opgesloten in een no-codeplatform. Polargate bouwde het fundament in vier dagen opnieuw, tien dagen voor het seizoen begon.
[Bekijk de live site](https://cmf.polargate.ai)

cmf.polargate.ai

Kort gezegd
Polargate redde de officiële app van een Spaans muziekfestival: de line-up zat gecompileerd in de store-binary en de backend stond vast in een no-codeplatform dat hem niet vrijgaf. In vier dagen migreerden we 26 tabellen, 12 edge functions en 62 gebruikersaccounts naar onze eigen Supabase, koppelden we de WordPress van het festival via een synchronisatie elke 30 minuten, en sindsdien gaan wijzigingen over the air.
4
dagen van diagnose tot de nieuwe backend draaide

62
gebruikersaccounts gemigreerd met behoud van hun IDs

37
optredens gesynchroniseerd vanaf de website in seizoen 2026

30 min
synchronisatie-interval tussen WordPress en de app

177
landen waar de Android-app beschikbaar is

106
unittests die bij elke wijziging draaien

## Het probleem

Het festival had al een officiële app in beide stores, gebouwd op een no-codeplatform. De line-up zat gecompileerd in de binary: een artiest toevoegen betekende code aanpassen en wachten op de review van Apple en Google. De app toonde een line-up die op de website allang was gewijzigd en één headliner ontbrak volledig. De backend stond in een Supabase-project dat de leverancier niet vrijgaf, pushberichten hadden nog nooit iets afgeleverd en het eerste optreden was over tien dagen.

## Wat we bouwden

Polargate vond de hoofdoorzaak en bouwde het fundament in vier dagen opnieuw. We verhuisden de hele backend naar een Supabase-project dat wij beheren: 31 migraties, 26 tabellen met row level security, 12 edge functions, 62 gebruikersaccounts met behoud van hun IDs, 265 galerij-items en 603 opslagbestanden. We herschreven de contentlaag zodat de line-up live wordt gelezen, en schreven een WordPress-plugin plus een edge function die elke 30 minuten synchroniseert en afbeeldingen en pdf's naar onze eigen opslag kopieert. Releases gingen naar de cloud: Xcode Cloud op iOS, GitHub Actions op Android, over the air voor de rest.

## Het resultaat

Het seizoen 2026 draaide op de nieuwe basis. 37 optredens tussen 10 juli en 17 augustus liepen gelijk met de officiële website zonder dat iemand code aanraakte. De Android-app staat live in 177 landen en de iOS-app is opnieuw gelanceerd en krijgt de meeste wijzigingen nu over the air, zonder storereview. iOS-push ging van nul geregistreerde toestellen in zes weken naar 149 zodra we de twee ontbrekende methodes in de native AppDelegate toevoegden. De eindemodus van de editie werd in één dag ontworpen, gebouwd en uitgerold.

Stack

- Capacitor
- React
- Vite
- TypeScript
- Tailwind CSS
- shadcn/ui
- TanStack Query
- Supabase
- PostgreSQL
- Deno
- Vercel
- WordPress
- GitHub
- GitHub Actions
- iOS
- Android
- Firebase
- Resend
- Vitest
- Playwright
[cmf.polargate.ai](https://cmf.polargate.ai)

## De context

Een zomers muziekfestival aan de kust van Cádiz, met een seizoen van juli tot half augustus, had een officiële app voor iOS en Android, gebouwd op een no-codeplatform. Het team werkt in WordPress, waar de line-up in een eventsplugin staat, en ging ervan uit dat de app zou volgen. Dat deed hij niet.

## Wat we aantroffen

Diagnose op 30 juni 2026, tien dagen voor het eerste optreden:

- De line-up stond hardcoded in de broncode en zat gecompileerd in de store-binary. Elke wijziging was een nieuwe release en een storereview.
- De Supabase-backend hoorde bij het account van de no-codeleverancier en was in de praktijk losgekoppeld van de app.
- Push had op iOS nooit gewerkt: in de native AppDelegate ontbraken de twee methodes die de device token doorgeven, dus gingen er zes seizoensweken voorbij met nul geregistreerde toestellen.
- De TypeScript-check stond op groen omdat de configuratie geen enkel bestand omvatte.

## Wat we bouwden

We verhuisden de backend naar een Supabase-project dat wij zelf beheren en bouwden de contentketen opnieuw.

- Migratie in vier dagen: 31 migraties, 26 tabellen met row level security, 12 edge functions, 62 gebruikers en 62 profielen met behoud van hun IDs, 265 galerijrijen, 6 video's en 603 opslagbestanden.
- Een eigen WordPress-plugin publiceert de huidige editie via één endpoint, omdat de standaard WordPress-API de datums en tijden van de events niet teruggeeft. Een edge function synchroniseert elke 30 minuten, haalt afbeeldingen en pdf's naar onze eigen opslag, probeert het opnieuw als de firewall van de site vreemd reageert en kan zonder gevolgen twee keer draaien.
- Geautomatiseerd uitbrengen: iOS bouwt in Xcode Cloud vanaf een git-tag en dient zichzelf in via de App Store Connect API. Android bouwt, ondertekent en uploadt naar Play productie vanuit GitHub Actions.
- Over the air updates met self-hosted capgo via de OTA Hub van Polargate, met kanalen, uitrolpercentage en een minimale native versie.
- Push volledig opnieuw: APNs rechtstreeks op iOS, FCM HTTP v1 op Android, geplande campagnes met Postgres-cron, afleveringsaudit, een remote killswitch per platform en een circuit breaker die na twee mislukte pogingen stopt.

## Hoe het nu draait

Het festivalteam publiceert in WordPress en binnen een half uur volgt de app, in beide stores en op het web. React, Vite, TypeScript, Tailwind en shadcn/ui aan de voorkant, Capacitor 8 voor de native schil, Supabase voor data, auth, opslag en functies, Vercel voor het web. Bij elke wijziging draaien 106 unittests en één end-to-end smoketest, en Sentry en Crashlytics melden wat er stukgaat. Polargate houdt de app draaiend op een maandelijkse onderhoudsfee: contentvragen, releases in beide stores, incidentafhandeling en het seizoenswerk van een editie afsluiten en de volgende openen.

[Build →](https://polargate.ai/nl/services/build) · [Grow →](https://polargate.ai/nl/services/grow) · [Care →](https://polargate.ai/nl/services/care) · [Evenementen en live →](https://polargate.ai/nl/for/events)

FAQ

## Vragen over dit project

Hoe lang duurt het om een app van een no-codeplatform af te halen? Bij deze festival-app was dat vier dagen, van diagnose tot een backend onder onze controle, plus één laatste build per store. Schema, edge functions, gebruikers, rollen, media en secrets verhuisden zonder dataverlies, en gebruikers behielden hun IDs, dus niemand hoefde zich opnieuw te registreren. De doorlooptijd hangt af van hoeveel er in het account van de leverancier staat, en precies dat meet Polargate in een betaalde Discovery Sprint.
Kunnen jullie de app koppelen aan onze WordPress of aan ons ticketingsysteem? Ja. Hier blijft het festivalteam in WordPress werken, en een plugin die wij schreven publiceert de huidige editie via één endpoint, omdat de standaard WordPress-API de datums en tijden van events niet teruggeeft. Een edge function haalt die elke 30 minuten op en kopieert afbeeldingen en pdf's naar onze eigen opslag, zodat de app blijft werken als WordPress dat niet doet. Bij ticketingplatforms hangt het af van de API-toegang die de leverancier geeft.
Kunnen we de app bijwerken zonder elke keer een review van Apple? Meestal wel. Alles wat in de weblaag zit, teksten, schermen, opmaak en contentregels, gaat over the air via de OTA Hub van Polargate, met kanalen, een uitrolpercentage en een minimale native versie. Native wijzigingen, nieuwe permissies of nieuwe plugins vragen nog steeds een storerelease, geautomatiseerd vanaf een git-tag. In deze app staat over the air aan op iOS, en Android blijft na een incident op storereleases.
Nemen jullie een app over die een ander bureau of een no-codetool heeft gebouwd? Ja, zo is dit project begonnen. Polargate start met een betaalde Discovery Sprint: we lezen de code, de backend en de storeaccounts, en rapporteren wat solide is, wat de vorige leverancier blokkeert en wat herstel kost. Dat rapport blijft van jou, of je nu met ons doorgaat of niet. Daarna staat de backend niet langer in een platform dat weigert hem af te geven.
Wat kost het om een festival-app na de lancering draaiend te houden? Deze app draait op een onderhoudsfee vanaf 850 euro per maand, voor contentvragen, releases in beide stores, incidentafhandeling en het seizoenswerk van een editie afsluiten en de volgende openen. Bouwwerk wordt apart geoffreerd: het downloadsysteem, met slimme link, native banner en QR-codes voor print, was een vaste 350 euro. Polargate prijst onderhoud op het oppervlak dat het beheert, niet op het aantal tickets.

INITIATE

## Start de motor

Vertel ons in een paar korte vragen wat je bouwt. Een senior engineer antwoordt binnen twee werkdagen schriftelijk met een eerste inschatting van scope, planning en prijs.
[Start je project](https://polargate.ai/nl/start) · [Praat met ons](https://polargate.ai/nl/start#static-brief-heading)
