Inspiration

Sometimes we want the feeling of shopping: discovering something new, comparing choices, building a cart, and waiting for a package, without actually wanting another expense or more things at home.

Mango Market was inspired by the idea that shopping can be a playful experience on its own. We wanted to create a low-pressure space where people can enjoy that experience without spending real money or receiving real products.

We also wondered what our fictional choices might reveal when viewed together. That idea became Global Mood: an anonymous, entertainment-focused view of the Special Items people are choosing around the world.

What it does

Mango Market is a fictional shopping simulator with anonymous Global Mood trends.

Users can:

  • Browse fictional products across multiple categories
  • Search products and compare simulated prices, shipping, coupons, and store offers
  • Save favorites, build a virtual cart, and complete a checkout without real payment
  • Track imaginary deliveries from checkout to unboxing
  • Save or share a generated haul card
  • Discover humorous Special Items inspired by everyday moods and situations
  • Optionally contribute eligible Special Item checkouts to anonymous Global Mood trends
  • Explore daily, weekly, and monthly Global Mood patterns
  • Collect simulated coupons and Mango Credits
  • Use the optional Daily Spin after watching a rewarded ad, when an ad is available

No real products are sold, no payment is taken, and nothing is shipped. Global Mood is designed for playful community discovery and is not a mental-health assessment.

How we built it

Mango Market was built with React and Vite, packaged as an Android app using Capacitor. Native Android features are implemented in Kotlin and Java, including local notifications, lifecycle handling, preferences, media saving, sharing, and advertising.

Supabase provides the Global Mood backend through PostgreSQL, Edge Functions, scheduled aggregation, and public daily, weekly, and monthly feeds. Mood contributions are consent-based, anonymous, rate-limited, and accepted only after an eligible Special Item checkout is completed.

For monetization, Mango Market integrates Google AdMob through RevenueCat Ads. We built a first-party Capacitor advertising plugin so RevenueCat can track native banner, native, rewarded, impression, and ad-revenue events directly. Google UMP controls advertising consent independently from the app's optional anonymous Mood Analytics.

The app remains guest-first and local-first. Shopping history, carts, orders, preferences, and simulated rewards persist on the device without requiring an account.

Challenges we ran into

One of the biggest challenges was combining native ads with a scrolling Capacitor WebView. Inline ads needed to remain aligned with their intended positions while scrolling, navigating, opening modals, and moving between foreground and background states.

Another challenge was keeping the fictional marketplace truthful. Every cart, price, checkout, delivery, reward, and trend needed to feel playful without suggesting that real products, money, or worldwide popularity were involved.

Global Mood also required careful integrity rules. The app must never invent participation data when a verified feed is unavailable, and anonymous analytics consent must remain separate from advertising consent.

Finally, preparing a reliable Android release required production signing, consent validation, localization, security hardening and automated checks that reject debug settings, test ad identifiers, stale assets, or unsafe release configuration.

Accomplishments that we're proud of

  • Built a complete fictional shopping journey from discovery to virtual unboxing
  • Created 130 products, including 70 original Special Items
  • Turned completed Special Item choices into anonymous Global Mood trends
  • Integrated AdMob through RevenueCat Ads using a custom native Capacitor plugin
  • Implemented rewarded and dedicated inline ad placements designed not to cover core shopping actions
  • Added local notifications and native haul-card saving and sharing
  • Localized the app across 13 languages
  • Built a production release pipeline with signing, lint, security, configuration, and artifact validation

What we learned

We learned that the enjoyment of shopping does not always need to end with a real purchase. Discovery, comparison, anticipation, and self-expression can form a playful experience of their own.

We also learned that fictional choices can create an interesting shared signal, but only when the product is honest about what the data represents. Global Mood reflects eligible in-app choices, not how the real world feels.

RevenueCat Ads also changed how we approached monetization. Instead of treating ads as an overlay added at the end, we designed each placement around the app's navigation, consent, lifecycle, and reward rules, then used RevenueCat to observe the complete ad journey.

What's next for Mango Market

Our immediate next step is learning from the public Google Play release and observing how real users engage with virtual shopping, Special Items, Global Mood, and the ad experience. We will use those signals to refine retention, monetization, and community features while keeping the guest-first core experience open and easy to use.

The largest feature on our roadmap is the Creator Community. Users who choose the Creator path will be able to create their own fictional Special Items, add a name and description, select mood and vibe tags, upload an original image, preview the product listing, and submit it for review. A planned Creator Studio will let contributors manage drafts and follow each item's moderation and publication status.

Community uploads will never appear publicly without review. Once approved and successfully published, an item can enter Mango Market in the Warming Up state and develop real anonymous mood signals as people discover and choose it.

We also plan to introduce Mango Seeds and Creator Slots: non-purchasable, non-transferable in-app resources that unlock creation opportunities and recognize community milestones. The existing guest shopping experience will remain available without requiring an account.

We will keep experimenting with RevenueCat Ads placements, timing, preloading, and formats to find where ads feel most natural within the shopping journey. Our goal is for every placement to blend smoothly with the app while remaining clearly identified, supporting monetization without interrupting scrolling, blocking core actions, or weakening the user experience.

Other planned additions include Personal Mood Cart, Daily Mood Prompts and Drops, richer World Mood Recaps, regional Mood exploration, fictional gifting, stronger haul sharing, more Special Items, and an eventual iOS release.

Built With

Share this project:

Updates

Submission history