check_circle Better Tasks

One-time setup

This app connects directly to the Google Tasks API from your browser. You need a Google Cloud OAuth 2.0 Client ID (Web application type) with this page's origin added as an Authorized JavaScript Origin.

  1. Open console.cloud.google.com → APIs & Services → Credentials
  2. Create credentials → OAuth client ID → Web application
  3. Add this page's origin to Authorized JavaScript origins
  4. Enable the Google Tasks API in the API library
  5. Paste the Client ID below

check_circle Better Tasks

Sign in to access your Google Tasks

check_circle Better Tasks

My Tasks

assignment_turned_in

No tasks

search_off

No tasks match your search

Details
radio_button_unchecked
notes
list_alt
event
help_outline

How Better Tasks works

Overview

This is a lightweight PWA that talks directly to the Google Tasks API from your browser. There is no server in between — your tasks never pass through any third-party system.

The app can be installed on your home screen and works as a standalone app on both mobile and desktop.

Navigating your lists

Open the side menu to switch between your task lists. Tap a task to edit its title, description, or move it to a different list. Use the + button to create a new task.

The search button (🔍) searches across all your lists at once.

Links & the back button

Where you are is always in the address bar, so any view can be bookmarked, shared, or linked to from another app:

  • #list=next-actions — the selected list, by name (case and punctuation don't matter, so #list=Next%20Actions works too). Its raw Google id also works and never goes stale.
  • #q=invoice — a search across all lists
  • #task=<taskId> — that task open for editing. No list in it on purpose: the task is found by id wherever it lives, so the link survives being moved to another list.
  • #task=new — a blank new task

They combine, e.g. #list=next-actions&q=invoice. The browser back button steps back through lists and closes an open task — saving it, like the in-app back arrow does.

Sync & local cache

On every launch and when you tap the sync button, the app fetches all lists and tasks fresh from Google. A local cache (browser localStorage) is kept so your tasks appear instantly while the network request runs in the background.

The cache is read-only — it is always overwritten by what Google returns. Google Tasks is the single source of truth.

warning_amber Data integrity — read carefully

  • Deleting a task is permanent. There is no undo. The task is removed from Google Tasks immediately.
  • Moving a task between lists is a single server-side move: the task keeps its id and all its fields, and it is never in two lists at once. If the request fails, nothing moved and your edits are still saved.
  • Completing a task updates the UI immediately (optimistic update). If the API call fails (e.g. you go offline), the change is rolled back automatically.
  • Offline writes are not supported. Creating, editing, completing, or deleting tasks requires an active internet connection. The app will show an error and revert if the request fails.
  • Clearing your browser data removes the local cache, but your tasks are safe in Google — they will reappear on the next sync.