A minimal, fast, responsive web app that gamifies daily life for accountability partners. Track tasks, hours, points, streaks, and rewards with a shared system.
- Authentication - Secure email/password login with Supabase Auth
- Daily Logging - Track wake time, study hours, break hours, wasted time, and tasks
- Points System - Automatic calculation based on performance with extra credit
- Streaks - Track daily consistency and best streaks
- Leaderboard - Compete with multiple friends on daily rankings
- Friend System - Search, add friends, and view their detailed progress
- Reward Shop - Redeem points for real-world treats
- Dashboard - Beautiful charts and analytics
- Profile - Lifetime stats and purchase history
- 5AM Daily Reset - Work late without penalty (YPT-style cutoff)
- Frontend: React 19 + TypeScript + Vite
- Styling: TailwindCSS + Lucide Icons
- Backend: Supabase (PostgreSQL + Auth + RLS)
- Charts: Recharts
- Node.js 18+ installed
- A Supabase account (free tier works)
git clone <your-repo-url>
cd Motixionnpm install- Go to supabase.com and create a new project
- Once your project is ready, go to Settings → API
- Copy your Project URL and anon public key
Create a .env file in the root directory:
VITE_SUPABASE_URL=your-supabase-project-url
VITE_SUPABASE_ANON_KEY=your-supabase-anon-key- Go to your Supabase project dashboard
- Navigate to SQL Editor
- Copy the contents of
supabase-schema.sqland run it
This will create:
- All necessary tables (users, daily_logs, friendships, tasks, purchases, streaks)
- Row Level Security (RLS) policies
- Database functions for point calculation
- Triggers for auto-creating user profiles
npm run devThe app will be available at http://localhost:5173
- Click "Sign Up" on the login screen
- Enter your email, password, and username
- You'll be automatically logged in!
- Click "Log Activity" button
- Fill in your daily data:
- Wake-up time
- Study hours (0-16h)
- Break hours (0-8h)
- Wasted time (0-10h)
- Tasks assigned & completed
- Optional notes
- Click "Save & Calculate Points"
- Study Hours: 5 points per hour
- Tasks Completion (with extra credit for over-achievement):
- ≤80%: -10 points
- 81-90%: 0 points
- 91-100%: +10 points
- 100-120%: +15 points
- 120-150%: +20 points
- 150-180%: +25 points
- 180-200%: +30 points
- Wake Time Bonus:
- Before 6:00 AM: +15 points
- 6:00-7:00 AM: +10 points
- 7:00-8:00 AM: +5 points
- After 8:00 AM: 0 points
- Wasted Time Penalty: -5 points per hour
- Go to the Friends tab (Leaderboard)
- Search for users by username
- Click "Add Friend"
- Once they accept, they'll appear on the leaderboard
- Click any friend to view their detailed performance
- Go to the Shop tab
- Browse available rewards
- Click on a reward to purchase it (if you have enough points)
- View your purchases in the Profile tab
users- User profiles with balance and streaksdaily_logs- Daily activity logs with calculated pointsfriendships- Friend connections (pending/accepted/rejected)tasks- Individual task trackingpurchases- Reward redemption historystreaks- Detailed streak tracking per user
All tables have Row Level Security (RLS) enabled:
- Users can only edit their own data
- Friends can view each other's logs and stats
- Purchases are only visible to the user and their friends
npm run buildThis creates an optimized production build in the dist/ folder.
npm install -g vercel
vercelMake sure to add your environment variables in the Vercel dashboard.
npm install -g netlify-cli
netlify deploy --prod- Make sure your
.envfile has the correct Supabase credentials - Check browser console for errors
- Verify the database schema was set up correctly
- Ensure all required tables exist in Supabase Table Editor
- Clear browser cache and cookies
- Check Supabase Auth settings in your project dashboard
- Ensure email confirmations are disabled for development (Settings → Auth → Email Confirmations)
- Verify the
handle_new_user()trigger is properly set up
- Verify the
calculate_daily_pointsfunction exists in your database - Check the SQL Editor for any errors when running the schema
- Ensure both
services/pointLogic.tsand SQL function match exactly
- Verify friends have accepted the friend request (status = 'accepted')
- Check RLS policies are enabled on the
friendshipstable - Ensure friends have logged activity for today
- Check that
services/mockData.tsexports theREWARDSarray - Verify
Shop.tsximports REWARDS correctly - Ensure each reward has a unique ID
We welcome contributions from the community! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
- Fork the repository and clone your fork
- Create a new branch for your feature:
git checkout -b feature/amazing-feature - Make your changes and test thoroughly
- Commit your changes:
git commit -m 'feat: add amazing feature' - Push to your fork:
git push origin feature/amazing-feature - Open a Pull Request with a clear description
- Bug fixes: Found a bug? Submit a fix!
- New features: Ideas for improvements? We'd love to see them
- Documentation: Help improve our docs
- Rewards: Add new reward ideas to
services/mockData.ts - UI/UX: Enhance the user experience
- Performance: Optimize code and animations
Please read our CONTRIBUTING.md for detailed guidelines on:
- Code standards and project structure
- Commit message conventions
- Pull request process
- Adding new features and rewards
- Testing requirements
- Follow the existing code style (TypeScript + Tailwind CSS)
- Test on both desktop and mobile viewports
- Ensure points calculation matches both client and SQL functions
- Keep animations smooth (0.2-0.3s, GPU-accelerated)
- Maintain the 5:00 AM daily reset logic
- Open an issue for questions or discussions
- Review existing issues and PRs for context
- Push notifications for daily reminders
- Global leaderboard across all users
- Personalized Shop (Custom rewards)
- Dark/light theme toggle
- Add total number of users using the app (total visited) on the landing page with a animated counter
- Add google login
- Add badges for achievements
- Implement profile editing (username, profile picture)
- Allow users to view their own notes from logging sessions
- Add a feedback page for users unfamiliar with GitHub
- Add option for night owls/all nighters to set custom sleep/wake times
- Weekly/monthly reports and analytics
- Group accountability mode for teams
- Mobile app (React Native)
- AI-powered insights and coaching
- Export data functionality
- Integrate wakatime api for tracking coding hours
- Integrate calendar api for tracking tasks
- Improve UI with glass/frosted glass effects
Built with ❤️ using React + Supabase