Take back your time. Build better habits. Live intentionally.
Friction is a beautifully crafted digital wellness app that helps you reclaim screen time, build mindful habits, and stay productive β without the noise.
- π Screen Time Dashboard β Track hours reclaimed and daily interceptions at a glance
- πͺ Friction Gate β Intentional pause screen before accessing distracting apps
- π Curated Reading β Access free public-domain self-help classics (Meditations, Art of War, and more)
- π§ Wellness Activities β Guided mindfulness prompts including forest bathing, grounding, and breathwork
- πͺ Daily Workouts β Quick bodyweight challenges with progress tracking
- π Community Leaderboard β See how you stack up against other users going screen-free
- π History & Trends β Visualize your digital detox journey over time
- βοΈ Settings β Customize friction levels, quiet hours, and blocked apps
| Layer | Technology |
|---|---|
| Framework | React 18 + TypeScript |
| Build Tool | Vite 5 |
| Styling | Tailwind CSS + shadcn/ui |
| Animations | Framer Motion |
| Routing | React Router v6 |
| State | TanStack React Query |
| Charts | Recharts |
- Node.js 18+ or Bun
- npm, yarn, or bun
# Clone the repository
git clone https://github.com/YOUR_USERNAME/friction.git
cd friction
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:5173.
npm run build
npm run previewsrc/
βββ components/ # Reusable UI components
β βββ ui/ # shadcn/ui primitives
β βββ BookCard.tsx # Reading card component
β βββ WellnessCard.tsx
β βββ WorkoutCard.tsx
β βββ ...
βββ pages/ # Route pages
β βββ HomePage.tsx # Main dashboard
β βββ GatePage.tsx # Friction gate
β βββ ProductivityPage.tsx
β βββ HistoryPage.tsx
β βββ SettingsPage.tsx
βββ hooks/ # Custom React hooks
βββ lib/ # Utility functions
βββ index.css # Design tokens & global styles
Friction embraces a dark, minimal aesthetic inspired by digital wellbeing. The UI is intentionally calm β dominated by negative space, subtle animations, and muted tones β to contrast with the overstimulating apps it helps you avoid.
- Real-time community chat
- Workout streak tracking with fire animations
- Push notifications for quiet hours
- PWA support for mobile install
- Backend integration with user accounts
- Stripe subscription for premium features
This project is open source under the MIT License.
Built with β€οΈ to help you put your phone down.