A personal hub of small single-purpose apps, built with React 19 + TypeScript + Vite. Configured as a PWA for relative-path deployment.
pnpm dev # Start dev server
pnpm build # TypeScript check + Vite build
pnpm preview # Preview production buildNo test framework is configured.
Routing — src/index.tsx uses HashRouter with one route per app. Each app lives at /<slug>.
Adding an app:
- Create
src/apps/YourApp.tsx(default export a React component) - Register the route in
src/index.tsx - Add an entry to the
appsarray insrc/pages/Home.tsx(slug, icon, name, desc, color, border, bg, status)
Styling — inline styles throughout; dark theme using #07070f background. No CSS framework or component library. The shared home-grid class is in src/index.css.
/fitness— Gym + running plan ("Rebuild Protocol") for a Tokyo 5K. Tracks session completion inlocalStorageunder the keyfitness-done./flow— Stub app; types defined insrc/types/flow.ts(BaseNodewith shape union: RECTANGLE, CIRCLE, PARALLELOGRAM)./bjp— Dashboard analyzing BJP governance across tabs (overview, economy, welfare, blunders, communal tensions, corporates, jobs, responsibility)./krabi— Trip planning app./reset— 15-day personal development plan with daily planner and progress tracking./jpn-pr— Japan permanent residency checklist, with English translations for tasks and documents.