Real-time drag tracking with velocity-based dismiss decision for the mobile bottom sheet: - Custom pointer-event handler on the panel header drags the sheet height in 1:1 with the finger; touch-action: none on the header lets pointermove be passive (no main-thread arbitration per event). - Pointer listeners run outside the Angular zone — drag state is not template-bound, so per-event change detection was pure overhead. - Single-pointer gesture with setPointerCapture; multi-touch and cross-pointer events are rejected. - pointercancel resets state without invoking the close decision so OS-interrupted gestures do not dismiss the sheet. - Release decision: upward fling expands; downward close requires velocity floor AND projected end-position past the close zone (Apple WWDC18 / Vaul / Android BottomSheetBehavior pattern). Held finger and slow drags never trigger close. - Close animation uses translateY for compositor-only paint, with velocity-coupled duration and easing for natural inertia. Reads offsetHeight directly so the slide-off matches the rendered height. - A .closing class lifts min-height: 20vh through the close animation; hand-off from .dragging to .closing is one step to avoid a one-frame snap to 20vh between dragend and slide-off. - Regrab during a close/expand animation cancels the in-flight timers and clears residual styles before starting a new drag. |
||
|---|---|---|
| .devcontainer | ||
| .github | ||
| .husky | ||
| .signpath/policies/super-productivity | ||
| .vscode | ||
| android | ||
| build | ||
| docs | ||
| e2e | ||
| electron | ||
| eslint-local-rules | ||
| fastlane/metadata/android | ||
| ios | ||
| nginx | ||
| packages | ||
| scripts | ||
| snap/hooks | ||
| src | ||
| tools | ||
| .browserslistrc | ||
| .dockerignore | ||
| .editorconfig | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| .gitpod.yml | ||
| .npmrc | ||
| .nvmrc | ||
| .prettierignore | ||
| .prettierrc.json | ||
| .stylelintrc.mjs | ||
| AGENTS.md | ||
| angular.json | ||
| ARCHITECTURE-DECISIONS.md | ||
| capacitor.config.ts | ||
| CLAUDE.md | ||
| CONTRIBUTING.md | ||
| docker-compose.e2e.fast.yaml | ||
| docker-compose.e2e.yaml | ||
| docker-compose.supersync.yaml | ||
| docker-compose.yaml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| Dockerfile.e2e.dev | ||
| Dockerfile.e2e.dev.fast | ||
| electron-builder.yaml | ||
| eslint.config.js | ||
| Gemfile | ||
| Gemfile.lock | ||
| LICENSE | ||
| ngsw-config.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| SECURITY.md | ||
| tsconfig.base.json | ||
| tsconfig.json | ||
| webdav.yaml | ||
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
💻 Downloads & Install
For all current downloads, package links, and platform-specific notes:
check the wiki.
✔️ 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!
📖 Documentation
Full guides and reference material live in the wiki. Quick links: First steps, Reference index, How-To index.
❓ 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 article on how I implement the 'eat the frog' prioritizing scheme in the app.
If you have further questions, please refer to the discussions page.
For a structured walkthrough (web app, install, next steps), see First steps (wiki).
Keyboard shortcuts and short-syntax for new tasks are maintained in the wiki: Keyboard shortcuts, Short syntax.
🌐 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.
More detail: Web app vs desktop (wiki).
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.
-
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!
-
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 (wiki). 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). -
Answer questions: You know the answer to another user's problem? Share your knowledge!
-
Provide your opinion: Some community suggestions are controversial. Your input might be helpful and if it is just an up- or down-vote.
-
Provide a more refined UI spec for existing feature requests
-
Make a feature or improvement request: Something can be done better? Something essential missing? Let us know!
-
Translations, Icons, etc.: You don't have to be a programmer to help. Many of the translations could use some love. Guide: Contribute translations (wiki).
-
Create custom plugins: Extend Super Productivity with your own features and integrations by developing custom plugins. Overview: Develop a plugin (wiki).
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!
(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
See the wiki: Run the development server, Package the app, Build for Android.
Run as Docker Container
See the wiki: Run with Docker (wiki).
Custom themes (desktop only)
See the wiki: Theming (wiki), User data (wiki).
Custom WebDAV Syncing
See the wiki: User data (wiki), Managing your data (wiki).
Automatic Backups
See the wiki: User data (wiki), Restore data from backup (wiki).
User Data Folder
See the wiki: User data (wiki), Other (wiki).

