My Counter
Counters, goals, streaks, widget and webhook
My Counter turns your phone into a collection of customizable counters for tracking habits, consumption, recurring activities and goals. Built to be fast for daily life — one TAP per event — with a Glance home-screen widget, detailed statistics (KPIs, bar chart, cumulative line chart), shareable PDF reports, and a differentiated goal system that works both for limits to stay under (coffee, cigarettes) and targets to reach (glasses of water, steps, workouts).
Each counter has a **periodicity** (daily/weekly/monthly/yearly) and the app **silently auto-consolidates** the previous period: snapshot of final values, Achievement generation (SUCCESS/FAILURE/NEUTRAL), and a growing **streak** of consecutive successes. Local notifications for hot-zone (80% of target/limit), period outcome, and a daily 22:00 reminder.
**Time Counter mode** turns the counter into a stopwatch: first TAP starts, second TAP stops — perfect for "phone time", "deep study time", "driving time". Sessions are saved with start/end/duration.
**Email accountability**: each counter can have one or more addresses (coach, friend, mom) separated by comma/semicolon/space. At period end the app automatically generates a summary PDF and opens the system mail client with all addresses pre-populated and PDF already attached — no backend, no login, you confirm and send. Global master switch to disable everything while on vacation.
**Global webhook** (opt-in): on every consolidation the app POSTs JSON to a configurable endpoint, with a complete payload (counter, goalType, final value, target, outcome, streak) and `X-myCounter-Signature` HMAC-SHA256 header if a secret is set. Two-level architecture: one global endpoint + an optional **per-counter tag** (`vices`, `health`, `work`) for server-side routing. Compatible with Zapier, n8n, IFTTT, Make.com.
Stack: Kotlin 2.2.10 + Jetpack Compose, Material 3, Room v4 with explicit migrations (counters, tap_events, consolidations, achievements), DataStore Preferences, WorkManager (daily reminder), MPAndroidChart for charts, Coil for images, Glance 1.1.1 for the widget, FileProvider for PDF sharing. minSdk 26, targetSdk 36.
Features
- Unlimited counters with visual identity (color, image, step)
- Quick TAP: one tap records an event, optional haptic feedback
- Time Counter mode: turn the counter into a stopwatch (Play/Stop)
- Goal system: TARGET (reach) / LIMIT (don't exceed) / NONE
- Goal states: PROGRESS / HOT_ZONE / SUCCESS / FAILURE with dynamic badges
- Daily / Weekly / Monthly / Yearly periodicity with silent auto-consolidation
- Achievements & streak: automatic period outcome, consecutive SUCCESS days
- Local notifications: hot-zone (80%), period outcome, daily 22:00 reminder
- Email accountability: one or more recipients, auto-generated PDF, global master switch
- Opt-in global webhook: POST JSON + HMAC-SHA256 + per-counter tag for routing
- Compatible with Zapier / n8n / IFTTT / Make.com / custom servers via webhook
- Stats with KPIs, bar chart (Hour/Day/Week/Month/Year) and cumulative line chart
- Shareable PDF reports (save to Downloads or system share sheet)
- Glance widget: quick TAP on home screen, counter picker on pinning, multi-instance
- Time-mode widget: Play/Stop with pulsing effect, session duration visible
- Customization: 5 palettes (Default / Sky / Sunset / Ocean / Forest), light/dark/system theme
- Full history of TAPs and sessions (timestamp, value before/after, duration)
- Privacy-first: everything local, no account, no analytics, no FCM
Configuration
- Name, increment step, start value, reverse
- Goal type: Target (TARGET) / Limit (LIMIT) / None (NONE)
- Periodicity: Daily / Weekly / Monthly / Yearly
- Time Counter mode (stopwatch) — goal in minutes
- Cost per tap or per minute + currency
- TAP color (11 to choose from) and optional TAP image
- Email accountability: one or more, separated by comma/semicolon/space
- Webhook tag (optional) for server-side routing (e.g. vices/health/work)
- Global webhook: endpoint URL + optional HMAC-SHA256 secret + test ping
- Global master switch for email accountability (e.g. on vacation)
- Global master switch for webhook
- Below-zero confirmation to prevent accidental decrements
- TAP haptic feedback enable/disable
Technical prerequisites
- Android 8.0+ (API 26), targetSdk 36
- ~30 MB storage
- POST_NOTIFICATIONS permission (Android 13+) for local notifications
- INTERNET permission only if you enable the webhook (opt-in)
- A system mail client configured for the accountability feature (optional)
- A Zapier/n8n/IFTTT/custom endpoint for the webhook (optional)