Game Insights is a local-first analytics app for game teams. It imports tabular data, detects the game type, runs AI-assisted analysis, and surfaces dashboards for upload, funnels, monetization, games, and settings.
- Imports CSV, TSV, JSON, NDJSON, Excel, and SQLite data
- Supports file upload, URL import, clipboard import, and folder import
- Auto-detects game type and maps columns with AI-assisted analysis
- Persists data locally in the browser
- Surfaces specialized views for funnels, monetization, AI analytics, games, and dashboard building
Uploadfor importing and reviewing dataAI Analyticsfor insights, anomalies, and Q&AFunnelsfor detected or manual funnel analysisMonetizationfor revenue and payer analysisDashboard Builderfor custom dashboardsGamesfor multi-game managementSettingsfor theme, language, and AI provider configurationLandingfor the public marketing page
src/
βββ ai/ # App analytics engine: schema, metrics, funnels, cohorts, recommendations
βββ adapters/ # Data source adapters
βββ components/ # Shared UI, upload flow, charts, landing, settings
βββ context/ # React state providers
βββ hooks/ # Shared hooks for analytics, onboarding, keyboard shortcuts
βββ lib/ # Importers, stores, persistence, utilities, sample data
βββ pages/ # Route-level screens
βββ services/ai/ # LLM provider orchestration, prompts, chains, tools, memory
βββ services/openai.ts
βββ types/ # Shared TypeScript types
The two AI areas are intentionally separate:
src/aicontains domain analytics used by the app itselfsrc/services/aicontains provider-backed LLM orchestration
- Node.js 18+
pnpm
pnpm install
pnpm devOpen http://localhost:5173.
On the upload page, use Try Example Data to load one of the built-in datasets:
- Puzzle Game Analytics
- Idle Game Analytics
- Gacha RPG Analytics
pnpm dev # Start the Vite dev server
pnpm build # TypeScript check + production build
pnpm lint # ESLint
pnpm test # Vitest in watch mode
pnpm test:run # Vitest once, then cleanup
pnpm test:coverage # Vitest with coverage
pnpm test:e2e # Playwright end-to-end tests
pnpm storybook # Storybook
pnpm build-storybook # Build Storybook static outputThe current app flow is:
Upload / sample data -> importer -> local storage -> AI analysis -> dashboard screens
Core modules involved in that flow:
src/lib/importers/parses supported file and text sourcessrc/lib/dataStore.tsandsrc/lib/db.tshandle local persistencesrc/lib/columnAnalyzer.tsbridges optional AI-backed column analysissrc/ai/computes metrics, funnels, cohorts, recommendations, and report outputssrc/services/ai/wraps provider configuration, prompts, chains, tools, and memorysrc/context/holds app-wide state for data, games, theme, and toasts
- The app uses CSS variables for the warm theme in
src/index.css - Most dashboards and flows are code-split with
React.lazy - Shared UI lives in
src/components/ui/
