No description
Find a file
Johannes Millan 34b086b4c7 fix(boards): add missing drag delay for touch and extract shared signal
Add cdkDragStartDelay to board-panel drag items, which was missing
entirely. Extract the repeated `isTouchActive() ? DRAG_DELAY_FOR_TOUCH : 0`
expression into a shared `dragDelayForTouch` computed signal and refactor
all 8 components to use it.
2026-03-30 17:50:55 +02:00
.devcontainer chore: add git and testing tools out of the box in devcontainers 2025-05-12 11:13:06 +02:00
.github chore(deps)(deps): bump android-actions/setup-android (#7016) 2026-03-30 15:45:06 +02:00
.husky fix(build): auto-generate env.generated.ts on checkout via husky hook 2026-03-06 16:39:21 +01:00
.signpath/policies/super-productivity build: sign path setup 4 2026-01-28 12:51:50 +01:00
.vscode chore: add git and testing tools out of the box in devcontainers 2025-05-12 11:13:06 +02:00
android 18.1.0 2026-03-29 20:31:02 +02:00
build fix: point changelog link in release notes to GitHub releases. Fixes #6890 2026-03-20 21:36:30 +01:00
docs feat(calendar): implement Google Calendar plugin with reschedule and delete 2026-03-28 23:10:08 +01:00
e2e feat(sync): replace WebDAV header-based conflict detection with content hashing 2026-03-30 17:33:06 +02:00
electron fix(security): harden Local REST API against DNS rebinding and field injection (#6996) 2026-03-29 11:59:27 +02:00
eslint-local-rules Add hydration guard for selector-based NgRx effects (#6426) 2026-02-08 15:18:21 +01:00
fastlane/metadata/android build: update links to match our new organization 2026-01-05 14:45:06 +01:00
ios build: fix ios 2026-03-26 21:23:52 +01:00
nginx refactor(e2e): migrate to production Dockerfile for E2E tests 2026-01-21 14:30:24 +01:00
packages fix(sync): transmit syncImportReason through sync pipeline 2026-03-29 20:06:41 +02:00
scripts refactor: replace PFLog with SyncLog/OpLog and remove obsolete migration scripts 2026-02-03 14:38:05 +01:00
snap/hooks fix(snap): add filesystem and desktop integration plugs 2026-01-17 12:44:30 +01:00
src fix(boards): add missing drag delay for touch and extract shared signal 2026-03-30 17:50:55 +02:00
tools fix(build): remove sharp from deps to fix F-Droid build 2026-03-29 19:57:10 +02:00
.browserslistrc build: update browser support list 2025-08-13 19:47:44 +02:00
.dockerignore fix(docker): simplify env handling for Docker builds 2025-08-09 12:16:31 +02:00
.editorconfig chore: update gradle/java indent_size to 4 2024-09-29 09:40:49 +08:00
.env.example docs: change template of the .env file to include the mandatory unsplash key 2025-08-12 18:10:59 +02:00
.gitignore refactor(electron): bundle preload script with esbuild to support sandbox mode 2026-03-22 19:38:21 +01:00
.gitmodules chore: Update android submodule to use feat/platform-android-offline branch (for capacitor) 2024-09-12 09:49:41 +08:00
.gitpod.yml refactor: make prettier work for angular 2025-02-21 14:31:22 +01:00
.npmrc ci: add package-lock.json registry check and pin npm registry (#6875) 2026-03-19 12:01:40 +01:00
.nvmrc feat: add .nvmrc file with Node.js v22.18.0 2025-08-13 19:47:44 +02:00
.prettierignore chore: ignore simplewebauthn-browser.min.js from prettier 2026-01-03 12:33:42 +01:00
.prettierrc.json refactor: make prettier work for angular 2025-02-21 14:31:22 +01:00
.stylelintrc.mjs build(stylelint): fix font-family-no-missing-generic-family-keyword 2025-01-04 13:49:50 +01:00
AGENTS.md docs: update AGENTS.md to include CLAUDE.md reference 2026-01-15 17:20:39 +01:00
angular.json perf: lazy-load stacktrace-js, focus-mode effects, and store-devtools 2026-03-10 15:58:22 +01:00
ARCHITECTURE-DECISIONS.md fix(sync): fix stale comments, doc refs, and preserve lastSeq on clean-slate 2026-02-12 16:27:56 +01:00
capacitor.config.ts fix: android system status bar and nav bar cover app ui (#6779) 2026-03-10 15:58:10 +01:00
CLAUDE.md fix(security): redact user-entered content from remaining log call sites 2026-03-28 16:35:01 +01:00
CONTRIBUTING.md docs: clean up and organize project documentation 2026-03-10 10:22:56 +01:00
docker-compose.e2e.fast.yaml fix(ci): fix WebDAV config path for hacdias/webdav v5 2026-02-16 11:07:52 +01:00
docker-compose.e2e.yaml fix(ci): fix WebDAV config path for hacdias/webdav v5 2026-02-16 11:07:52 +01:00
docker-compose.supersync.yaml fix(dev): update default SuperSync port to 1901 for local development 2026-01-24 21:14:57 +01:00
docker-compose.yaml fix(ci): fix WebDAV config path for hacdias/webdav v5 2026-02-16 11:07:52 +01:00
docker-entrypoint.sh refactor(e2e): migrate to production Dockerfile for E2E tests 2026-01-21 14:30:24 +01:00
Dockerfile fix(build): fix Docker image build by updating node version and copying tools 2026-03-01 11:35:54 +01:00
Dockerfile.e2e.dev feat(e2e): add Docker-based E2E test isolation 2026-01-04 17:09:39 +01:00
Dockerfile.e2e.dev.fast build(e2e): add fast local Docker Compose setup for E2E tests 2026-01-09 18:00:24 +01:00
electron-builder.yaml fix(ci): prevent duplicate unsigned exe files in GitHub Releases 2026-03-19 18:58:52 +01:00
eslint.config.js Add hydration guard for selector-based NgRx effects (#6426) 2026-02-08 15:18:21 +01:00
Gemfile 10.1.1 2024-11-06 19:44:38 +01:00
Gemfile.lock chore(deps): bump faraday in the bundler group across 1 directory (#6491) 2026-02-12 20:45:16 +01:00
LICENSE fix: typo in license 2019-01-29 18:21:51 +00:00
ngsw-config.json build: update caching 2025-06-18 19:08:56 +02:00
package-lock.json 18.1.0 2026-03-29 20:31:02 +02:00
package.json 18.1.0 2026-03-29 20:31:02 +02:00
README.md docs: update Arch Linux AUR installation method to use AUR helper (#6646) 2026-03-23 15:35:55 +01:00
SECURITY.md build: update links to match our new organization 2026-01-05 14:45:06 +01:00
tsconfig.base.json Merge branch 'master' into feat/operation-logs 2026-01-10 17:08:09 +01:00
tsconfig.json build: try to get rid of inline compilation to js 2025-04-25 12:58:16 +02:00
webdav.yaml build: simplify docker setup and fix e2e 2025-07-18 20:00:10 +02:00

Banner

An advanced todo list app with timeboxing & time tracking capabilities that supports importing tasks from your calendar, Jira, GitHub and others

🌐 Open Web App or 💻 Download


MIT license   GitHub All Releases   Chocolatey package   On product hunt

Reddit Community   Super Productivity on Mastodon   Tweet

animated

Get it on Flathub   Get it from the Snap Store   English badge   Obtanium Badge

Play Store Badge   F-Droid Badge   App Store Badge


Ukraine Flag
Humanitarian Aid for Ukraine
Support humanitarian relief via the official National Bank of Ukraine account.


✔️ Features

  • Keep organized and focused! Plan and categorize your tasks using sub-tasks, projects and tags and color code them as needed.
  • Use timeboxing and track your time. Create time sheets and work summaries in a breeze to easily export them to your company's time tracking system.
  • Helps you to establish healthy & productive habits:
    • A break reminder reminds you when it's time to step away.
    • The anti-procrastination feature helps you gain perspective when you really need to.
    • Need some extra focus? A Pomodoro timer is also always at hand.
    • Collect personal metrics to see, which of your work routines need adjustments.
  • Integrate with Jira, Trello, GitHub, GitLab, Gitea, OpenProject, Linear, ClickUp and Azure DevOps. Auto import tasks assigned to you, plan the details locally, automatically create work logs, and get notified immediately, when something changes.
  • Basic CalDAV integration.
  • Back up and synchronize your data across multiple devices with Dropbox and WebDAV support
  • Attach context information to tasks and projects. Create notes, attach files or create project-level bookmarks for links, files, and even commands.
  • Super Productivity respects your privacy and does NOT collect any data and there are no user accounts or registration. You decide where you store your data!
  • It's free and open source and always will be.

And much more!

Work View with global links

How to use it

If you need some help, this article on dev.to is the best place to start.

If you prefer, there is also a (long) YouTube video available.

There is another older the app looks and feels much better now ;) article on how I personally might use the app - and still another one on how I implement the 'eat the frog' prioritizing scheme in the app.

If you have further questions, please refer to the discussions page.

⌨ Keyboard shortcuts and short-syntax

Keyboard shortcuts (most important)

  • Shift+P: Open create project dialog
  • Shift+A: Open add task bar
  • Enter: Edit currently focussed task title
  • Arrow keys: Navigate around task list
  • D: Mark currently focused task as done
  • A: Add subtask to currently focused task
  • Y: Toggle tracking time to currently focused task
  • S: Open schedule dialog for currently focused task
  • Backspace: Delete currently focused task
  • ArrowRight: Open additional info panel for currently focused task
  • Ctrl+Shift+ArrowUp: Move currently focused task up in list
  • Ctrl+Shift+ArrowDown: Move currently focused task down in list

Short-Syntax

Can be used when adding a task. (Each of these can be disabled in settings->short syntax)

  • # <tag-name>: add a tag to the task ("task-description #tag1")
  • <number>m or <number>h: set time-estimate for the task ("task-description 10m" or "task-description 5h")
  • @<time>: add due time to the task ("task-description @fri 10pm")
  • + <project-name>: add the task to an existing project ("task-description +Important Project")
  • Ctr + 2: toggle between moving the new task to the bottom and top of the list

🌐 Web Version

Check out the web version even though it is a bit limited: Time tracking only works if the app is open and for idle time tracking to work, the chrome extension must be installed.

If you want the Jira integration and idle time tracking to work, you also have to download and install the Super Productivity Chrome Extension.

💻 Downloads & Install

All Platforms

Install from the releases page.

Windows

Due to certification issues it's recommended to download the app from the Microsoft Store:

English badge

You can also install the app using Chocolatey:

choco install super-productivity

or using Scoop:

scoop install extras/super-productivity

Linux

Snap - Most distributions

Get it from the Snap Store

Install via command-line:

# stable
sudo snap install superproductivity

# edge channel releases
sudo snap install --channel=edge superproductivity

# it is also recommended to disable updates to the app while it is running:
sudo snap set core experimental.refresh-app-awareness=true

Important: Enable Local File Sync To use local file sync, you need to manually connect the home interface:

sudo snap connect superproductivity:home

⚠️ Snap Data Persistence Warning When uninstalling the snap package, all user data (tasks, projects, settings) stored in ~/snap/superproductivity/common/ may be removed. Always export your data before uninstalling. Consider using Flatpak, AppImage, or .deb packages if you prefer data to persist in the standard ~/.config/ location.

For more details, see issue #6031.

Flatpak - Most distributions

Get it on Flathub

Must install Flatpak first. See setup instructions for all distributions.

Install via command-line:

# install
flatpak install flathub com.super_productivity.SuperProductivity

# run
flatpak run com.super_productivity.SuperProductivity

AUR - Arch Linux

  • With AUR helpers

    paru -S superproductivity-bin
    # or
    yay -S superproductivity-bin
    
  • Without AUR helpers

    git clone https://aur.archlinux.org/superproductivity-bin.git
    cd superproductivity-bin
    makepkg -si
    

AppImage

If you encounter problems, please have a look here: https://github.com/super-productivity/super-productivity/issues/3193#issuecomment-2131315513

MacOS

App Store Badge

Install via homebrew cask:

brew install --cask superproductivity

Android

Play Store Badge   F-Droid Badge

A new version of the Android app is now available with Connectivity-Free Mode, allowing you to use the app without an internet connection.

This update offers more flexibility, supporting both fully offline usage and integration with services like WebDAV and Dropbox for syncing. Enjoy a smoother, more reliable experience whether you're online or offline.

Stay tuned for even more exciting updates!

The sources can be found here.

Community

The development of Super Productivity is driven by a wonderful community of users and contributors. Thank you all so much for your support!

👀 Check out our awesome curated list of community-created resources about Super Productivity

♥️ Contributing

If you want to get involved, please check out the CONTRIBUTING.md

There are several ways to help.

  1. Spread the word: More users mean more people testing and contributing to the app which in turn means better stability and possibly more and better features. You can vote for Super Productivity on Slant, Product Hunt, Softpedia or on AlternativeTo, you can tweet about it, share it on LinkedIn, reddit or any of your favorite social media platforms. Every little bit helps!

  2. Provide a Pull Request: Here is a list of the most popular community requests and here some info on how to run the development build. Please make sure that you're following the commit message format and to also include the issue number in your commit message, if you're fixing a particular issue (e.g.: feat: add nice feature #31).

  3. Answer questions: You know the answer to another user's problem? Share your knowledge!

  4. Provide your opinion: Some community suggestions are controversial. Your input might be helpful and if it is just an up- or down-vote.

  5. Provide a more refined UI spec for existing feature requests

  6. Report bugs

  7. Make a feature or improvement request: Something can be done better? Something essential missing? Let us know!

  8. Translations, Icons, etc.: You don't have to be a programmer to help. Some of the icons really need improvement and many of the translations could use some love.

  1. Sponsor the project

  2. Create custom plugins: Extend Super Productivity with your own features and integrations by developing custom plugins.

Special Thanks to our Sponsors!!!

Recently support for Super Productivity has been growing! A big thank you to all our sponsors, especially the ones below!

  • Agentic AI Quality Engineering via:  TestMu AI

(If you are, intend to or have been a sponsor and want to be shown here, please let me know!)

Code Signing

Windows binaries are signed. Free code signing is provided by SignPath.io, certificate by SignPath Foundation.

Running the development server

If you don't want or cannot use Codespaces for any reason, here are the instructions for local development.

To run the development server you need to have Node installed (version 20 or higher required). Go to https://nodejs.org for installation instructions.

1. Clone repo

git clone https://github.com/super-productivity/super-productivity.git

2. Install dependencies

cd super-productivity
npm i -g @angular/cli
npm i
# prepare the env file once
npm run env

3. Run the dev server

ng serve

Afterwards you can open http://localhost:4200 in your browser. For most adjustments this should be enough and also enables you to use the Redux DevTools.

If you want to run the app standalone do the following:

ng serve

# in a new console tab
npm start

🚀 Try with GitHub Codespaces

You can develop and run Super Productivity instantly in your browser using GitHub Codespaces: no need to install Node.js or any dependencies locally. On the top of the repository page, click on "Code", "Codespaces", and then on the plus button, "Create Codespace".

Your VS Code settings can sync as usual, so your environment feels just like home. The development server starts automatically, and the dev container auto-forwards the port. Open the "Ports" tab and Ctrl+Click the available link to preview your running Super Productivity app.

Further customizations to the Codespaces dev container can be performed by editing the .devcontainers/devcontainers.json file according to the Codespaces documentation and the devcontainers full specification.

Packaging the app

Packaging the app is done via electron-builder. To start packaging run npm run dist. If you want to add new platforms and experiment with the build options the easiest way to do so is manipulating the build property in the package.json, but you can also use the command line interface of electron builder.

Building for Android

This feature was added on October 7, 2024. See Pull Request #57.

To build the Android version of Super Productivity, please refer to the Android Build Documentation, which includes instructions on configuring Connectivity-Free Mode and Online-Only Mode (Compatibility Mode).

Ensure you follow the setup steps properly to configure the environment for building the app.

Run as Docker Container

docker run -d -p 80:80 super-productivity/super-productivity:latest

Note

The command will automatically pull the container that matches the host's platform. Use --platform to specify a different one.

Currently supported architectures: linux/amd64, linux/arm64, linux/arm/v7.

Now you can access the web app from your browser at http://localhost.

This container only serves the web app, and the user data is stored in the browser. Therefore, it does not have any persistent storage.

Integrate with WebDAV backend server

You can integrate the container with a WebDAV server container to provide WebDAV service with base url http://localhost/webdav.

Download pre-configured files

Download the pre-configured docker-compose.yaml and webdav.yaml from this repository to a local directory, say sp/.

# Alternatively, you can get them by cloning this repository
git clone https://github.com/super-productivity/super-productivity.git
mkdir -p sp
cp super-productivity/docker-compose.yaml sp/
cp super-productivity/webdav.yaml sp/
cd sp

Setup user accounts

Edit webdav.yaml to configure username and password. Remember to create and assign different directories to different users (within /data) to avoid mixing up user data.

Start the services

docker compose pull
docker compose up -d

Additionally to accessing the web app from your browser at http://localhost, you can set up WebDAV synchronization with base url http://localhost/webdav/.

Other configuration of docker container

You can provide the default values for WebDAV settings in the "Sync" section of the "Settings" page, via setting some environment variables of the docker container. This could be used for single user instances. Check out docker-compose.yaml in this repository for available environment variables.

Custom themes (desktop only)

The app ships with several built-in themes (Arc, Catppuccin Mocha, Cyberpunk, Dark Base, Dracula, Everforest, Glass, Nord Polar Night, Nord Snow Storm, Rainbow) that you can select from the settings. You can also color-code individual projects and tags with custom primary, accent, and warn colors.

In addition, you can load completely custom CSS to restyle everything. To load a custom theme, simply put your styles into a new file named styles.css directly in the user data folder. Your custom CSS will override the default styles, giving you full control over the app's appearance.

Custom WebDAV Syncing

If using the integrated WebDAV Syncing is not working out for you, you can also try to sync all app files, which are located in the user data folder.

Automatic Backups

For the desktop version automatic backups are stored by default in the backup subfolder of the user data folder. Once you locate a backup, you can restore it on the settings page under Sync & Export/Import/Export/Import from file.

User Data Folder

Where user data is stored differs from OS to OS. The most common locations are:

OS Location
Mac OS ~/Library/Application Support/superProductivity/
Windows C:\Users\<YOUR_USER_NAME>\AppData\Roaming\superProductivity/ or %APPDATA%\superProductivity
Linux ~/.config/superProductivity/

The path should be shown when you go to the "Automatic Backups" section on the configuration page (minus the "backup" subfolder). You can also see it printed out when you start the app from the command line.

For web browsers, data is simply stored for the current user inside the browser storage.

Using a custom folder to save user data

You can specify a custom folder for saving your data by starting the application with the --user-data-dir parameter like so:

superproductivity --user-data-dir=/path/to/my/data

Linux/Wayland Compatibility

If you're experiencing issues running Super Productivity on Wayland (such as rendering problems, VSync errors, or GLib-GObject warnings), you can force the application to use X11 mode by starting it with the --force-x11 parameter:

superproductivity --force-x11

This will automatically apply compatibility fixes including:

  • Forcing the Ozone platform to use X11 instead of Wayland
  • Disabling GPU VSync to prevent GetVSyncParametersIfAvailable() errors
  • Setting the appropriate environment variables for X11 compatibility

The application will automatically detect Wayland sessions and apply these fixes, but you can use this flag if automatic detection doesn't work properly.