Skip to content

caseyg/tldoist

Repository files navigation

TLDoist

TLDoist is a visual Todoist board built on tldraw and Cloudflare Workers.

It syncs Todoist projects, sections, and tasks onto an infinite canvas, and includes an AI chat panel that can inspect and manipulate the board.

What it does

  • Renders Todoist projects and tasks as custom tldraw shapes.
  • Supports bidirectional task/project/section updates through Todoist API proxy routes.
  • Includes live/manual sync flows so canvas and Todoist stay aligned.
  • Exposes Todoist-aware actions to the built-in agent.

Tech stack

  • React + Vite + TypeScript
  • tldraw
  • Cloudflare Workers + Durable Objects
  • Todoist REST/Sync APIs

Prerequisites

  • Node.js 20+
  • npm 10+
  • A Todoist API token
  • At least one model provider API key:
    • Anthropic
    • OpenAI
    • Google AI

Local setup

  1. Install dependencies:
npm install
  1. Create local env file from the template:
cp .dev.vars.example .dev.vars
  1. Fill .dev.vars with your real keys.

  2. Start local dev:

npm run dev
  1. Open http://localhost:5173.

Environment variables

Local development uses .dev.vars.

Required for Todoist features:

  • TODOIST_API_TOKEN

Used for model providers:

  • ANTHROPIC_API_KEY
  • OPENAI_API_KEY
  • GOOGLE_API_KEY

Scripts

  • npm run dev - Start local development
  • npm run build - Build client and worker
  • npm run preview - Preview production build

Deployment

This project is configured for Cloudflare Workers via wrangler.toml.

  1. Authenticate with Cloudflare:
npx wrangler login
  1. Deploy:
npx wrangler deploy

If you use a custom domain, add your own [[routes]] entry in wrangler.toml.

Project structure

  • client/ - tldraw app UI, agent client logic, custom shapes/actions/parts
  • worker/ - model streaming endpoint and Todoist proxy routes
  • shared/ - schemas, types, and formatting utilities used by client and worker
  • docs/ - design and architecture notes

Open source notes

  • Do not commit .dev.vars, .env*, or .wrangler artifacts.
  • Use .dev.vars.example for onboarding.
  • Before publishing, confirm repository metadata (owner, links, issue tracker) matches your org.

License

MIT

About

No description, website, or topics provided.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages