Capital Party
A mobile app published on iOS and Android, with its own pipeline that turns Instagram flyers into structured events.
Platforms
iOS + Android
Published on the App Store and Google Play
Languages
3
Spanish, English and Portuguese
Analytics events
11
Sessions, searches, shares, ads and purchases
Event extraction
Gemini
Multimodal model over flyer images
The product
Capital Party helps people discover salsa, bachata and nightclub events in the city. It's a real product that I designed, built and maintain end to end: the mobile app, the backend and the pipelines that keep the content up to date.
What the app includes
- Salsa and bachata events, nightclubs, dinner shows, classes and tourist spots, with details for each one.
- Calendar, maps by category, favorites, reviews and comments.
- Giveaways and notifications.
- Deep links to open an event or a nightclub from a shared link.
- Interface in Spanish, English and Portuguese.
- A premium subscription plan and ads with AdMob, plus a forced-update mechanism for old versions.
Data pipeline: from a flyer to an event
The content isn't loaded by hand: a set of services turns images into structured records.
- 1
Capture
A Puppeteer scraper goes through event accounts on Instagram and downloads the new flyers.
- 2
Extraction with Gemini
A multimodal model (Gemini 2.5 Flash) reads each image and returns the event in a structured format: title, date as dd/mm/yyyy, dance style (salsa, bachata, kizomba, zouk), venue and contact or ticket details. If it can't extract a valid title, the flyer is discarded.
- 3
Deduplication
I built a separate tool, based on text similarity (TF-IDF and embeddings), to detect repeated events. On a sample of 75 events it flagged ~21% with high similarity (15 pairs above 0.6).
- 4
Translation
A Gemini service generates the English and Portuguese versions of the content.
- 5
Loading and distribution
Events are stored in Firestore and serve the app. An additional service automatically generates and publishes Instagram stories (1080×1920 format).
Stack
- Mobile: React Native (TypeScript and JavaScript), drawer and tab navigation, i18n.
- Backend and data: Firebase (Firestore, Analytics, Functions), Node.js services on Google Cloud Run with Docker.
- AI: Gemini API for extracting events from images.
- Monetization: AdMob and premium subscriptions.