All work

Predator Fest League App

From a notepad on someone's knee to a real-time Telegram Mini App — a solo passion project that digitised an entire fishing competition league.

Personal Project Telegram Mini App Progressive Web App Mobile-first Sport · Ukraine
Role
Solo Designer + Founder
AI pair: Claude Code
Timeline
2026
Personal initiative
Platform
Telegram Mini App
+ Progressive Web App
Stack
Google Sheets · Apps Script
Vanilla JS · GitHub
Predator Fest League App — overview

Project Overview

Live at predatorfest.com · tg: @predatorfest

Predator Fest League (PFL) is a competitive fishing league I founded in Lviv — solo, from scratch, as CEO and the only person behind the entire project. I noticed the same problem at almost every tournament — results scribbled on paper at the weigh-in, photographed once, dropped into a Telegram chat, and effectively lost forever.

I designed and built the PFL App from scratch — a Telegram Mini App and PWA that gives every participant instant access to live results, tournament standings, a full season leaderboard, and partner information. All data updates in real time directly from a Google Sheet. No backend, no database, no overhead.

The app has been live across multiple seasons, tracked 80+ participants, and helped the community raise 64,375 UAH for Ukraine's armed forces through competition entry fees.

🇺🇦 64,375 UAH raised for the Armed Forces of Ukraine across all PFL events

The Problem I Kept Running Into

After moving to Lviv and getting seriously into competitive spin fishing, I noticed the same friction at practically every second tournament. The system technically worked — but only for the organiser holding the pen.

Scores were written by hand on paper during the weigh-in, then photographed and dropped into a Telegram group. If you missed the message or the chat was busy, your result was gone. Season standings lived in a Google Sheet that only one person had access to. Finding a quick summary or checking your position in the rankings was a separate task that required hunting through message history.

This is exactly the kind of problem familiar to anyone who works in product: the system technically works, but using it is genuinely uncomfortable.

Root insight
The data already existed — it just lived in the wrong place. The fix wasn't a new data model, it was a better interface over data that was already there.
📄
Results on paper
Scores written at weigh-in, photographed once, shared in chat — then effectively impossible to find.
💬
Data scattered in chats
Part of the info in Telegram messages, part in photo albums, part in someone's private spreadsheet.
🔍
No quick lookup
Checking your season standing required scrolling through weeks of chat history.
Manual counting errors
Complex scoring rules — place points + bonus points — led to frequent miscalculations by hand.
Before — paper results and Telegram chat

Why a Telegram Mini App?

The fishing community lives in Telegram. A native iOS/Android app would mean App Store submissions, installs, updates, and a completely separate context from where people already communicate. A Telegram Mini App opens with one tap inside the chat they use every day — no install, no friction, native on mobile by default.

My choice was about meeting users exactly where they already are — a core UX principle — while keeping the architecture simple enough to build and maintain solo.

01
Google Sheets as DB
Organisers enter results in a familiar spreadsheet. Zero learning curve, zero new tools to adopt.
02
Apps Script API
A thin Google Apps Script layer reads the sheet and exposes a clean JSON endpoint — an instant backend.
03
Vanilla JS front-end
No framework overhead. Fast initial load inside Telegram's Mini App webview — critical for mobile performance.
04
GitHub + CI/CD
Staging and production environments. Changes deploy automatically on push — the same workflow as professional engineering teams.
Data flow — from spreadsheet to participant's phone
Google
Sheets
Organiser enters
results here
Apps
Script
Reads & exposes
JSON endpoint
PFL
Mini App
Renders live data
in Telegram / PWA

Interface Design

The visual identity — deep forest green with gold — comes directly from the brand materials I designed for Predator Fest events. It signals "outdoors, sport, serious competition" without a word. The interface is built around five core tabs, each solving a specific job-to-be-done for a participant standing at the water's edge on their phone.

PFL App — Fests and Leaderboard screens
🎣
Fests — Tournament Results
Live individual & team standings per round
Multi-year archive — 2025 and 2026 seasons
Per-tournament breakdown: results, catches, placements
Updates in real time as organiser enters weigh-in data
🏆
Leaderboard — Season Rankings
Points accumulated across all 6 season events
Grand prize race — Shimano Vanquish 2500S
Bonus point tracking: participation, BigFish, referrals
Tiebreaker logic: wins → total weight across season
⭐️
Arena — Multi-format Rankings
Cross-format standings across different competition types
Perch, Pike, and multi-species event tracking
Separate views for individual vs team formats
🌳
Didyliv — Venue-specific Tab
Dedicated section for Ozero Didyliv venue results
Local rankings and historical catches
Real-time updates from the same sheet infrastructure
PFL App — all four tabs: Fests, Leaderboard, Arena, Partners

The Scoring System Behind the App

One of the real design challenges was making a genuinely complex scoring model feel transparent and simple to understand. The PFL season uses placement-based points across 6 events, with multiple bonus point categories and a tiebreaker chain. Getting this wrong — in the UI or the underlying formulas — destroys trust with competitors.

Placement points per event

Finish
Points
🥇 1st place
24 pts
🥈 2nd place
18 pts
🥉 3rd place
15 pts
4th place
12 pts
5th place
10 pts
6th–8th place
8 – 4 pts
9th–15th place
3 – 1 pts

Bonus points (per event)

Action
Bonus
Participation in event
+10
BigFish nomination
+5
Instagram story w/ sponsor tag
+3
Inviting a new participant
+2
1st place in a round
+2
Grand prize condition: minimum 5 of 6 events attended. Top scorer with ≥ 5 fests wins the Shimano Vanquish 2500S or premium rod up to 20k UAH.

Built Solo, Built to Last

The entire app was designed, built, and deployed by me — a product designer who used AI-assisted development to go from idea to production without a dedicated engineering team. This was a deliberate experiment in what a designer can ship independently in 2024–2025.

📊
Google Sheets
The "database". Organisers use it like a familiar spreadsheet — no new tools, zero training, zero errors from manual re-entry.
⚙️
Google Apps Script
Acts as a lightweight API layer. Reads the sheet, applies scoring logic, returns clean JSON to the front-end.
⚡️
Vanilla JS
No framework, no build step. Fast initial load inside Telegram's Mini App webview — critical for mobile performance.
🐙
GitHub + CI/CD
Staging and production branches. Automated deploys on push — the same workflow used by professional engineering teams.
✈️
Telegram Mini App
Native Telegram integration. Opens in one tap from the community channel — no install, no app store, no friction at all.
🌐
Progressive Web App
Also accessible at predatorfest.com — same codebase, works on any device or browser.
PFL — web desktop view
PFL — Telegram Mini App

Impact

A real product, used by a real community, built by one person with a passion for fishing and product design.

80+
Participants tracked across tournaments in the 2025–2026 seasons.
Growing community · Lviv & region
64k UAH
Raised for Ukraine's Armed Forces from competition entry fees across all events.
🇺🇦 Sport with a purpose
1 tap
That's all it takes to check live results during a tournament — from any device, any time.
vs. digging through chat history before
What this project actually proves: a designer can ship.
Identified a real problem from personal experience — then built the solution end-to-end
Designed the full product: IA, visual identity, UI system, event brand materials — all consistent
Shipped a working Telegram Mini App + PWA using AI-assisted development
Maintained staging / production CI/CD — the same workflow as professional engineering teams
Iterated based on real feedback from an active community across multiple seasons
Next project
RentFlow Dubai

PropTech · Fintech · Web · Dubai · 2023