A really simple, local-first, open source task list with optional sync to your own Google Drive.
Live at dumbtasks.app.
npm install
npm run dev # http://localhost:5173, with the sign-in Worker
npm test
npm run check # type-check
npm run buildThe service worker only runs in production builds (npm run build && npm run preview).
Optional; without credentials the app runs with sync shown as not set up. Create a Google
Cloud OAuth client (Web application) with the Drive API enabled and the drive.appdata
scope, and add your origins to its JavaScript origins. Then set VITE_GOOGLE_CLIENT_ID in
.env.local and GOOGLE_CLIENT_SECRET in .dev.vars (see the .example files). The secret
stays in the sign-in Worker (worker/index.ts), which keeps people signed in.
A Cloudflare Worker serves the app and the sign-in helper (wrangler.jsonc); every push to
main deploys via Workers Builds. Set VITE_GOOGLE_CLIENT_ID as a build variable and
GOOGLE_CLIENT_SECRET as a secret.
src/lib/types.ts: the data model (Task,DataFile)src/lib/db.ts: IndexedDB tablessrc/lib/startup.ts: Android share target, persistent storagesrc/lib/tasks/: the task list itselftasks.ts: every task operation (add, move, complete, edit, delete)demo-tasks.ts: the tasks shown on a first visithistory.svelte.ts: undo / redodeadline.ts: finds deadlines in task text ("by friday", "14 nov")guess-icon.ts: picks an icon from keywordscircle-colours.ts: the fallback emoji, and each task's circle colourrecolour.ts: brings older tasks up to the current icon and colour rules
src/lib/sync/: backup and Google Drive syncmerge.ts: per-field merge for backup import and syncdata-file.ts: JSON export / importengine.ts: pull, merge, push against anySyncBackendlocal-changes.ts: tells sync a task was writtendrive.ts,google-auth.ts: the Google Drive backend and sign-indrive-sync.svelte.ts: when to sync, and the state the sync menu shows
src/lib/ui/: drag and drop (dnd.ts), shared UI state, theme, iconssrc/components/: the UI (Svelte 5)worker/index.ts: the sign-in Worker, which keeps people signed in to Drive
Copyright © 2026 Varvara Efremova, under the AGPL-3.0. The name "Dumb Tasks" and the app icon aren't covered by the license; please use your own for a fork.