📖 README.md

BirdGO

Catch (the sounds of) them all!

BirdGO is an offline-first Progressive Web App that turns your surroundings into a bird-watching game. Hold up your phone, let it listen, and discover what birds are singing nearby — all without sending audio to any server.

How it works

  • Listen — tap to start listening; BirdNET runs entirely in your browser via TensorFlow.js
  • Identify — the model analyzes short audio clips and returns the most likely species
  • Collect — every new species you hear is added to your local field journal
  • Explore — browse your collection, see stats, and hunt for species you haven't found yet

No account needed. No audio ever leaves your device.

Tech stack

  • SvelteKit — SPA framework (Svelte 5, runes mode)
  • BirdNET + TensorFlow.js — on-device bird sound classification
  • Browser APIs: Web Audio, IndexedDB, Geolocation
  • Deno — runtime and package manager

Development

deno task dev       # start dev server at localhost:5173
deno task build     # production build
deno task check     # type-check
deno task lint      # lint
deno task test      # e2e tests (Playwright)
deno fmt            # format

Roadmap

  • Bird listening and identification (BirdNET + TensorFlow.js)
  • Local collection / field journal (IndexedDB)
  • Offline support (PWA / service worker)
  • Online accounts and leaderboards
  • Region-based species lists and seasonal challenges