Animal Hub: Dictionary on Protected Animals

A directory of species: what we've lost, what we're losing, and what we still have time to protect.

UX Design UI Design Vibecoding
Role Designer, Vibecoder
Date Feb 2025
AI Stack Claude
Clickable Preview Why Can't I Have It? →

01

How it started

Brief

A personal project built to make conservation data accessible to anyone curious about it. No client, no team. Built solo using Next.js and the iNaturalist API in under a week from first commit to MVP.

What it's supposed to do

Let users look up any species and see its conservation status, last known sighting, images, description, and taxonomy in one clean page. The goal is to make the weight of extinction feel personal, not just statistical.

Why it was hard

This is a vibecoded project, which means shipping fast while keeping the product actually usable. Every small friction point got caught and fixed in the next commit. The product is treated as always in progress: small tweaks ship as soon as something feels off.

02

Product’s Journey

✅ Shipped

v1 → MVP

The core flow: search an animal and understand its extinction status.

Core Functions

  • Discovery: Search any animal by name and browse results as visual cards with status badge and photo

  • Filtering: Filter results by animal type (Mammal, Bird, Reptile, etc) and conservation status

  • Species Detail: Full detail page per species (hero image, conservation status, last known sighting date and location, description, and taxonomy)

  • Storytelling component: Status-aware narrative copy on every detail page, color-coded by risk tier with semantic icon

⏳ Work in progress

v2 → Current Version

Making the data feel humane.

Shipped

[✅] Replaced scientific database (GBIF) with community-sourced data (iNaturalist) for accessibility

[✅] Status messages remapped with individual colour and message

[✅] Smart ranking in search function

[✅] Browse by conservation status

[✅] … and many more!

Backlog

[⏳] Language based on location

[] Population trend → is this species declining, stable, or recovering?

[] Threats list → what is actually killing it

[] … and many more!

🤺 Bug Slashed

[✅] Slow search performance fixed

[✅] Back button broken on detail page fixed

[✅] Extinct species (ex: Dodo) not appearing in search results

[⏳] … and more to come

03

Continuous Iterations

May 10, 2026

Announcement

Updates are now tracked on GitHub only. Go to my GitHub →

paska · May 10, 2026

Apr 27, 2026

> Adding and fixing filtering logic

fix: species ranking logic

paska · Apr 27, 2026

feat: added alphabetic filtering

paska · Apr 27, 2026

fix: filtering using new mapping logic from different APIs by mapINatStatusToConservation

paska · Apr 27, 2026

Apr 22, 2026

Fixing categorization logic

fix: species categorization and ranking logic

paska · Apr 22, 2026

Apr 20, 2026

Adding more info on animal's last seen

feat: make pic from lastObservation clickable with modal popup

paska · Apr 20, 2026

Apr 11, 2026

Making date format readable

fix: date formatting

paska · Apr 11, 2026

Mar 31, 2026

> Adding 'Browse by Status' for more exploration options

> Fixing ranking in filter results

feat: add browsing func with conservation status using /taxa

paska · Mar 31, 2026

fix: improve browsing results -- added rank=species to API call

paska · Mar 31, 2026

Mar 25, 2026

Visual polish

feat: enhance conservation status display and timeline spacing

paska · Mar 18, 2026

Mar 18, 2026

Converting raw histogramData into a timeline

feat: added observation timeline

paska · Mar 18, 2026

Mar 9, 2026

> Improving search functions

> Implementing smart ranking

fix: missing extinct species

paska · Mar 8, 2026

feat: overhaul search with smart ranking

paska · Mar 8, 2026

Mar 8, 2026

Mapping raw data (ObservationsCount) into a narrative story

feat: update format ObservationsCount

paska · Mar 8, 2026

style: fix mobile view

paska · Mar 8, 2026

Mar 3, 2026

> Remapping narration of "Not-evaluated" statuses

> Final search function improvement

fix: fixed search parameters

paska · Mar 3, 2026

cached sessionStorage

paska · Mar 3, 2026

feat: add observations_count to taxon type for NE status logic

paska · Mar 3, 2026

Mar 2, 2026

> Search function tuning

> Visual polish

perf: optimized search function

paska · Mar 2, 2026

style: UI tweak

paska · Mar 2, 2026

Mar 1, 2026

Swapped API from GBIF for iNaturalist → better data, richer taxonomy

refactor: replaced GBIF API with iNaturalist API

paska · Mar 1, 2026

fix: fixed back button logic

paska · Mar 1, 2026

Feb 27, 2026

Initial setup and MVP

perf: UI tweak, clearing data map

paska · Feb 27, 2026

perf: updated with GBIF API

paska · Feb 27, 2026

chore: main skeleton

paska · Feb 27, 2026

first commit

paska · Feb 27, 2026