Map how your life's events seem to trigger each other
CueGraph is an open-source, privacy-first Progressive Web App that helps you build a personal graph of life events and their repercussions.
- Local-only event logging – All your data stays on your device in IndexedDB
- User-tagged causal links – Explicitly mark "this probably caused that" connections
- Automatic pattern detection – Discover correlations in your event timeline
- Interactive graph visualization – Explore how events relate through an ego-centric graph view
- Insights panel – Get notified of patterns CueGraph discovers in your data
- Privacy-first – No servers, no accounts, no tracking of your event contents
- Optional anonymous usage analytics – Help improve CueGraph by sharing aggregate, non-identifying usage patterns (PostHog)
CueGraph is designed with privacy as a core principle:
- All event data remains on the device – Stored locally in your browser's IndexedDB
- No servers, accounts, or sync – Your event logs, notes, and timestamps never leave your device
- Works offline – After initial load, the app works completely offline
If you choose to enable analytics (and if CueGraph was built with PostHog credentials):
- Only aggregate, non-identifying usage patterns are tracked (e.g., "user opened Insights screen", "user logged an event")
- Never tracked: event labels, notes, timestamps, or any personally identifying information
- Fully transparent and user-controllable – You can opt in or out at any time in Settings
- Node.js 18+ and npm
npm installnpm run devThis starts the development server at http://localhost:5173.
npm run buildThis creates a production build in the dist/ directory.
npm run previewnpm testCueGraph is designed to be deployed as a static site.
- Update
vite.config.tsto set the correctbasepath for your repository - Build the project:
npm run build - Deploy the
dist/directory to GitHub Pages
Alternatively, you can use GitHub Actions to automate deployment. See .github/workflows/deploy.yml (if present).
The dist/ directory can be deployed to any static hosting service (Netlify, Vercel, Cloudflare Pages, etc.).
To enable optional anonymous usage analytics:
- Create a PostHog account (or self-host PostHog)
- Set the following environment variables when building:
VITE_POSTHOG_API_KEY– Your PostHog project API keyVITE_POSTHOG_HOST– Your PostHog instance URL
Example:
VITE_POSTHOG_API_KEY=your-key VITE_POSTHOG_HOST=https://app.posthog.com npm run buildIf these variables are not set, the app builds without any analytics code, and all telemetry calls become no-ops.
Contributions are welcome! Here's how you can help:
Edit src/data/eventTypes.json and add your event type with the following structure:
{
"id": "unique-slug",
"label": "Event Name",
"emoji": "🎉",
"category": "action",
"createdAt": "2025-01-01T00:00:00.000Z",
"isBuiltIn": true
}Categories: action, symptom, mood, situation, other.
- Open an issue to discuss new features or report bugs
- Submit a pull request with your changes
- React – UI framework
- TypeScript – Type safety
- Vite – Build tool
- Tailwind CSS – Styling
- Dexie – IndexedDB wrapper
- React Router – Routing (HashRouter for GitHub Pages compatibility)
- PostHog – Optional analytics
- Vite PWA Plugin – Progressive Web App support
This project is licensed under the MIT License. See LICENSE for details.
CueGraph was built to help people understand the ripple effects of their daily choices and experiences, empowering them with personal insights while respecting their privacy.