Web development | Website

CatchID

Case-CatchID-Hero.webp
Client Ukraine-based independent founder
Industry Recreational Fishing / Fishery Management, Outdoor & Leisure
Service SaaS, Web Development, Dashboards
Technologies Next.js 15 (App Router, Server Actions), React 19, TypeScript, Tailwind CSS v4, next-intl, React Hook Form + Zod, IndexedDB (idb-keyval), Recharts, qrcode, Open-Meteo API, Supabase (PostgreSQL, Auth, Storage, RLS), Vitest, Vercel
About CatchID is a trophy fish register for carp fisheries. Anglers scan a fish’s chip, open the QR code at their swim and log the catch in under a minute in the phone’s browser, even without signal. Weather is attached automatically. Owners manage every fish with its weight history, approve new fish and records, and print QR signs for each swim, turning a chip number into a living history of the lake’s stock.

OUR Process

Discovery & Research
Development
Testing & QA
Deployment & Launch
Optimization & Support

CHALLENGE

Fishery catch logs usually stop at a notebook at reception or an app few anglers bother to install. CatchID’s brief was different: turn the 15-digit chip already implanted in each trophy fish into a full history that anglers fill in themselves, on the bank, with wet hands and often no signal. That meant building for two audiences at once: anglers who need to log a catch in under a minute with no app or account, and owners who need verified data they can trust before a weight becomes a lake record, with each lake’s data kept fully separate from every other.

Case-CatchID-Client.webp
Case-CatchID-Client-1.webp

Project goals

Let anglers log a catch themselves in under 60 seconds, with no app or account. Work with any Bluetooth scanner or the last 4–5 chip digits. Keep the form working offline without duplicates. Send new fish, records and weight changes over 20% to the owner for approval. Keep every lake’s data fully isolated.
Problem

On most carp fisheries, the history of each trophy fish lives in notebooks, spreadsheets and anglers’ memories. Records are scattered and hard to verify, owners can’t tell which fish are still in the lake, and dedicated apps fail at the bank because they need installation, an account and a stable connection.

Solution

CatchID replaces the notebook with a browser form opened from a QR code at each swim. The angler scans the chip, sees the fish’s latest catches and adds the weight; without signal, the catch syncs later. Weather is attached on the server, and the owner dashboard collects every catch into a fish profile with a weight curve, turning a passive chip into a living stock register.

COLOR & TYPOGRAPHY

font

Unbounded

Regular

Medium

#FFFFFF

#EEF2EF

#A9741F

#1E5A52

Key features

Lake accounts & overview — Each owner sees only their own lake. The overview shows key stats and puts entries waiting for review at the top.
Case-CatchID-features-5.webp
Case-CatchID-features-6.webp
Catch log & editing — New fish, records and sudden weight changes wait for the owner’s approval. Weather is attached to every catch automatically.
Case-CatchID-features-4.webp
Case-CatchID-features-3.webp
Fish register & profile — Every chipped fish with its status and best weight, searchable by name or chip digits. Each profile shows a weight curve, and past records from notebooks can be added with a new fish.
Case-CatchID-features-1.webp
Case-CatchID-features-2.webp
Case-CatchID-features.webp
Case-CatchID-Results.webp

Results

Meduzzen delivered a working product covering the full catch lifecycle: a QR-based catch form with fish history and offline sync, an owner dashboard with review queue and fish register, per-swim QR codes and a bilingual landing page with pilot applications. The whole product runs as one Next.js and TypeScript application, with each lake fully isolated as a separate tenant and isolation verified with 36 unit tests and cross-account access checks. CatchID is ready to move to real data for a pilot with carp fisheries.

Quick Chat
AI Assistant