Modern Productivity & Focus Management Platform
Track tasks • Build habits • Manage time • Visualize growth
Grovity is a comprehensive productivity platform designed to help users stay focused, track daily tasks, build positive habits, and monitor growth through visual analytics.
Features a clean, responsive interface with light/dark mode support, real-time synchronization across all pages, and cloud-based data persistence powered by Firebase Firestore.
- Strict Firebase security posture (deny-by-default, user-scoped docs)
- Authorized domains and API key restriction workflow
- Firebase App Check integration and enforcement readiness
- Centralized auth guard utility (
auth-guard.js) - Startup health check page (
health.html+health.js) - CI baseline with HTML/JS checks and Playwright smoke tests
- Rate-limited Firestore write paths for sensitive mutations
- Reduced localStorage dependence for identity/session-derived UI state
- Incident logging hooks for auth/bootstrap/firestore failures with buffered fallback
- Create, edit, and delete tasks with priority levels
- Mark tasks as current focus
- Real-time task completion tracking
- Task statistics and progress visualization
- Cloud sync — Access tasks from any device
- Customizable Pomodoro-style timer (5, 10, 15, 25, 50 minutes)
- Background timer synchronization across all pages
- Session tracking and completion statistics
- Visual progress indicators
- Cross-device sync — Continue timers on any device
- Track good habits and habits to avoid
- Daily habit completion monitoring
- Separate lists for positive and negative habits
- Progress tracking with visual feedback
- Cloud persistence — Never lose your habit streaks
- Interactive "Focus Garden" with growing tree animation
- Visual representation of productivity growth
- Session-based progress stages
- Weekly task completion charts
- Monthly calendar view with daily task counts
- Achievement badges:
- Streak Master
- Task Champion
- Time Master
- Habit Builder
- Consistency King
- Real-time statistics:
- Total tasks
- Total sessions
- Focus time
- Average duration
- Personal notes section with character counter
- Light/Dark mode toggle
- Fully responsive design (mobile, tablet, desktop)
- Real-time cross-page synchronization
- Google OAuth authentication
- Cloud-based data persistence
- Clean, modern UI with smooth transitions
- HTML5 — Semantic markup structure
- Tailwind CSS — Utility-first CSS framework (via CDN)
- Vanilla JavaScript — No framework dependencies
- Font Awesome 6.5.0 — Icon library
- Firebase Authentication — Google OAuth sign-in
- Firebase Firestore — Cloud-based NoSQL database
- Firebase Compat SDK v11.0.0 — Client-side integration
- Modular JavaScript — Separated into logical modules:
config-loader.js— Firebase configuration managementfirebase-init-secure.js— Firebase initializationfirestore-db.js— Firestore API wrappersync.js— Global synchronization engineindex.js— Homepage and authenticationworkspace.js— Task, habit, and timer managementdashboard.js— Analytics and statisticstheme-system.js— Light/dark mode handling
- Event-driven — Custom events for real-time updates
- Cloud-based — All data persists in Firestore, synced across devices
Firestore Collections:
users/{userId}/
├── tasks/all-tasks # Task list with metadata
├── habits/all-habits # Good habits and habits to avoid
├── habit-progress/{date} # Daily habit completion tracking
└── notes/user-notes # Dashboard notes
LocalStorage (Fallback):
grovity_theme— Theme preference (light/dark)- Local backup of tasks and notes for offline access
Grovity/
├── index.html # Landing page & authentication
├── login.html # Login page
├── signup.html # Registration page
├── workspace.html # Main workspace (tasks, habits, timer)
├── dashboard.html # Analytics & statistics
├── theme-system.css # Theme variables and styling
├── theme-system.js # Theme toggle functionality
├── .env.local # Firebase credentials (local dev)
├── .env.local.example # Example environment variables
├── package.json # Project metadata
├── src/
│ ├── js/
│ │ ├── config-loader.js # Firebase configuration
│ │ ├── firebase-init-secure.js # Firebase initialization
│ │ ├── firestore-db.js # Firestore database service
│ │ ├── sync.js # Synchronization engine
│ │ ├── index.js # Homepage logic
│ │ ├── workspace.js # Workspace functionality
│ │ └── dashboard.js # Dashboard logic
│ └── input.css # Tailwind CSS input file
└── dist/
└── output.css # Compiled Tailwind CSS (generated)
- Modern web browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
- Local web server (for development)
- Firebase project (for authentication and database)
1. Clone or download the project
git clone https://github.com/LegendarySumit/grovity.git
cd Grovity2. Configure Firebase (see Firebase Setup below)
3. Open in browser
Option A: Direct open
- Simply open
index.htmlin your browser
Option B: Local server (recommended)
# Using Python
python -m http.server 5000
# Using Node.js (http-server)
npx http-server
# Using VS Code Live Server
Right-click index.html > Open with Live Server4. Access the application
http://localhost:5000
5. Get started
- Click "Sign up with Google"
- Grant permissions
- Start tracking your productivity!
Use the startup health page to verify Firebase runtime readiness before public releases:
- Open
health.html - Validate config presence, Firebase bootstrap, auth readiness, and Firestore reachability
- Re-run checks after changing env/config or App Check settings
Minimal CI checks now cover HTML, JavaScript syntax, and top-level navigation smoke tests.
npm run check:html
npm run check:js
npm run test:smokeRun all checks locally:
npm run ciRecent P2 hardening includes:
- Write-rate limits in
firestore-db.jsfor task, habit, progress, and notes mutation paths - Reduced identity/session reliance on localStorage by moving auth redirect and user cache flows into session-oriented guard logic
- Incident logging hooks for auth/bootstrap/firestore failures with buffered fallback and optional remote flush when auth + Firestore are available
- Go to Firebase Console
- Click "Create a project"
- Enter project name (e.g., "Grovity")
- Follow the setup wizard
- In Firebase Console → Authentication
- Click "Get Started"
- Go to "Sign-in method" tab
- Enable Google provider
- Add your authorized domains
- In Firebase Console → Build → Firestore Database
- Click "Create Database"
- Start in Test mode (update rules for production later)
- Choose Firestore location
Use the production rules file in this repo:
firebase/firestore.rules
Deploy with Firebase CLI:
firebase deploy --only firestore:rules,storage:rulesrules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
match /{document=**} {
allow read, write: if request.auth.uid == userId;
}
}
match /{document=**} {
allow read, write: if false;
}
}
}- Firebase Console → Project Settings (⚙️ icon)
- Scroll to "Your apps" section
- Click "</> Web" to add a web app
- Copy the Firebase config object
- Update
src/js/config-loader.js:
const firebaseConfig = {
'fb_api_key': 'YOUR_API_KEY',
'fb_auth_domain': 'YOUR_AUTH_DOMAIN',
'fb_project_id': 'YOUR_PROJECT_ID',
'fb_storage_bucket': 'YOUR_STORAGE_BUCKET',
'fb_messaging_sender_id': 'YOUR_MESSAGING_SENDER_ID',
'fb_app_id': 'YOUR_APP_ID'
};- Firebase Console → Build → App Check
- Register your web app with reCAPTCHA v3
- Copy the site key
- Set it in runtime config as
fb_appcheck_site_key
For full P0 launch hardening steps (domains, API restrictions, App Check enforcement), see:
docs/security/firebase-p0-launch-checklist.md
- Sign Up — Create account using Google OAuth
- Grant Permissions — Allow Grovity to access your Google account
- Access Workspace — Start adding tasks and habits
- Start Timer — Focus on tasks with built-in timer
- Track Progress — View analytics on dashboard
- Google OAuth — Secure login with Google account
- Session Persistence — Automatically login on return visits
- Automatic Sign-Out — Logout clears session data safely
- Cross-Device Sync — Same profile across all devices
- Navigate to Workspace
- Enter task name in input field
- Click "Add Task" or press Enter
- Mark complete by checking checkbox
- Click star icon to set as current focus
- Delete tasks using trash icon
- Cloud sync — Changes save automatically
- Set a task as current focus
- Select time duration (5, 10, 15, 25, or 50 minutes)
- Click "Start Timer"
- Timer syncs across all pages and devices
- Receive notification when time is up
- Add good habits (e.g., "Drink 8 glasses of water")
- Add habits to avoid (e.g., "Checking social media")
- Check habits as completed throughout the day
- Track progress daily across all devices
- Navigate to Dashboard
- View weekly task completion chart
- Check monthly calendar for daily summaries
- Monitor achievements and streaks
- Review total statistics
If you need to modify styles:
# Install dependencies
npm install
# Build CSS
npm run build:css- Custom event system (
grovity-focus-update,grovity-stats-update) - Firestore real-time listeners for instant updates
- Background timer intervals on all pages
- Prevents timer freezing when switching pages or devices
- CSS custom properties for dynamic theming
- Persistent theme preference in localStorage
- Smooth transitions between light/dark modes
- Comprehensive color palette for both themes
- Cloud Storage — Primary data stored in Firebase Firestore
- Real-time Sync — Changes sync across all devices automatically
- Automatic Save — Data saved instantly when created or modified
- Secure — Google OAuth authentication, Firestore security rules
- Privacy — Cloud-encrypted with user-specific data isolation
- Offline Support — Local cache fallback to localStorage
✅ Lightweight — No heavy frameworks, minimal dependencies
✅ Fast Loading — Optimized assets and code splitting
✅ Cloud Sync — Real-time updates across all devices
✅ Offline Capable — Local cache for offline access
✅ Sub-second Updates — Firestore real-time listeners
| Browser | Minimum Version |
|---|---|
| Chrome | 90+ |
| Firefox | 88+ |
| Safari | 14+ |
| Edge | 90+ |
- ✅
Cloud synchronization across devices(Implemented) - ✅
Google OAuth authentication(Implemented) - Data export/import functionality
- Advanced analytics and insights
- Team collaboration features
- Mobile app versions (iOS/Android)
- Integration with calendar apps
- Pomodoro technique variations
- Offline-first PWA support
- Custom theme colors
This project is proprietary. All rights reserved.
LegendarySumit
- GitHub: @LegendarySumit
- Project: Grovity
Developer: LegendarySumit
Last Updated: March 2026
Powered by: Firebase & Firestore
🌱 Built with ❤️ for productivity enthusiasts
Stay focused • Build habits • Track growth • Sync across devices
⭐ Star this repo if you find it helpful!
☁️ Now with Firebase Cloud Sync & Google OAuth