STEEL — Steal Therapy
Brutal gym training PWA · Next.js 15 App Router + React 19 (RSC) · TypeScript strict · PocketBase backend
A brutal/industrial gym training PWA for workout plans, session logging, and progress analytics with a multilingual exercise library. Built on Next.js 15 (App Router, RSC) with a PocketBase backend reached through a /pb rewrite proxy.
Generated 4 Jun 2026 · 135 files · 13 components · 5 flows
File Architecture
The full source tree as a layered graph — every file with its role, imports, exports and reverse dependencies.
System Design
Runtime topology across the five zones — client, edge, application, data and external services.
Flow Graph
The five most significant application flows, step by step — startup, auth, write, read and error recovery.
Technology
| Component | Technology | Version | Source of Detection |
|---|---|---|---|
| Framework | Next.js (App Router, RSC) | ^15.1.6 | package.json |
| UI runtime | React | ^19.0.0 | package.json |
| Language | TypeScript (strict) | ^5.7.3 | tsconfig.json |
| Styling | Tailwind CSS v4 (@tailwindcss/postcss) | ^4.0.0 | postcss.config.mjs |
| Components | shadcn/ui (New York) over radix-ui | ^1.4.3 | components.json |
| Server state | @tanstack/react-query | ^5.62.11 | QueryProvider.tsx |
| Client state | zustand (persist) | ^5.0.2 | stores/workout-store.ts |
| Forms | react-hook-form + zod | 7.72 / 3.25 | package.json |
| Icons | lucide-react | ^0.469.0 | package.json |
| Animation | framer-motion | ^12.38.0 | package.json |
| Charts | recharts | ^3.8.1 | components/progress/* |
| Toasts | sonner | ^2.0.7 | providers/Providers.tsx |
| Backend SDK | pocketbase | ^0.26.8 | lib/pocketbase.ts |
| Backend server | PocketBase (SQLite) | :8090 | .env.local / next.config.mjs |
| AI (scripts) | ai + @ai-sdk/{google,groq,anthropic,openai} | ai ^6 | scripts/seed-*.mjs |
| Exercise data | ExerciseDB (RapidAPI fork) | *[unresolved]* | .env.local (EXERCISEDB_URL) |