AI-Powered Self-Discovery & Career Strategy Engine
Transform your scattered thoughts into actionable intelligence.
Powered by Gemini, OpenAI, Claude, and Grok - built for thinkers who refuse to settle.
Features · 3-Step Guide · Demo · PWA · Quick Start · Memory · Tech Stack · Contributing
"Most productivity apps ask what you did. MyStats decodes who you are."
We don't just track your activities — we uncover your hidden patterns, identify your psychological archetypes, and generate personalized strategies that leverage your unique strengths.
📓 Journal Entry → 🧠 AI Analysis → 👤 Deep Profile → ⚡ Custom Strategy
Write freely. Our AI doesn't just save — it decodes. Every entry is analyzed for:
- Skills (Hard & Soft)
- Personality Traits & Patterns
- Hidden Archetypes (e.g., "The Architect of Systems" 시스템의 설계자)
- Critical Questions you should be asking yourself
- Journal Explorer: search + multi-filter (date range, entry type, has-insight, skill categories)
- Draft Auto-Save: automatic draft preservation and restore with notification
- Ctrl+Enter (Cmd+Enter) keyboard shortcut to save
MyStats now includes a built-in memU-compatible memory layer:
- Embedded mode (default): runs entirely in the browser (no server required)
- Uses your Journal entries as memory for retrieval + similarity checks
- Strategy generation can automatically pull relevant memories as extra context
Bring your own API key and choose your brain:
- Gemini
- OpenAI
- Claude
- Grok
Your cumulative psychological map — built from every journal entry. See:
- Existential Archetypes
- Hidden Behavioral Patterns
- Critical Life Questions
- Skill & Interest Radar
- Rebuild AI Profile: one-click reanalysis of all journal entries to regenerate skills and insights
Describe a problem. Get a ruthlessly personalized solution:
- Unfair Advantage Analysis (What makes YOU uniquely positioned?)
- Mental Model Application (First Principles, 80/20, Inversion...)
- Concrete Action Plans
- Personal Blind Spot Warnings
- Strategy Vault: save, search, load, edit, copy, and delete generated strategies
- Context Builder: manually select skills, archetypes, and journal entries as extra context
MyStats can be installed like an app on mobile/desktop via PWA:
- iOS/Android: add to Home Screen / Install app
- Offline-friendly app shell caching (data stays local-first)
If you sign in, you can sync your data across devices via Supabase.
Current sign-in methods:
- Google OAuth
- GitHub OAuth (optional)
- Email + Password
Notes:
- After OAuth redirect, the app processes the session and removes any auth tokens from the URL.
- You must configure Supabase redirect URLs to allow your local and deployed domains (see
docs/CLOUD_SYNC.md).
"Input your raw thoughts, AI generates your life strategy guide."
MyStats is local-first with no backend.
- Setup: Settings → API Key → Save
- Recommended: Google Gemini (free)
- Privacy: Your key/data stay only in your browser (no servers).
Optional: Settings → memU Integration → keep Embedded to enable local memory retrieval from your journal.
Write anything in Journal (no format required).
- Life path, skills/weaknesses, wins/fails, current struggles
- Tip: The more specific, the sharper the analysis.
Once you have entries, the AI turns them into insight.
- 🎯 Strategy: A personalized plan based on your stats
- 🧠 Profile: Hidden patterns + deep questions for growth
🎮 Try it now: https://mystats-eta.vercel.app
- Open the demo link in Safari
- Tap Share
- Tap Add to Home Screen
- Open the demo link in Chrome
- Tap Install app (or ⋮ menu → Install app)
Note: MyStats is local-first. Without cloud sync, your data is stored per device/browser.
If you want MyStats to behave like a simple Chrome app launcher, you can load the included extension:
- Open
chrome://extensions - Enable Developer mode
- Click Load unpacked
- Select
mystats/chrome-extension/
Click the MyStats icon in the toolbar to open (or focus) the PWA.
- Node.js 18+
- API key (choose one):
# Clone the repository
git clone https://github.com/kks0488/mystats.git
cd mystats
# Install dependencies
npm install
# Start dev server
npm run dev- Open the app in your browser (check the terminal output; default is
http://localhost:5178) - Go to the Dashboard
- Enter your API Key (Gemini, OpenAI, Claude, or Grok)
- Start journaling!
MyStats ships with a memU-compatible memory layer that improves retrieval and strategy context.
- Runs fully in the browser — no server required
- Uses your Journal entries as the memory store (IndexedDB / fallback local storage)
- Provides:
retrieve(top-K similar memories)check-similar(similarity-based duplicate detection)
If you already run a local memU server, you can switch to Server (API) in Settings to:
- Use the memU REST API endpoint
- Optionally include
project-registrymemories in Strategy
| Category | Technology |
|---|---|
| Framework | React 19 + Vite 7 |
| Language | TypeScript 5.9 (Strict Mode) |
| Styling | Tailwind CSS 3 + shadcn/ui |
| Animation | Framer Motion |
| AI Engine | Gemini / OpenAI / Claude / Grok (BYOK) |
| Local DB | IndexedDB (via idb) + localStorage fallback |
| Cloud Sync | Supabase (Auth + Postgres, optional) |
| Memory | memU (embedded browser engine or API server) |
| Validation | Zod 4 |
| Icons | Lucide React |
| Routing | React Router 7 |
| Error Tracking | Sentry (optional, lazy-loaded) |
| PWA | vite-plugin-pwa (Workbox) |
| Testing | Vitest + Testing Library + Playwright (E2E) |
| CI/CD | GitHub Actions (CI + CodeQL + Secret Scan) → Vercel |
mystats/
├── src/
│ ├── bootstrap/
│ │ └── appInit.ts # App initialization (Sentry, DB migration, OAuth, Cloud Sync)
│ ├── components/
│ │ ├── layout/ # Shell (app frame, navigation, page transitions)
│ │ ├── ui/ # shadcn/ui primitives (Button, Card, Badge, Input, Textarea…)
│ │ ├── ErrorBoundary # Global crash boundary + debug report
│ │ └── PwaUpdatePrompt # SW update / offline-ready toast
│ ├── db/
│ │ ├── db.ts # IndexedDB schema, migrations, CRUD helpers
│ │ └── fallback.ts # localStorage / in-memory fallback storage
│ ├── hooks/
│ │ ├── useLanguage.ts # i18n context consumer hook
│ │ └── useDbRecovery.ts # Automatic fallback → DB recovery
│ ├── lib/
│ │ ├── ai-provider.ts # Multi-AI engine (Gemini/OpenAI/Claude/Grok)
│ │ ├── backup.ts # Export/import backup logic
│ │ ├── cloudSync.ts # Supabase Cloud Sync logic
│ │ ├── cloudSyncManager.ts # Auto-sync orchestrator
│ │ ├── debug.ts # Debug snapshot report
│ │ ├── journalExplorer.ts # Journal search/filter engine
│ │ ├── memu.ts # memU memory system (embedded + server API)
│ │ ├── memu.worker.ts # memU Web Worker for background processing
│ │ ├── sentry.ts # Sentry lazy loader
│ │ ├── supabase.ts # Supabase client init
│ │ ├── tombstones.ts # Soft-delete tracking for cloud sync
│ │ ├── translations.ts # EN/KO translation strings
│ │ ├── LanguageProvider # React context provider for i18n
│ │ ├── LanguageContext # Language context definition
│ │ └── utils.ts # Shared utilities (cn, normalizeSkillName, generateId…)
│ ├── pages/
│ │ ├── Home.tsx # Dashboard with stats & quick start
│ │ ├── Journal.tsx # Neural memory journal (write + AI analyze)
│ │ ├── Profile.tsx # Deep intelligence profile (skills, archetypes)
│ │ ├── Strategy.tsx # AI strategy engine + Vault + Context Builder
│ │ ├── Settings.tsx # Orchestrates settings sub-cards
│ │ ├── journal/
│ │ │ └── draftStorage.ts # Draft auto-save/restore
│ │ └── settings/
│ │ ├── AISettingsCard # API key/provider/model settings
│ │ ├── CloudSyncCard # Cloud sync sign-in/config
│ │ ├── DataManagementCard # Export/import/reset controls
│ │ └── MemuSettingsCard # Memory system settings
│ └── test/ # Test setup (Vitest + jsdom)
├── e2e/ # Playwright E2E tests
├── scripts/ # Deployment helper scripts
├── chrome-extension/ # Chrome toolbar launcher extension
├── docs/ # Additional documentation
├── supabase/ # Supabase SQL migrations
├── public/ # Static assets, PWA manifest, icons
├── .github/ # CI workflows, issue/PR templates, dependabot
└── package.json
MyStats supports:
- 🇺🇸 English
- 🇰🇷 한국어 (Korean)
Toggle language in the header.
See CHANGELOG.md.
- Local-first by default: Journals/skills/insights are stored in your browser (IndexedDB)
- No mandatory backend: no tracking, no data collection
- Your API Key: direct connection to your provider in BYOK mode (we never see it)
- memU Embedded: runs locally in the browser
- memU Server (optional): in API mode, entries may be sent to your local memU service
- Cloud Sync (optional): only when you sign in and enable it
- Export Anytime: Download your data as JSON
We love contributions! Please see our Contributing Guide.
# Fork & Clone
git clone https://github.com/kks0488/mystats.git
# Create feature branch
git checkout -b feature/amazing-feature
# Commit changes
git commit -m "feat: add amazing feature"
# Push & create PR
git push origin feature/amazing-featureMIT License - see LICENSE for details.
- Google Gemini for generation
- OpenAI for generation
- Anthropic Claude for generation
- xAI Grok for generation
- shadcn/ui for the beautiful components
- Framer Motion for smooth animations
- All the open-source contributors who made this possible
⭐ If this helped you, give it a star!
Built with 🧠 + ☕ by @kks0488