Snaptick: an ad-free Compose task planner with a built-in pomodoro timer
Snaptick is an MVVM Jetpack Compose app, offering ad-free task management with a built-in pomodoro timer to help you organize your daily plans
At a glance
- What is it?
- Snaptick is a free Android task planner written in Kotlin with Jetpack Compose and an MVVM structure, combining a pomodoro timer, calendar sync, reminders and a home-screen widget in one app. It is distributed as signed release APKs and as an F-Droid build, and its release build refuses to fall back to the public debug key.
- Who is it for?
- Snaptick is worth installing if you want a single offline task app that includes a pomodoro timer and calendar sync rather than a timer bolted onto a checklist, and if you are comfortable sideloading a signed APK or using the F-Droid build.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Kotlin, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A pomodoro timer that is part of the task list, not a separate app
Snaptick is described in the project description as an MVVM Jetpack Compose app offering ad-free task management with a built-in pomodoro timer. The README calls it a free daily task planner for users who want to increase productivity, with an easy-to-use interface.
The pomodoro timer is what separates it from the large field of checklist apps. A timer that lives beside the task list rather than in a second application means the focus session and the work item are the same object in the interface, so starting a session is part of planning rather than a switch to another app. The feature list also includes an Analyze Free Time entry, which suggests the app reasons about the gaps in your day rather than only counting down minutes.
The task management side is conventional and complete: create and edit tasks, multiple reminders, a home-screen widget, repeating tasks with notification, and a calendar view for managing tasks.
The rest of the list is where the project puts its effort. Calendar sync and ICS import, backup and restore, customizable swipe actions, a set sleep time, Material dynamic theme support, smooth animations, an in-app update checker, and availability in more than fifteen languages. Dynamic theme support means the app follows the system colour scheme, which on recent Android versions is derived from the wallpaper.
The topics attached to the repository confirm the stack: android, androidjetpack, app, jetpack-compose, kotlin, mvvm, pomodoro, task and todo. Compose with an MVVM presentation layer is a fairly standard shape for a new Android app, and the interesting part is the feature breadth rather than the architecture.
Getting an APK from Releases, or building the debug variant yourself
Snaptick is distributed through GitHub Releases, and the project asks you to grab the latest signed APK from the releases page, with a badge linking to the latest release and another to the IzzyOnDroid listing. The F-Droid route means the app is reachable from a repository that many Android users already have configured, without a browser download.
Building from source is documented with a short list of prerequisites, Android Studio and Git, and three steps: clone the repository, open the project in Android Studio, and build and run the debug variant.
git clone https://github.com/vishal2376/snaptick.gitThe README is explicit that the release variant needs a signing keystore that you do not need for normal development, and the repository layout explains why: the project has an app/ module, a build.gradle.kts and settings.gradle.kts in the Kotlin DSL, gradle.properties, the gradlew wrapper and gradlew.bat, a fastlane/ directory for release automation, and a wheel-picker/ directory that is a separate library for the wheel style task selector.
There is also a crowdin.yml file at the root, which is how the fifteen-plus languages are managed, and a CHANGELOG.md that gives you the release history between versions. The releases listed are v4.2 on 2026-07-26, v4.1 on 2026-07-21 and v4.0 on 2026-05-03.
A CLAUDE.md file at the root and a PRIVACY_POLICY.md are also present. The privacy policy matters more than it might appear, because an app that stores your daily plans on the device and offers backup and restore is a place where the storage story is a reasonable question to ask.
The release build refuses to sign with the public debug key
The maintainer section of the README describes a release setup with one property that is worth reading closely, because it is a small piece of engineering hygiene that many hobby projects skip.
Release builds require a real signing keystore, the repository carries no keystore, and each maintainer wires their own in through local.properties with four keys:
SNAPTICK_KEYSTORE_FILE=/absolute/path/to/your-release.jks
SNAPTICK_KEYSTORE_PASSWORD=...
SNAPTICK_KEY_ALIAS=...
SNAPTICK_KEY_PASSWORD=...The stated behaviour of the build is that ./gradlew :app:assembleRelease will fail fast if the keystore configuration is missing, or if the alias is the public Android debug key, and the build refuses to produce a debug-signed release APK.
That last check is the interesting one. An APK signed with the widely known debug key can be replaced by anyone who can build with the same key, so a release built that way is not distributable in any meaningful sense, and on a device it can be uninstalled and replaced without a prompt. Refusing to build in that case turns a silent mistake into a build error.
The same section notes that the project ships no keystore in the repository, which is correct practice and also the reason a fork needs to supply its own key before it can publish an update that existing installs will accept. The gradle.properties file and the fastlane/ directory are the surrounding release plumbing.
No backend, and a privacy policy that suggests everything stays local
Nothing in the project description, the feature list or the visible documentation mentions an account system, a sync service or a server component. The features that would usually imply a backend, calendar sync and ICS import, are both things a client can do on its own against a local calendar provider, and backup and restore is equally local in concept.
The presence of PRIVACY_POLICY.md at the repository root is a good sign for a planner that holds your schedule, and the in-app update checker is the one feature that clearly does reach the network, since it has to compare the running version against something. The details of what the updater contacts are not described in the project notes.
The app is described as ad-free, and the topics carry no advertising libraries. For a user, that means no ad SDK to consent to and no tracking between the app and the ad network, which is the main privacy argument for a planner of this kind.
The counterpoint is that offline-first and local storage mean the backup story is your responsibility, which is why backup and restore is a named feature and why the F-Droid and APK distribution paths exist at all. If the app is your only copy of a task list, an export that you actually run is worth setting up once.
The licence is GPL v3.0, and the README points to the LICENSE file for the details. For an end user that is unremarkable. For anyone considering a fork or a derivative app, GPL v3.0 is a share-alike licence with real obligations, and it is the same licence that means a modified version distributed to others has to carry the same terms.
Donation links, a Discord and an open contribution process
The project is funded by individuals rather than by ads or a subscription, and the README shows four separate donation routes, a NOWPayments crypto button, Ko-fi, Buy Me a Coffee and PayPal. Four options for the same purpose is a small detail that reflects who the project expects to pay for it.
Community sits on a Discord server with a Twitter account alongside it, and the contributing section invites pull requests and issues for bugs and feature suggestions.
The repository layout shows the working setup behind a one-person-looking project. There is a .github/ directory for workflows, a .idea/ directory committed to the tree, a pre-commit style .editorconfig-style set of tools, and the fastlane/ directory that would drive store submissions and release notes.
The release cadence is worth noting for anyone tracking it. Three of the listed versions fall in 2026, with v4.0 in May and v4.1 and v4.2 within three weeks of each other in July, and the last push was on 2026-10-20, so the tree is being worked on even though the newest tagged release is a few months old. The repository is not archived, and there is no indication in the notes that development has stopped.
For a user, that pattern means the app is alive but that the release you install is a snapshot. The in-app update checker exists for exactly this reason, and it is the reason the F-Droid listing matters as a second channel rather than a curiosity.
Editorial conclusion
Snaptick is worth installing if you want a single offline task app that includes a pomodoro timer and calendar sync rather than a timer bolted onto a checklist, and if you are comfortable sideloading a signed APK or using the F-Droid build. It is the wrong tool if you need team sharing or a cross-device sync service, since nothing in the project description suggests a backend, and it is the wrong tool if you want to build your own variant, since the release signing is deliberately locked down. Before you install, verify three things yourself: that the APK you download is the signed release rather than a debug build, that the reminder and calendar features work on your Android version since no minimum SDK is stated in the project notes, and that the licence terms suit you, because the project is GPL v3.0 and that matters if you plan to fork it.
Frequently asked questions
What is Snaptick and what does it do?
Snaptick is a free ad-free Android task planner built in Kotlin with Jetpack Compose and an MVVM structure. It combines task management with a built-in pomodoro timer, plus reminders, a home-screen widget, calendar sync and ICS import, backup and restore, and analysis of free time.
How do I install Snaptick?
The app is distributed through GitHub Releases, where you grab the latest signed APK, and there is also an IzzyOnDroid listing. To build it yourself you need Android Studio and Git, then clone the repository, open it in Android Studio and run the debug variant.
How do I build a signed release of Snaptick?
Release builds need a signing keystore, which the repository does not carry, so you supply one through local.properties with SNAPTICK_KEYSTORE_FILE, SNAPTICK_KEYSTORE_PASSWORD, SNAPTICK_KEY_ALIAS and SNAPTICK_KEY_PASSWORD. The assembleRelease task fails fast if that configuration is missing or if the alias is the public Android debug key.
Does Snaptick need an account or send my data to a server?
The project description and feature list mention no account system or sync service, and the app is ad-free. A PRIVACY_POLICY.md is included in the repository, and the one feature that clearly reaches the network is the in-app update checker.
What licence is Snaptick released under?
The project is licensed under the GPL v3.0 Licence, with the full terms in the LICENSE file at the repository root. That matters if you plan to fork it or build a derivative app, since the share-alike terms carry over to distributed modifications.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/vishal2376-snaptick)Was this useful?