Inspiration

Caribbean history is rich, interconnected and often difficult to explore digitally. Important stories are scattered across archives, government websites, books, PDFs and individual country resources.

I built Caribbean History to make that history easier to discover without reducing it to short, unsourced summaries. The goal is to create a modern learning experience where people can move naturally between stories, places, people, events, maps, timelines and original sources.

Version 2 is the biggest evolution of the app so far.

What it does

Caribbean History brings together history from 34 Caribbean countries and territories in one native mobile experience.

Users can:

  • Discover daily historical facts
  • Read sourced stories and articles
  • Explore events through interactive timelines
  • See where historical events happened on maps
  • Explore Historical Maps and location-based history
  • Follow economic relationships through Money Trail
  • Complete Learning Paths
  • Test their knowledge with quizzes and Daily Challenges
  • Save content for offline learning
  • Bookmark stories, people, places and events
  • Explore more than 2,000 published Daily Facts
  • Use sourced discovery tools to find related historical records

The core experience remains free. Caribbean History+ unlocks deeper learning features including Historical Maps, Money Trail, Learning Paths, advanced quizzes and offline collections.

How I built it

The iOS app is built natively with Swift and SwiftUI, with MapKit powering the geographic experiences.

The Android version is being built natively with Kotlin, Jetpack Compose and Material 3, with Google Maps for geographic features.

Supabase powers the production backend and content relationships. The data model connects countries, stories, people, places, events, sources, financial relationships and learning content.

RevenueCat manages Caribbean History+ subscription entitlements across the product. On iOS, purchases still run through Apple's StoreKit, while RevenueCat handles entitlement state, restoration and subscription lifecycle management. The Android implementation uses the same plus entitlement architecture for Google Play.

I kept the paywall custom instead of using a generic subscription UI so the purchase experience still feels like part of Caribbean History.

Challenges

The hardest part was not building individual screens. It was making the historical data feel connected while preserving accuracy.

Maps only appear when a record has publishable coordinates. Historical relationships are based on actual production data rather than being generated to make a screen look fuller. Sources remain visible throughout the experience.

Subscription state also required more work than simply adding a paywall. The app has to correctly handle active subscriptions, restores, cancellations, expired access, trial eligibility, offline state and entitlement changes without accidentally locking free content.

Accomplishments

Version 2 now includes:

  • 34 countries and territories
  • 2,000+ Daily Facts
  • Hundreds of published stories
  • Story-level historical maps
  • Historical Maps
  • Money Trail
  • Learning Paths
  • Advanced quizzes
  • Daily Challenges
  • Offline collections
  • A redesigned Caribbean History+ experience
  • RevenueCat-powered entitlement management
  • Native iPhone, iPad and Android experiences

One decision I am particularly happy with is keeping story-level "Where this happened" maps free. Adding subscriptions did not mean putting the existing educational experience behind a paywall.

What I learned

Building this project reinforced that good historical software needs a strong trust model.

A polished interface is not enough. Users should be able to see where information came from, understand how records are connected and distinguish between verified data and missing information.

I also learned how important subscription infrastructure becomes once a product grows beyond a simple purchase screen. RevenueCat made it much easier to centralize entitlement state while keeping the user-facing experience custom.

What's next

The next phase is expanding geographic coverage, adding more verified relationships between historical records, deepening Money Trail, improving offline learning and continuing the Android rollout.

The long-term goal is to make Caribbean History a genuinely useful digital layer for exploring the people, places, events and connections that shaped the region.

Built With

Share this project:

Updates

Submission history