Inspiration

Sharks get flattened into two cultural stereotypes: mindless killers in summer blockbusters, or a week of viral clips every July. Neither does justice to 500+ actual species, most of which most people have never heard of and many of which are genuinely endangered. I wanted to build the reference app I couldn't find: something with real taxonomic depth, honest conservation status on every species, and a way for the app itself to put money behind the animals it's teaching people about, not just talk about them.

What it does

Tru Shark is a shark encyclopedia, research tool, and tracker built for people who want more than a Wikipedia skim. It currently covers 53 species in depth (behavior, reproduction, conservation status, history) out of a taxonomically complete roadmap of all 556 known shark species, plus a research section with a glossary, species comparison tool, and range maps; a Tracker directory linking out to real tagging organizations; and a curated Shark News feed that's editorially filtered to exclude sensational attack coverage, in line with the app's actual mission.

On top of the core app, there's a trading-card collection layer, Species Packs, built around the same species content: opening packs earns cards across common to legendary rarity tiers, with a soft currency economy (Shark Teeth) alongside real money purchases, daily bonuses, and a duplicate selling loop, so free users have a real progression path, not just a paywall.

And a Conservation Ledger, still ramping up: the mechanism is fully built and live in the app today, ready to automatically route 10% of every Premium subscription and Species Pack purchase to a real conservation partner the moment one is confirmed. I'm in active conversations with several shark and ocean conservation organizations and didn't want to fabricate a number or a partner before it's real, so right now it honestly shows "launching soon" rather than pretend the commitment is further along than it is.

How I built it

Flutter across iOS and Android from a single codebase, Supabase for the backend (Postgres, edge functions, row-level security), and RevenueCat for all subscription and one time purchase handling on both platforms. The pack economy and Conservation Ledger are both driven by RevenueCat webhooks hitting a Supabase edge function: every real purchase event computes and appends an immutable ledger row, and a locked down aggregate function (not a public view) exposes the running total without ever leaking individual transaction amounts.

Challenges I ran into

Balancing a genuinely fun collection meta game against the app's educational and conservation identity was harder than it sounds; early versions of the Shark Teeth economy were too stingy to feel rewarding for free users, so I rebalanced it with daily login and first discovery bonuses. On the content side, an upstream AI model deprecation silently broke the news classifier that filters out shark attack sensationalism, letting exactly the kind of content the app is built to avoid slip through undetected for a stretch, caught and fixed after a user report.

Accomplishments that I'm proud of

A monetization model with a real, verified transaction history that still treats free users fairly, conservation status woven into the core browsing experience rather than bolted on as an afterthought, and a give-back mechanism that computes and discloses its own numbers automatically instead of asking users to take my word for it.

What's next for Tru Shark

Working through the remaining 500+ species on the taxonomic roadmap, expanding the Conservation Ledger to reflect real, ongoing payouts, and continuing to build out the Tracker section with real data partnerships.

Built With

Share this project:

Updates

Submission history