Name Message Date
📁 .claude Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📁 .devcontainer Create basic devcontainer 10 hours ago
📁 .vscode Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📁 src Add initial UI: curved arc nav and mic toggle button 3 hours ago
📁 static Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 .gitignore Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 .npmrc Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 CLAUDE.md Add initial UI: curved arc nav and mic toggle button 3 hours ago
📄 deno.json Add initial UI: curved arc nav and mic toggle button 3 hours ago
📄 deno.lock Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 eslint.config.js Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 package.json Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 playwright.config.ts Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 README.md Add project README and expand CLAUDE.md with vision and code style 4 hours ago
📄 svelte.config.js Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 tsconfig.json Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📄 vite.config.ts Initialize SvelteKit project with Deno, TypeScript, ESLint, and Playwright 4 hours ago
📖 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