The one and only Google Tasks Chrome extension you'll ever need.
Created to provide a simple, intuitive to-do-list experience while maintaining the powerful synchronization features of Google Tasks. No more switching between tabs or apps - manage your tasks from many Google accounts directly from your browser with a clean, modern interface that feels like a native to-do app.
- 🔐 Secure Google OAuth authentication
- 📝 Create, edit, and complete tasks with ease
- 📅 Set due dates
- 🗂️ Multi-account support - manage tasks from different Google accounts
- 🌍 Multi-language support (English, Spanish, Polish)
- ⚡ Real-time sync with Google Tasks
- 🔒 Privacy-first - no data stored on external servers
- Install from Chrome Web Store
- Click the extension icon
- Sign in with your Google account
- Start managing your tasks!
We welcome contributions! If you encounter any problems or bugs, please report them on our Issues page. Feel free to also raise any feature requests there!
The extension supports multiple languages:
- English (en)
- Spanish (es)
- Polish (pl)
Language files are located in src/i18n/translations/.
How to contribute translations:
Option 1: Create a Pull Request
- Fork and clone the repository
- Create a new branch:
git checkout -b feature/translation-[language-code] - Prepare translation
- Create a new translation file in
src/i18n/translations/(e.g.,fr.jsonfor French) and copy the structure fromen.jsonand translate all values - Or identify the translation file for a language you've found a problem and fix it
- Create a new translation file in
- Commit and push your changes
- Create a pull request on Pull Requests page
Option 2: Use Issues
- Take a look at the structure of English translation file
src/i18n/translations/en.json - Create a new issue on Issues page with the title "Translation: [Language Name]"
- Attach the translated JSON file as a comment
- Include any notes about cultural considerations or context
├── src/
│ ├── components/ # React components
│ ├── services/ # API services
│ ├── i18n/ # Internationalization
│ ├── styles/ # CSS styles
│ └── config/ # Configuration
├── google-oauth-worker/ # Cloudflare Worker for OAuth
├── icons/ # Extension icons
└── dist/ # Built extension
Feel free to use this code as a foundation for your own Chrome extensions! Just give credit when using this code as inspiration.
- Node.js (version 16 or higher)
- npm or yarn
- Chrome browser for testing
-
Clone the repository:
git clone https://github.com/ZoltePudeleczko/tasks-do-list-extension.git cd tasks-do-list-extension npm install -
Set up environment variables:
# Create .env file (not tracked in git) cp .env.example .envUpdate
.envwith your configuration: -
Deploy Cloudflare Worker:
cd google-oauth-worker npm install wrangler secret put GOOGLE_CLIENT_SECRET wrangler secret put GOOGLE_CLIENT_ID wrangler deploy -
Build the extension:
npm run build
-
Load in Chrome:
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode"
- Click "Load unpacked"
- Select the
distfolder
- Open Chrome and go to
You can run the extension popup in an automated Chromium session, capture multiple named UI states, and validate pixel diffs.
-
Install Playwright dependencies (one-time):
npm install npx playwright install chromium
-
Capture a popup screenshot:
npm run e2e:screenshot
-
Find generated state screenshots at:
playwright-screenshots/states/Generated states include:
logged-outempty-listlist-with-tasksmodal-open
-
Run strict visual regression checks against stored snapshots:
npm run e2e:visual
-
Update Playwright baseline snapshots after intentional UI changes:
npm run e2e:visual:update
Notes:
e2e:screenshotrebuildsdist/, captures named screenshots, and refreshes visual baselines.- Use
npm run e2e:screenshot:headedornpm run e2e:visual:headedfor visible browser runs.
Due to limitations in the Google Tasks API, the following features are not supported:
- Task starring - The API doesn't support marking tasks as important
- Time-specific due dates - Only date (not time) can be set for task due dates
These limitations are imposed by Google's Tasks API and affect all third-party Google Tasks applications, not just this extension.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for better task management
