A privacy-focused, offline-first PWA for tracking personal and shared rituals through recurring questionnaires and visual analytics.
- Offline-First Architecture: Built on IndexedDB, ensuring complete functionality without an internet connection. Your data never leaves your device unless you export it.
- Customizable Rituals: Create tailored questionnaires with specific participants, frequencies (daily, weekly, monthly), and scoring scales.
- Visual Analytics: Analyze trends over time with 4 distinct chart modes, including per-person evolution and global averages.
- Data Sovereignty: Full control over your data with robust JSON export and import capabilities (including intelligent merging).
- PWA Optimized: Installable on iOS and Android with a native-like feel, touch-friendly wizard, and cached assets.
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 4
- State Management: Zustand
- Persistence: IndexedDB (Native Wrapper)
- Visualization: Recharts
Follow these steps to get the project running on your local machine in minutes.
- Node.js (v18 or higher): Download Node.js
- npm (comes with Node.js)
Clone the repository and install dependencies:
git clone https://github.com/your-username/wetrack.git
cd wetrack
npm installThis project is a client-side PWA relying on IndexedDB. It does not strictly require environment variables for local development.
However, if you plan to integrate specific features later, create a .env.local file:
touch .env.local.env.local file to version control.
Start the application in development mode:
npm run devOpen http://localhost:3000 in your browser to start tracking your rituals.
This project follows a Feature-Based Architecture combined with Next.js App Router:
/features: Contains domain-specific logic (components, hooks) grouped by feature (e.g.,rituals,charts,wizard)./lib/db: A lightweight wrapper around the native IndexedDB API, serving as the single source of truth for all persistent data./store: Zustand stores that sync with IndexedDB to manage application state and UI logic.
Distributed under the MIT License. See LICENSE for more information.
