Skip to main content

OùDanserX

OùDanserX

OùDanserX brings the West African dance scene together on one site. Parties, schools and clubs, filtered by country, city and style.

One site per country, without choosing#

The country is not a setting, it is the entry point. IP geolocation redirects the root to the visitor’s country, and every route lives under its country code: /tg/soirees, /ci/clubs. The header selector switches country at any time.

Three countries are open: Togo, Benin and Ivory Coast, with their cities. The architecture is ready for the next ones.

Styles#

Salsa, kizomba, bachata, afrobeats, kompa, zouglou, amapiano. Each style has its own chip, and the hero cycles through them combined with cities.

Find, or submit#

  • Search: by date (today, tomorrow, this weekend, this week), by price, by type (party, festival, workshop, concert, culture) and by city
  • Submit a party: a public form with a photo, a description and a live preview before sending
  • Clubs and schools: the venues and organisations that keep the scene alive, by country

Tech stack#

Next.js 16 with the App Router and Tailwind CSS v4. Data goes through Prisma on PostgreSQL, hosted on Supabase, with Supabase Auth for accounts. The map is MapLibre GL, and country geolocation uses geoip-lite locally, with no third-party service. Images are served from Cloudflare R2.

Two rules hold throughout the code: no component imports Prisma directly, everything goes through repositories, and authentication is encapsulated in a single module. The whole thing is self-hosted on Coolify, with no dependency on Vercel.

Screenshots

Discover OùDanserX

Try the app and share your feedback!

Visit site