A mindfulness layer that sits between you and the apps and sites that pull you in. minded interrupts doom-scrolling, social-media compulsion, and procrastination with short interventions — a breath, a check-in, a moment to ask whether you actually meant to open this.
- Browser extension for Chrome and Firefox (Manifest V3)
- Android app (native Kotlin host + shared web UI)
- Shared SolidJS codebase across platforms
Browser extension
![]() |
![]() |
| A pause before the scroll — name what you actually came to do. | A calm dashboard of the day's intentions and check-ins. |
Android
![]() |
![]() |
![]() |
| The same gentle nudges on Android — a breath, a check-in, a moment to ask whether you meant to open this. | ||
- Chrome / Edge / Brave — Chrome Web Store
- Android — Google Play
- Firefox — load
dist/as an unpacked extension after building locally (AMO listing pending)
Learn more at minded.today.
Requires Node.js 21+ and npm.
cd extension
npm install
npm start # browser-extension dev build (watches files, output in dist/)
npm run startDroid # android dev build (writes into android/app/src/main/assets/web/)Load the extension in Chrome by opening chrome://extensions, enabling Developer mode, and pointing Load unpacked at extension/dist/.
For the Android app, open /android in Android Studio after running startDroid once.
cd extension
npm run build # production browser extension → dist/ + minded.zip
npm run buildDroid # production android assetscd extension
npm test # jest
npm run lint # eslint --fixRun a single test: npx jest path/to/test.spec.ts.
extension/ Browser-extension build (Vite + CRXJS) and shared SolidJS UI
android/ Native Android host (Kotlin) wrapping the shared web UI
landing-page/ Marketing site (Astro) at minded.today
common/ Shared assets (logos, icons)
docs/ Architecture and design notes
The web UI under extension/src/shared/ is reused across all platforms. Platform-specific data access goes through the dataInterface pattern documented in CLAUDE.md — that file is the best entry point for understanding the architecture.
iOS note: iOS ships as a deliberately minimal widget-only variant — the companion sun as a Home Screen widget (
extension/ios/App/MindedWidget/), presence + invitation only. It does not attempt the forced intervention/overlay, which is the wrong shape for iOS (seedocs/ios-platform-fit.md). New intervention features still target the browser extension and Android. iOS builds and TestFlight ship from CI with no local Mac — seeRELEASING.md.
See CONTRIBUTING.md. Bug reports, feature ideas, and PRs are welcome.
Found a vulnerability? Please don't open a public issue — see SECURITY.md.
MIT © Johannes Millan




