・VISHWAS / PORTFOLIO
0%
INITIALIZING EXPERIENCE
FTMatchday 05/11· Oct 2026 — Nov 2026

the chip nobody saw coming —

Panenka

5–0four numbers in, everything else derived.

Football statistics, elevated. Results alone say little about who is actually performing, and raw totals are unfair across positions and small samples.

V1LIVE
PanenkaFOOTBALL ANALYTICS · MCP
KWD550+FAM24COL23MCP6

Live commentary

how a match becomes a season of stats

  1. 3′

    Team sheet

    Log a match — score, and each player's rating, goals, assists and MOTM — validated with Zod and saved in one transaction.

  2. 17′

    Service layer

    Only the service layer touches the database; UI and MCP handlers go through it, enforced by a lint rule.

  3. 34′

    Pure stats

    Streaks, splits, records and form trends are pure functions with no I/O.

  4. 58′

    Rating model

    Nine per-game metrics are shrunk toward their group, z-scored within role, weighted per position and scaled to an OVR.

  5. 76′

    Everything else

    Attributes, tiers, archetypes, keywords, seasons and the Ballon d'Or build on top — and feed the pages and the MCP server.

Starting five

tap a player for the scouting report

SCOUTING REPORT · #1

Collectible cards

OVR, tier, six attributes, archetype and a holographic foil that tilts with the pointer.

Tactics board

Position-fair rating

Sample-size shrinkage and per-position weight recipes — wingers are only compared with wingers.

src/lib/stats/rating-model.ts ↗

Lint-enforced boundaries

UI and MCP code can only reach data through the service layer.

.eslintrc.json ↗

Keyword engine

Ladders, feats and keywords minted per opponent, competition and season.

src/lib/stats/keywords.ts ↗

The squad

1Next.js 14Frontend
2React 18Frontend
3TailwindFrontend
4shadcn/uiFrontend
5RechartsFrontend
6Server ActionsBackend
7PrismaBackend
8ZodBackend
9PostgreSQL 16Data
10Docker ComposeData
11MCP SDKAI & tests
12VitestAI & tests
Watch the full match on GitHub ↗
NEXT FIXTURE · MATCHDAY 06
PanenkavsPreuve →

Validate startup ideas with evidence, not opinions.