Disclosure: I'm the developer. This is my app.

Every screen-time app I tried had an "ignore for today" button. So I built one where ignoring your own limit costs money, and the money goes to an organisation you'd hate to fund. Pro-gun? It goes to Everytown. Anti-gun? The NRA. You pick whoever makes you wince.

Keep the goal and nothing happens. Miss it and the amount is owed, which you pay yourself through every.org. The app never holds money and takes no cut.

Goals can be:

  • Screen time: an app or a website under a daily limit, or a cap on how many times you open something.
  • Tasks: gym, an assignment, anything with a deadline, proved with a photo or your location.

The permissions, since this is where I'd be suspicious too:

  • Usage access: to read how long each app was in front. Android's own numbers.
  • Accessibility service: only needed for website goals. It reads which app is in front and the text of the browser's address bar. It performs no actions and doesn't block anything. While you're in an app with a goal, it shows a countdown notification and can put up Punish's own pause screen, which you can always continue past.

No blocking, and no wallet inside the app.

Android only for now, closed beta, iPhone in progress. Free to download, two goals at a time on the free tier. 17 languages.

Beta signup: punishapp.com

Happy to answer anything about how it measures or what it stores.

all 5 comments

sorted by: hot top controversial new old
[–] [B] 1 point 3 days ago

Not on the concept, but on one of the features you listed: "a cap on how many times you open something" is harder than it looks on Android, and it's worth knowing before users start reporting wrong numbers.

If you're counting with UsageStatsManager.queryEvents, ACTIVITY_RESUMED fires more often than a person would call "opening the app". It fires again when you come back from a second activity inside the same app, and on configuration changes — rotation, theme switch, font size — because the activity is recreated. Counting raw resume events overcounts, and worst for exactly the apps people want to limit, since those tend to be multi-activity.

What holds up better is tracking foreground package transitions: only count when the newly resumed package differs from the previously resumed one, and debounce a few seconds so bouncing out to a notification and straight back doesn't register as a second open.

The other thing, if you haven't hit it yet: there is no supported way for a third-party app to actually block another app. Digital Wellbeing uses privileged APIs that aren't available to us. Everything else ends up on an AccessibilityService or a draw-over overlay, and both carry real costs — accessibility use is restricted on the Play Store and needs justification, and polling the foreground app aggressively shows up in battery stats, which is its own kind of uninstall.

  • source
  • [–] 2 points 1 week ago (1 child)

    or, for people who aren't into findom, theres Defang

  • source
  • hideshow 1 child comment
  • [–] [S] 1 point 1 week ago

    Thanks for your comment. Punish is not a speed bump or a delay. The power is always in the user's hands. We aim to rewire habits by adding a mental weight the user considers twice before opening the distracting app or avoiding the thing they set out to do

  • source
  • parent
  • [–] 1 point 1 week ago* (1 child)
  • [–] [S] 1 point 1 week ago

    Hi bro, thanks for your comment. Punish is the only app where we don't touch your money. You pick an organization you hate. Personally, I found it way more motivating than just losing money. If you want to try and see how it works for you let me know

  • source
  • parent