The LYVE app
The LYVE App is a marketplace and social community for Caribbean carnival — discovering events, following mas bands, and buying, selling and reselling costumes and tickets in one place. Built for iOS and Android in React Native and Expo over a NestJS backend with GraphQL resolvers and Supabase, with Stripe for marketplace payments, RevenueCat for in-app purchases and real-time chat over a WebSocket gateway.

The LYVE App is a marketplace and community for Caribbean carnival — discovering events, following mas bands, and buying, selling and reselling costumes and tickets in one place instead of across five. Built at Inseed for both iOS and Android, it shipped to the stores three to four months from kickoff and passed three thousand users within its first three months.
- Role
- React Native developer
- Timeline
- Apr 2024 — Apr 2025
- Team
- Four to five, including design and QA
- Status
- Live on iOS and Android
The problem
Caribbean carnival culture was spread across whatever tool happened to fit each part of it — Instagram for moments, WhatsApp groups for chatter, ticket sites for buying, Facebook events for discovery, and word of mouth for everything left over.
None of those know about each other. Someone following a mas band abroad, looking for a costume another reveller is reselling, and trying to work out which events are on had to hold the whole picture themselves. The brief was one place for all of it, on both platforms, before the next carnival season.
What the platform does
A two-sided marketplace with the community around it: an event timeline and discovery feed, mas band profiles you can follow, costume and ticket listings with reseller flows, and group chat. Behind it sits an admin panel for managing carnivals and mas bands, alongside a public marketing site.
Payments run through Stripe for marketplace transactions and RevenueCat for in-app purchases. Chat is real time over a WebSocket gateway.
What I owned
I worked on this as the React Native developer at Inseed, the agency engaged to build it, on a team of four to five that also covered backend, design and QA. My work was the mobile application — the iOS and Android app built with React Native and Expo, consuming the GraphQL API, through to store submission and release.
The backend migration described below was not my code, but I was part of the decision: the five surfaces that made the data fan-out obvious were mobile screens, so the cost of the REST shape showed up in the app before it showed up anywhere else.
Key decisions
GraphQL after REST, deliberately rather than by preference. The API was built as REST controllers first, and the problem that surfaced was fan-out: the same costume listing was needed across five different surfaces, each wanting a different slice of it. On mobile that meant either pulling down far more of a listing than a screen used, or asking for another endpoint every time a screen changed shape — over-fetching or endpoint sprawl, and in practice both.
We moved to GraphQL resolvers, at a measured cost of about a week of backend work, after which features landed faster. It is worth stating in that order: REST was not a mistake to be embarrassed about, it was the cheaper thing to start with, and the migration was worth paying for once the shape of the data demand was known rather than guessed. Making that call a year in, with the surfaces actually built, is a different and easier decision than making it on day one.
What I'd do differently
Ship a smaller MVP four to six weeks sooner. The scope in the first release could have been cut without changing what the app was for, and the extra weeks bought less than they cost.
Start the discovery feed simpler. It launched surfacing five content types at once, which was more than a new user could read, and it was simplified after launch. The cheaper version of that lesson was available before launch, in front of anyone who had not been staring at the feed for months — which by then included me.
Technologies
Key Highlights
- Two-sided marketplace
- Real-time chat
- Stripe + RevenueCat
- iOS and Android
A look inside




