/super-productivity

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, Gitlab, GitHub and Open Project.

Primary LanguageTypeScriptMIT LicenseMIT

Banner

MIT license GitHub All Releases On product hunt tweet

Get it from the Snap Store English badge App Store Badge Play Store Badge

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities.

🌐 Open Web App or 💻 Download

✔️ 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 to 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, GitHub, GitLab and OpenProject. Auto import tasks assigned to you, plan the details locally, automatically create worklogs and get notified right away, when something changes.
  • 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, the best place to start is this article on dev.to.

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

There is another 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 importan)

  • 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.

  • # <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")

🌐 Web Version

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

If you want the Jira integration and idle time tracking to work, you have to also 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

Linux

# 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
Get it from the Snap Store

Arch

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

MacOS

Install via homebrew cask:

brew install --cask superproductivity
App Store Badge

Android

There is a very early(!) Android version available. The sources can be found here.

App Store Badge

♥️ Contributing

Please check out the CONTRIBUTING.md

There are several ways to help.

  1. Spread the word: More users means 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 angular commit guidelines and to also include the issue number in your commit message, if you're fixing a particular issue (e.g.: feat: add nice feature with the number #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 be done better? Something essential missing? Let us know!

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

  9. Sponsor the project

Running the development server

To run the development server you need to have node installed at least in the version 14. Go to https://nodejs.org for installation instructions.

Clone repo

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

Install dependencies

cd super-productivity
npm i -g @angular/cli
npm i

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 dev tools.

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

ng serve

# in a new console tab
npm start

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.

Run as Docker Container

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

Custom themes (desktop only)

In addition to color coding your projects and tags and to the dark and light theme you can also load completely custom css to restyle everything. To load a custom theme you simply need put them into a new file named styles.css directly in the user data folder.

There is a great set of themes available for download in this repository as well as some info on how to role out your own custom themes.

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 per default in the backup sub folder of the user data folder. Once you located 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: 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" sub folder). 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