A calm, tactile to-do app for the things that actually have a time.
Tasks, reminders and live countdowns on one soft surface. No account, no cloud, no noise.
Download the Android APK · App page · Portfolio · Report an issue
A fresh install opens empty. No sample tasks, no demo name, no placeholder workspace. Your first screen is an empty slate waiting for your first task. Android backup is disabled, so old sample data cannot be restored on top of a new install.
| Soft Porcelain | Velvet Slate |
|---|---|
![]() |
![]() |
| Bright, paper-soft neumorphism | Deep, low-glare focus mode |
Most to-do apps either look like a spreadsheet or interrupt you with alerts you stop reading. TaskPulse is built around the two moments that matter: deciding what to do next, and being reminded at the right time.
- Time is part of the task. Set a due time and get gentle warnings before it arrives - 10 minutes, an hour, a day, whatever fits.
- A live countdown, not a static list. See how long is left, what is coming next, and what is already overdue.
- Quiet by default. No streaks, no guilt, no endless notifications. Just the next thing.
- Tactile, not glossy. Custom neumorphic surfaces, the Teko display face and two carefully tuned themes.
- Yours alone. Everything stays on your device. No account, analytics or sync service.
| Empty first run | Fresh installs start with zero tasks and an empty workspace name. |
| One-off and repeating tasks | Daily, weekly, monthly and custom repeat days. |
| Time-left alerts | Multiple reminder leads per task, with snooze and a test alert. |
| AM / PM time controls | A clear 12-hour picker that matches the rest of the app. |
| Custom categories | Add, edit and colour your own categories alongside the built-ins. |
| Live dashboard | Today's schedule, next alert, completed progress and overdue count. |
| History and analytics | A calmer view of what you planned, finished and moved. |
| Two themes | Soft Porcelain and Velvet Slate, with adjustable surface depth. |
| Profile | Optional name, profession and cropped avatar - or leave it all blank. |
| Export backup | Download tasks, reminders and settings as JSON from Settings. |
| Clear all tasks | Start over without losing your preferences or categories. |
| Update check | Settings can ask the SmallTown Studio feed whether a newer build exists. |
| Monthly feedback | A short, optional check-in after real use - never on first launch. |
- Open the direct APK link on your Android phone or tablet.
- Download the file (about 0.21 MB).
- If prompted, allow your browser to install unknown apps.
- Open the APK and install it.
- Launch TaskPulse. It opens to an empty slate.
Updating from an older TaskPulse build? Install 1.1.3 over it. The untouched demo slate from early builds is removed automatically. If you had added your own tasks, they are kept. You can also use Settings > Clear all tasks.
Requires Android 6.0 (API 23) or newer. Built and signed for com.taskpulse.app.
TaskPulse is deliberately small and local.
| What | Where it goes |
|---|---|
| Tasks, reminders, categories, profile | Your device's WebView localStorage; never uploaded |
| Update check | A request to the SmallTown Studio feed for the latest version number |
| Feedback | Opens your mail app with a prefilled message; nothing is sent until you press send |
| Analytics / ads / accounts | None |
| Android cloud backup | Disabled (android:allowBackup="false") |
The Android build asks only for internet (update check), notifications and vibrate. Export a JSON backup from Settings before uninstalling if you want to keep your task history.
- UI: React 19, Vite 7,
lucide-react, hand-written CSS and the Teko variable font. - Android shell: a small Java
WebViewactivity with a local asset server, cache-safe loading and a native bridge for notifications and update checks. - Storage:
localStorageundertaskpulse.v2; no database, account or backend. - Package:
com.taskpulse.app, min SDK 23, target SDK 35, signed APK.
.
├── src/ React app, components and local-first store
├── public/ Icons, manifest and Teko font files
├── mobile/
│ ├── android/ Java WebView shell, manifest and resources
│ └── build-apk.ps1 SDK + JDK build, asset packaging and signing
├── docs/screenshots/ README screenshots
├── releases/ Signed 1.1.3 APK
└── index.html Vite entry point
npm install
npm run devOpen the URL Vite prints. The app works fully in a browser; notifications depend on browser permission.
Production build:
npm run build
npm run previewThe build script needs JDK 17, Android SDK platform 35, build-tools 35.0.0, and a signing keystore. It can reuse a portable toolchain through TASKPULSE_TOOLS, or JAVA_HOME / ANDROID_SDK_ROOT.
The release keystore is not included in this repository. Use your own key, or place the existing taskpulse-release.keystore in mobile/keystore/ locally and provide its password through the environment:
$env:TASKPULSE_STORE_PASS = "your-keystore-password"
$env:TASKPULSE_KEYSTORE = "C:\path\to\taskpulse-release.keystore"
$env:TASKPULSE_KEY_ALIAS = "taskpulse" # optional
$env:TASKPULSE_KEY_PASS = "your-key-password" # optional, defaults to store password
powershell -ExecutionPolicy Bypass -File .\mobile\build-apk.ps1The script builds the web bundle, copies it into the APK with Android-compatible path separators, packages classes.dex, aligns the archive and signs it. The finished APK is written to mobile/TaskPulse.apk.
- Reminders run while TaskPulse is open. There is no background
AlarmManagerservice yet, so closing the app stops countdown alerts. The Add Task screen says this plainly. - Local only. Tasks do not sync between devices. Export JSON for a manual backup.
- Android only. The web build runs in a browser, but the downloadable package is Android.
- Sideloaded. TaskPulse is not on Google Play; updates are checked through the SmallTown Studio feed and installed manually.
- Email feedback. The feedback button opens your mail app; there is no in-app server.
- Background reminders with
AlarmManager/WorkManager - Home-screen widget with today's next task
- Import a JSON backup to restore a workspace
- Optional encrypted backup
- Tablet split view for tasks and analytics
- Wear OS companion
- Fresh installs open with an empty workspace: no demo tasks, no placeholder name.
- Untouched demo tasks from early builds are removed automatically on update.
- Android backup is disabled so old sample data cannot be restored after reinstall.
- Includes the delayed feedback prompt and Clear all tasks action.
- New installs no longer seed sample tasks or a demo profile.
- Feedback waits until roughly four minutes of real use, then at most once a month.
- Settings can clear every task without resetting preferences.
- Fixed the installed app opening to a "Not found" page on Windows-built APKs.
- APK asset paths are normalized to forward slashes, with a fallback for older installs.
- Web assets load with
Cache-Control: no-store.
- Tasks, categories, custom categories, reminder leads, repeats, snooze and analytics.
- Soft Porcelain and Velvet Slate themes with adjustable depth.
APK: releases/TaskPulse-1.1.3.apk · SHA-256: 90391707CF65B73F6F141B5F51299598208407906B65AB299600D81EEF88CF25
Rajeshwar Shingade at SmallTown Studio.
TaskPulse started as a personal experiment in making productivity software feel quieter. If you try it, the feedback button in Settings is the best way to shape what comes next.
Source published for transparency. All rights reserved.


