llms.txt Content
# PokeVerse - LLM Context (Concise)
Last updated: 2026-02-06
## Overview
PokeVerse is a Next.js 15 Pokemon encyclopedia with localized content, searchable Pokemon pages, type system pages, daily and random discovery flows, guides, and news.
## Tech Stack
- Next.js 15 App Router + TypeScript
- Tailwind CSS v4
- next-intl (`en`, `ja`, `pt-BR`, `roomaji`)
- Supabase Auth + PostgreSQL (RLS)
- PokéAPI as data source
- Cloudflare KV-backed API proxy caching
- OpenNext Cloudflare Workers deployment
## Core Routes
- Pages: `/{locale}/pokemon`, `/{locale}/pokemon/[name]`, `/{locale}/types`, `/{locale}/types/[type]`, `/{locale}/daily`, `/{locale}/random`, `/{locale}/guides/*`, `/{locale}/news/*`
- APIs: `/api/pokeapi/[...path]`, `/api/cache-stats` (dev only), `/api/vitals`
- Auth callback: `/auth/callback`
Note: `en` uses no locale prefix; non-default locales use URL prefixes.
## Key Directories
- `src/app/` - Routes and route handlers
- `src/components/` - UI, SEO, and analytics components
- `src/hooks/` - Data and interaction hooks
- `src/lib/` - API, cache, SEO, Supabase, and utilities
- `src/i18n/` - Locale config and message loading
- `messages/` - Translation resources
- `supabase/` - Database SQL
## i18n and Content Model
`src/i18n/request.ts` currently merges:
- 11 base message files
- `news/index.json`
- 20 `news/articles/*.json` files
Current message file count per locale: 32.
When adding a news article, update:
- `messages/{locale}/news/articles/{slug}.json`
- `messages/{locale}/news/index.json`
- `articleFiles` in `src/i18n/request.ts`
- `src/lib/news-registry.ts`
- `src/app/[locale]/news/{slug}/page.tsx`
## Data and Cache
- Client requests default to `/api/pokeapi`.
- Server requests go directly to `https://pokeapi.co/api/v2`.
- Set `NEXT_PUBLIC_USE_POKEAPI_DIRECT=true` to force direct client requests.
- Proxy cache policy in `/api/pokeapi/[...path]`:
- KV TTL: 90 days
- CDN max-age: 7 days
- `stale-while-revalidate`: 30 days
## Authenti