Plattform von Bora Bulir
Öffentliche Website und Admin-Panel für den Verein Bora Bulir — Frontend mit Next.js, Backend mit Supabase und Row Level Security, statisch generierte öffentliche Seiten mit On-Demand-Revalidierung.
Kontext
Der Verein Bora Bulir ist ein gemeinnütziger Verein aus Portugal, der sich der Kulturförderung und dem Erhalt des Kulturerbes in der Region Barroso widmet. Ich bin Mitgründer und habe seine digitale Plattform entwickelt: die öffentliche Website unter bulireventos.com und das Admin-Panel, mit dem das Team sie verwaltet.
Frontend
- Next.js 14 (App Router) + TypeScript + Tailwind, mit eigenem Design auf Basis von Figma
- Startseite mit Countdown zum nächsten Event, dazu Events, News, Galerie und eine Merch-Seite
- Installierbare PWA mit einer eigenen Seite
/instalar, die iOS-Nutzern zeigt, wie sie die App zum Home-Bildschirm hinzufügen - i18n PT/EN mit
next-intl
Backend (Supabase)
- PostgreSQL-Schema mit Tabellen für
events,photos,news_posts,sponsors,newsletter_subscribers,admins,site_settingssowie Merch-Kollaborationen und -Fotos - Row Level Security auf allen Tabellen
- Storage Buckets für Galerie, Events, Sponsoren, News und Videos
Admin-Panel
- Anmeldung mit E-Mail und Passwort, Zugriff über die Tabelle
adminsgesteuert - Mobile-first, damit Inhalte direkt vom Smartphone aus aktualisiert werden können
- Verwaltet sämtliche Inhalte der Website — einschliesslich der Merch-Seite zur Kollaboration mit DiffyClo
Sicherheit
Ein Audit vor dem Launch hat Server Actions aufgedeckt, die ausgeführt wurden, ohne zu prüfen, ob der Aufrufer Admin ist. Ich habe sie behoben, indem ich jede Admin-Action mit einer assertAdmin-Prüfung abgesichert habe.
Performance
Das Layout machte die gesamte Website dynamisch, und im kostenlosen Supabase-Plan dauerten Antworten 7 bis 21 Sekunden. Ich habe die öffentlichen Seiten auf statische Generierung (SSG) mit On-Demand-Revalidierung pro Inhaltstyp (revalidateTag) umgestellt und /admin dynamisch belassen.