A productivity and focus application built as a Turborepo monorepo. Fully offline-first - all data is stored locally.
- web - Vite + React web application (port 4000)
- extension - Plasmo browser extension (Chrome, Edge)
- @repo/shared - Core business logic, stores, hooks, components
- @repo/ui - React component library (shadcn/ui based)
- @repo/logger - Logging utility
- @repo/eslint-config - ESLint configuration
- @repo/typescript-config - TypeScript configuration
- @repo/tailwind-config - Tailwind CSS configuration
- @repo/prettier-config - Prettier configuration
# Install dependencies
pnpm install
# Development
pnpm dev
# Build
pnpm buildpnpm dev # Run all apps in dev mode
pnpm build # Build all apps
pnpm build:web # Build web app
pnpm build:extension # Build extension
pnpm package # Package extension (by default packages Chrome, you can do package:edge etc. for other packages)
pnpm lint # Lint all packages
pnpm format # Format code
pnpm clean # Clean build artifacts
pnpm test # Run tests-
Build the extension:
pnpm build:extension
-
Open Chrome and navigate to
chrome://extensions -
Enable Developer mode (toggle in the top right)
-
Click Load unpacked and select the
apps/extension/build/chrome-mv3-proddirectory
- Timer/Pomodoro with customizable intervals
- Ambient soundscapes (offline-capable)
- Tasks and notes with local storage
- Site blocker (extension)
- Tab stash (extension)
- Bookmarks (extension)
- Calendar (ICS integration)
- Customizable backgrounds
- React 18, Vite, React Router
- Zustand (state), Dexie (IndexedDB)
- Tailwind CSS, shadcn/ui
- Plasmo (extension), Turborepo
- TypeScript, pnpm
All data stored locally in the browser:
- IndexedDB - Tasks, notes, sessions, sounds
- localStorage - Preferences, settings