Fishoria is not just another browser game. It is a highly interactive, state-of-the-art web-based fishing simulator, blending mesmerizing WebGL graphics with uncompromised gameplay realism.
Feel the adrenaline rush of fighting a trophy catch, carefully select your tackle, and adapt to changing weather conditions. Fishoria is designed to deliver a genuine fishing experience directly in your browser. No compromises on quality or mechanics!
π Living Ecosystem & Advanced Fish AI Forget boring, predictable algorithms. The fish in Fishoria have their own distinct behaviors! They migrate, seek comfortable depths, react differently to the time of day, and get spooked by the sound of a splash. Outsmarting each one is a true challenge.
π£ The Ultimate Reeling Thrill This isn't just "click-to-catch". Our reeling mini-game calculates line tension physics, fish fatigue, and the durability of every single piece of your tackle. Pull too hard? Say goodbye to your favorite lure and the trophy.
π― Three Distinct Fishing Styles Float, feeder, or spinning? Each fishing method features unique physics and behavior. Watch the micro-dips of the float, observe the tension on the feeder quiver tip, or experiment with various spinning retrieval techniques.
βοΈ A Dynamic, Breathing World Sun setting and the sky getting cloudy? Brace for rain! The weather completely alters ecosystem behavior, predator activity, sonar effective radius, and creates a unique atmosphere accompanied by dynamic audio.
ποΈ Deep Economy & Progression
Start with a basic float rod, but as you progressβgain experience (
π¦ Ecosystem Surprises Rewarding experiences are sometimes purely unexpected. Instead of a trophy carp, you might reel in an old boot or snag on an underwater branch. A complex quest system encourages you to explore every single corner of the lake.
π€ Global Community Fast and secure registration (including Google OAuth), cloud saving for your profile, and detailed statistics. Compete against others, break your own personal records, and build a collection of the rarest fish species.
β¨ Full Immersion: Visuals & Audio We have polished every single detail: water droplets streaming down your screen, the iconic sound of the reel drag screaming when a fish pulls, and even meteor showers lighting up the night sky. The ambient sounds dynamically adapt to the weather.
| Category | Technology |
|---|---|
| UI Framework | React 19 with React Compiler (auto-memoization) |
| Bundler | Vite 8 |
| Rendering | PixiJS 8 β WebGL 2D graphics, particle systems |
| State | Redux Toolkit β global game state |
| Data Fetching | TanStack Query v5 β server state, caching |
| Routing | React Router 7 |
| i18n | i18next + react-i18next |
| Forms | React Hook Form |
| Math | simplex-noise β procedural generation |
| Analytics | Vercel Analytics |
| Language | TypeScript 5 |
| Category | Technology |
|---|---|
| Framework | NestJS 11 |
| ORM | Prisma 7 with @prisma/adapter-pg |
| Database | PostgreSQL (Supabase) |
| Caching | Redis (Upstash) β REST-based |
| Validation | Zod 4 & nestjs-zod |
| Auth | Passport.js β JWT, Google OAuth, Local |
| Mailing | Nodemailer β Gmail SMTP |
| Docs | Swagger / OpenAPI via @nestjs/swagger |
| Language | TypeScript 5 |
| Category | Technology |
|---|---|
| Hosting | Vercel β client & server deployments |
| Git Hooks | Husky β pre-commit automation |
| Lint Staged | lint-staged β incremental linting |
| Linting | ESLint 9 + Prettier |
| Unused Code | Knip β dead export & dependency detection |
- Node.js β₯ 18
- Yarn (package manager)
- PostgreSQL database (or Supabase account)
- Redis instance (or Upstash account)
git clone https://github.com/your-repo/fishoria.git
cd fishoria
# Install root dependencies (Husky, lint-staged)
yarn install
# Install client dependencies
cd client && yarn install && cd ..
# Install server dependencies
cd server && yarn install && cd ..# Client
cp client/.env.example client/.env
# Server
cp server/.env.example server/.envEdit both .env files with your credentials. See each directory's README for details.
cd server
# Apply migrations
yarn prisma:migrate
# Generate Prisma client
yarn prisma:generate
# Seed initial data (news, quests, achievements)
yarn prisma:seed# Terminal 1 β Start the API server (port 5000)
cd server && yarn dev
# Terminal 2 β Start the client dev server (port 5173)
cd client && yarn devOpen http://localhost:5173 in your browser and start fishing!
| Command | Description |
|---|---|
yarn translations:check |
Check i18n translation coverage |
yarn prepare |
Install Husky git hooks |
| Command | Description |
|---|---|
yarn dev |
Start Vite dev server |
yarn build |
Lint + compile + production build |
yarn preview |
Preview production build locally |
yarn lint / lint:fix |
ESLint check / auto-fix |
yarn format |
Format with Prettier |
yarn convert |
Convert images to WebP |
yarn knip |
Detect unused code |
| Command | Description |
|---|---|
yarn dev |
Start in watch mode |
yarn build |
Lint + compile + NestJS build |
yarn start:prod |
Run production build |
yarn lint / lint:fix |
ESLint check / auto-fix |
yarn format |
Format with Prettier |
yarn prisma:migrate |
Run database migrations |
yarn prisma:generate |
Generate Prisma client |
yarn prisma:seed |
Seed database |
yarn prisma:studio |
Open Prisma Studio GUI |
yarn knip |
Detect unused code |
| Document | Description |
|---|---|
| Client README | Frontend architecture, game engine, UI |
| Server README | Backend API, all endpoints, setup |
| In-Game Terminal Commands | Debug shell commands reference |
| Server Internal Wiki | 12 detailed module docs (auth, game, etc.) |
This project is licensed under the License β see the LICENCE file for details.
