Track your digital time. Reclaim your focus.
Mora is a free, privacy-first web application that transforms raw browsing data into actionable insights. Designed for students, developers, and digital minimalists, Mora helps you understand where your time goes online and provides AI-powered recommendations to boost productivity.
Built by Yuvraj Karna, Mora bridges the gap between data tracking and meaningful habit change.
- One-click Google OAuth 2.0 login
- No passwords to remember, no sensitive data stored
- Local-first data principles
- Mandatory privacy policy acceptance
- You control your data
- Personalized productivity recommendations
- Powered by Google Gemini AI via LangChain
- Transform raw metadata into human-readable insights
- Clear statistics on your browsing patterns
- Identify time-sinks and productivity blockers
- Track trends over time
- Securely sync your browsing data
- Export your data anytime
- Never lose your tracking history
Your personal productivity dashboard
Get actionable AI recommendations
Mora follows a modern, scalable client-server architecture:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend Layer β
β React 18 + Redux Toolkit + Tailwind CSS + Vite β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββββββ
β Backend Layer β
β Node.js + Express.js + Passport.js (Google OAuth) β
βββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββΌββββββββββββββββββββ
β β β
βββββββββΌβββββββββ ββββββββββΌβββββββββ βββββββββΌβββββββββββ
β Intelligence β β Data Storage β β Security β
β Layer β β β β β
β Google Gemini β β Supabase β β Passport.js β
β + LangChain β β (PostgreSQL) β β Google OAuth β
ββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββββ
- Frontend: Responsive React application with Redux Toolkit for predictable state management
- Backend: Node.js/Express API handling authentication, data processing, and external service communication
- Intelligence Layer: Google Gemini AI integration via LangChain for transforming browsing metadata into insights
- Data Persistence: Supabase (PostgreSQL) for user profiles, usage history, and secure cloud backups
- Security: Passport.js with Google OAuth 2.0 for secure, passwordless authentication
Mora is designed for anyone looking to take control of their digital time:
- Students & Researchers: Balance study time and manage deep-work sessions effectively
- Developers & Professionals: Identify time-sinks and optimize workflow efficiency
- Digital Minimalists: Quantify browsing habits and reduce mindless scrolling
- Productivity Enthusiasts: Get data-driven insights to improve focus and time management
- React 18: Modern UI library
- Redux Toolkit: State management
- Tailwind CSS: Utility-first styling
- Vite: Lightning-fast build tool
- Node.js: JavaScript runtime
- Express.js: Web application framework
- Passport.js: Authentication middleware
- Supabase: PostgreSQL database with real-time capabilities
- Google Generative AI (Gemini): AI-powered insights
- LangChain: AI orchestration framework
- Node.js (v16 or higher)
- npm or yarn
- Google Cloud Platform account (for OAuth credentials)
- Supabase account
- Google AI API key
-
Clone the repository
git clone https://github.com/yuvrajkarna2717/mora.git cd Mora -
Install dependencies
# Install server dependencies cd server npm install # Install client dependencies cd ../client npm install
-
Environment setup
Create a
.envfile in the/serverdirectory:PORT=3001 CLIENT_URL=https://moraextension.pages.dev # Google OAuth 2.0 GOOGLE_CLIENT_ID=your_google_client_id GOOGLE_CLIENT_SECRET=your_google_client_secret # Google AI GOOGLE_API_KEY=your_gemini_api_key # JWT JWT_SECRET=your_jwt_secret # Supabase SUPABASE_URL=your_supabase_url SUPABASE_ANON_KEY=your_supabase_anon_key
-
Run the application
# Start the backend server (from /server directory) npm start # In a new terminal, start the frontend (from /client directory) npm run dev
-
Access the application
Open your browser and navigate to
http://localhost:5173(or the port Vite assigns)
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Google+ API
- Create OAuth 2.0 credentials
- Add authorized redirect URIs
- Copy your Client ID and Client Secret to the
.envfile
- Visit Google AI Studio
- Generate an API key
- Add the key to your
.envfile asGOOGLE_API_KEY
- Create a new project at Supabase
- Copy your project URL and anon key
- Add them to your
.envfile - Set up your database schema (see
/server/database/schema.sqlif provided)
- All sensitive data is encrypted
- Browsing data stays local unless you choose to sync
- Transparent data handling with mandatory privacy policy acceptance
- Analyzes your browsing patterns
- Identifies productivity blockers
- Suggests actionable improvements
- Learns from your habits over time
- Time spent per website
- Category-based analysis
- Daily, weekly, and monthly trends
- Productivity score tracking
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Yuvraj Karna
- GitHub: @yuvrajkarna2717
- Email: yuvraj.code@gmail.com
- Google Gemini AI for powering intelligent insights
- Supabase for reliable database infrastructure
- The open-source community for amazing tools and libraries
- Issues: GitHub Issues
- Email: yuvraj.code@gmail.com
- Live Demo: https://moraextension.pages.dev/
Made with β€οΈ by Yuvraj Karna
Star β this repository if you find it helpful!

