Donetick is a free, open source project & work management project written in Go and released under AGPL-3.0. It has 2,562 GitHub stars, 199 forks and 176 open issues, and was last pushed 30 days ago. On this registry it ranks #31 of 62 tracked projects in Project & Work Management, with 5 head-to-head comparisons available. It gained 16 stars over the last 6 tracked days.

What is Donetick?

What it is

Donetick is an open-source task and chore management app built in Go with a React frontend, released under AGPL-3.0. It lives in the self-hosted productivity ecosystem and targets individuals, families, and groups that need shared lists with scheduling, assignment, and progress tracking.

The project solves the problem of coordinating recurring household and personal tasks across multiple people. It provides groups, assignees, labels, priorities, subtasks, and analytics so users can plan chores, work tasks, and family routines in one place. Its natural language entry and adaptive scheduling aim to reduce setup effort for repeating obligations.

Key capabilities

  • Natural language task creation extracts dates, times, and recurrence patterns from plain English phrases such as “Change water filter every 6 months.”
  • Advanced scheduling supports daily, weekly, monthly, yearly, specific months, specific days, and adaptive scheduling that suggests due dates from historical completions.
  • Recurrence can be based on the previous due date or the actual completion date, and assignee rotation can follow fewest completed tasks, random order, or round-robin order.
  • Subtasks can be nested and reset automatically when a recurring parent task is completed, while time tracking records single or multiple sessions.
  • Labels, five priority levels, points, completion restrictions, analytics, photos, and “Things” for non-task data provide organization and gamification options.
  • Authentication supports local accounts, TOTP-based MFA, and OIDC OAuth2 providers such as Keycloak, Authentik, and Authelia.
  • Realtime sync, a wall-mounted dashboard layout, NFC tag completion, and S3-compatible storage options support shared and physical workflows.

Who uses it and how

  • Families can create groups and assign chores to members, using labels and priorities to filter tasks by category or urgency.
  • Individuals can create recurring personal tasks with natural language, then track completion time, points, and analytics over weeks or months.
  • Shared households or groups can mount a tablet or laptop dashboard so any logged-in user can select an account and complete tasks on the go.
  • Physical workflows can use NFC tags as triggers to mark tasks complete after scanning a tag in a shared space.
  • Self-hosters can deploy with Docker and connect OIDC providers for centralized sign-in across a home or group.

Getting started

Donetick is distributed as a Docker image named donetick/donetick, and the repository links to GitHub releases for versioned builds.

When to use it — and when not to

Use Donetick when you want a self-hosted, AGPL-licensed task and chore app with family sharing, OIDC, and Docker deployment. Avoid it if you need a project with a larger contributor base or a fully supported local storage option, because the repository lists zero contributors, 176 open issues, and local storage as work in progress. A self-hoster must also configure storage and authentication options.

project readme (upstream, from github) — read inline

Donetick

Simplify Tasks & Chores, Together!

Donetick is an open-source, user-friendly app designed to help you organize tasks and chores effectively. featuring customizable options to help you and others stay organized

Screenshot

GitHub Workflow Status GitHub release (latest by date) Docker Pulls

Discord Reddit


Features

Task & Chore Management

Collaborative: Create and manage tasks either solo or with family and friends. You can create a group and share or assign some of the tasks or chores with others.

Natural Language Task Creation: Describe what you need to do in plain English. Donetick automatically extracts dates, times, and recurrence patterns from phrases like “Change water filter every 6 months” or “Take the trash out every Monday and Tuesday at 6:15 pm.”

Task Advanced Scheduling:

  • Supports flexible scheduling: daily, weekly, monthly, yearly, specific months, specific days of the week, or even adaptive scheduling — where Donetick learns from historical completions to suggest due dates automatically.
  • Due Date vs Completion Date Based Recurrence: Choose whether recurring tasks should be scheduled from the previous due date (ideal for a consistent cadence) or from the actual completion date (useful when tasks are often delayed).
  • Assignee Rotation: Automatically rotate task assignments based on who has completed the fewest tasks, randomly, or in turns(round-robin) order.
  • Time Tracking & Session Insights: Track how much time you spend on a task whether in a single session or across multiple.

Subtasks with Smart Reset: Break tasks into smaller steps with subtasks, each trackable on its own. For recurring tasks, subtasks automatically reset when the main task is completed. subtasks can be nested as well!

Organize with Priorities and Labels: Organize everything using custom labels and priorities. Labels can be shared across your group, making it easy to filter and sort tasks by category. Priorities help you stay focused Donetick supports five levels: P1, P2, P3, P4, and No Priority.

Add Photos: Attach photos directly to tasks. Supports local storage (WIP) or cloud providers including AWS S3, Cloudflare R2, MinIO, and other S3-compatible services.

Things: A unique feature in Donetick. “Things” let you track data that isn’t a task. A Thing can be a number, boolean (true/false), or plain text. You can also mark tasks as done automatically when a Thing changes to a certain value.

NFC Tag Support: Create physical triggers by writing NFC tags that instantly mark tasks as complete when scanned.

Gamification & Progress

Points System: Built-in points system that rewards task completion and tracks your progress over time.

Completion Restrictions : You can restrict task completion until a certain time, for example, make a task completable only within the last X hours before its due date. This helps prevent marking tasks as "done" too early.

Comprehensive Analytics: See task breakdowns by label, completion status, and other helpful graphs.

Security & Authentication

Multi-Factor Authentication: Supports TOTP-based MFA.

Multiple Sign-In Options: Choose from local accounts or any OAuth2 provider that supports OIDC, like Keycloak, Authentik, Authelia, etc. (Tested with Authentik.)

Notifications & Integrations

Dashboard View: If you’re on a larger screen (like a laptop or tablet) and logged in as an admin, Donetick shows a mount-friendly dashboard layout. a full task list, calendar, and recent activity all in one place. Perfect for wall-mounted displays or shared tablets. With the ability for any user to pick their account and complete a task on the go!

Realtime Sync: Enable realtime sync to instantly reflect task changes across all connected devices and users. whether you are adding, editing, or completing a task. It reflects immediately on enabled devices!

Offline Support: You can access donetick if you lose connection and navigate some areas, but this is very limited functionality at the moment.

Multi-Platform Notifications: Get reminders through the mobile app (we have an alpha iOS app on TestFlight, and the Android APK is available in releases), as well as via Telegram, Discord, or Pushover.

Home Assistant Integration: Manage and view tasks directly within Home Assistant using the official integration. It creates separate to-do lists for each Donetick user. Donetick Home Assistant Integration

Developer & API Features

REST API: Full access to Donetick’s features through a REST API, great for custom automations and integrations. (For external use, we recommend using the eAPI, which offers limited access intended for long-lived access tokens.)

Webhook System: Connect Donetick to external systems using flexible webhook support good for custom notification flows or automations.


Quick Start

[!NOTE] Before running the application, ensure you have a valid selfhosted.yaml configuration file. If you don't have one, create a selfhosted.yaml file based on the example provided here. Place the selfhosted.yaml file in the /config directory within your application's root directory

Using Docker

  1. Pull the latest image:
    docker pull donetick/donetick
    
  2. Run the container: Replace /path/to/host/data and /path/to/host/config:
    docker run \
      -v /path/to/host/data:/donetick-data \
      -v /path/to/host/config:/config \
      -p 2021:2021 \
      -e DT_ENV=selfhosted \
      -e DT_SQLITE_PATH=/donetick-data/donetick.db \
      -e TZ=Etc/UTC \  
      --health-cmd "wget --no-verbose --tries=1 --spider http://localhost:2021/api/v1/health || exit 1" \
      --health-start-period 1m \
      --health-timeout 5s \
      --health-interval 1m \
      --health-retries 3 \
      donetick/donetick
    

Using Docker Compose

Use this template to set up Donetick with Docker Compose:

services:
  donetick:
    image: donetick/donetick
    container_name: donetick
    restart: unless-stopped
    ports:
      - 2021:2021
    volumes:
      - ./data:/donetick-data
      - ./config:/config
    environment:
      - DT_ENV=selfhosted
      - DT_SQLITE_PATH=/donetick-data/donetick.db
      - TZ=Etc/UTC
    healthcheck:
      test: wget --no-verbose --tries=1 --spider http://localhost:2021/api/v1/health || exit 1
      start_period: 1m
      timeout: 5s
      interval: 1m
      retries: 3
      

Using the Binary

  1. Download the latest release from the Releases page.
  2. Extract the file and navigate to the folder:
    cd path/to/extracted-folder
    
  3. Run Donetick:
    DT_ENV=selfhosted ./donetick 
    

Development Environment

Build the frontend

  1. Clone the frontend repository:
    git clone https://github.com/donetick/frontend.git donetick-frontend
    
  2. Navigate to the frontend directory:
    cd donetick-frontend
    
  3. Install dependencies:
    npm install
    
  4. Build the frontend:
    npm run build-selfhosted
    
  5. If you want to work on the frontend you can run:
    npm start
    

Build the application

  1. Clone the repository:
    git clone https://github.com/donetick/donetick.git
    
  2. Navigate to the project directory:
    cd donetick
    
  3. Install dependencies:
    go mod download
    
  4. Copy the frontend build to the application:
    rm -rf ./frontend/dist
    cp -r ../donetick-frontend/dist ./frontend
    
  5. Set a valid JWT secret in config/selfhosted.yaml. It must be a 32 characters long string.
  6. Run the app locally:
    go run .
    
    Or build the application:
    go build -o donetick .
    

Build the development Docker image

Make sure to build the frontend and the app first before building the Docker image.

  1. Build the Docker image:
    docker build -t donetick/donetick -f Dockerfile.dev .
    

Single-Circle Instance Mode & OIDC Group-Based Roles

These features are designed for self-hosted single-household deployments where circle management should be hidden from end users and roles should be managed via your OIDC identity provider.

Environment Variables

| Variable | Type | Default |

readme truncated — read the full docs on github

Frequently asked questions

Is Donetick free to use?

Donetick is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Donetick do?

Smart task management for individuals and families

What is Donetick written in?

Donetick is primarily written in Go. Its source is publicly available at https://github.com/donetick/donetick, and it has 2,562 GitHub stars.