A month ago, I submitted my app "DoNotNotify" to control Android notifications on Show HN [0], and it trended on the front page for a day. I was happy, but the most upvoted comments on the thread were asking for the app to be open sourced, since it dealt with system-wide notifications. My promises weren't good enough, and the community wanted more!
Why didn't I open source it in the first place? Linux has been by primary driver for more than a decade. I genuinely believe in the philosophy, and have always wanted to give back to the community. The primary reason, probably, was because I was ashamed that I had 90% vibe-coded the app. More than 2 decades of writing software, and my first contribution to FOSS would be AI-generated code? Would it withstand even the most minimal of scrutiny? Would by (unknown) name forever be tarnished? I exaggerate, but only slightly :)
So, yesterday, after a fair bit of trepidation, I changed the github repo visibility to public and put up a announcement on the app's website [1]. I have also submitted the app to F-Droid [2]. As before, I welcome the community's feedback and suggestions!
Appreciate the transparency about the AI-assisted development. Your concerns about code quality are valid, but you're overthinking it. We've all shipped worse code that we wrote ourselves.The real win here is that you listened to feedback and made it verifiable. That's what the privacy-conscious Android community needed. The fact that it already works well in production is a bonus.
Very proud of you for doing this! I think attitudes around vibe-coded software have been changing a lot over those past two months. Not just on a single axis of "accepted" vs. "rejected" but evolving along many axes. Thank you for helping Android users customize their digital environment.
I’m not an Android user, but props to you for taking the feedback onboard and doing this, Anuj. Lot of respect for you. In an era of eroded privacy, intrusive notifications, and enshittification you’ve done a genuinely positive and helpful thing to allow ordinary users to fight back.
And, yes, some people will criticise code quality but (a) if those people aren’t actively contributing to the product then you should ignore them, and (b) I suspect the complainers will largely be drowned out by the many who will support your decision.
You certainly aren’t the only highly experienced engineer vibe-coding their way through a problem - I’m leaning very heavily on Claude, and somewhat on ChatGPT, at the startup I’m working on at the moment.
I started doing all my projects as open source from the beginning The problem isn’t “well then they won’t pay” there tons of coders and open source users who would gladly save time and energy with paid hosted version this is what I offer potential customers that’s not even the hard part the hard part is and always will be marketing and sales and distribution
Ever since iOS introduced "reduce interruptions" mode I've been using it ever since and it's really great. It's not as customisable as this app, but I still highly recommend anything like this for those who're tired of notifications spam
I would pay a lot to have this on iPhone as I'm distracted easily due to my ADHD. iOS doesn't have as granular notification configuration as Android (topics?) plus Apple probably wouldn't agree to funnel all notification through 3rd party app.
You're right - the app sandbox model in iOS prevents inter-app communication of notifications, and there is no iOS equivalent to the Android ListenerNotificationService API.
Android 15/16 does allow you to control notifications even lower, at the level of notification category, but indeed the app must have chosen to use them.
Most apps that are in need of notification control either:
a) bundle everything in one category, from critical notifications without which the app can't fulfill its purpose to "HEY YOU HAVEN'T USED ME IN A DAY, USE ME NOW" spam
b) create a new category for spam every time they feel enough users have turned off the previous one, which is often
I assume this allows more granularity. Many apps avoid you blocking their marketing by not using the notification categories system. It's all or nothing. This app would presumably allow me to differentiate between the two if it can't be done with notification categories.
It does, but this appears to have a lot more granularity. You don't always want to block an entire app, sometimes you just want to block some of the notifications from a specific app.
The starting point is a notification from an app that you want to create a rule for. So you wait for a notification, then click on it in the "History" tab, and then you can configure the rest from there. It's slightly non-intuitive, but the reason for that flow is that the app needs the package name of the app, which almost nobody will know.
It has genuine use-cases such as this DoNotNotify app, but could easily be misused - e.g. malware intercepting a wallet OTP notification and forwarding it to the attacker.
Access to the API is controlled by a specific permission which users have to explicitly enable in "Special app access".
A month ago, I submitted my app "DoNotNotify" to control Android notifications on Show HN [0], and it trended on the front page for a day. I was happy, but the most upvoted comments on the thread were asking for the app to be open sourced, since it dealt with system-wide notifications. My promises weren't good enough, and the community wanted more!
Why didn't I open source it in the first place? Linux has been by primary driver for more than a decade. I genuinely believe in the philosophy, and have always wanted to give back to the community. The primary reason, probably, was because I was ashamed that I had 90% vibe-coded the app. More than 2 decades of writing software, and my first contribution to FOSS would be AI-generated code? Would it withstand even the most minimal of scrutiny? Would by (unknown) name forever be tarnished? I exaggerate, but only slightly :)
So, yesterday, after a fair bit of trepidation, I changed the github repo visibility to public and put up a announcement on the app's website [1]. I have also submitted the app to F-Droid [2]. As before, I welcome the community's feedback and suggestions!
[0] https://news.ycombinator.com/item?id=46499646 [1] https://donotnotify.com/opensource.html [2] https://gitlab.com/fdroid/rfp/-/issues/3569
-- Anuj Jain
Appreciate the transparency about the AI-assisted development. Your concerns about code quality are valid, but you're overthinking it. We've all shipped worse code that we wrote ourselves.The real win here is that you listened to feedback and made it verifiable. That's what the privacy-conscious Android community needed. The fact that it already works well in production is a bonus.
Very proud of you for doing this! I think attitudes around vibe-coded software have been changing a lot over those past two months. Not just on a single axis of "accepted" vs. "rejected" but evolving along many axes. Thank you for helping Android users customize their digital environment.
I would gladly pay a dollar in the official store to get this app, even knowing it can be downloaded for free from GitHub
I’m not an Android user, but props to you for taking the feedback onboard and doing this, Anuj. Lot of respect for you. In an era of eroded privacy, intrusive notifications, and enshittification you’ve done a genuinely positive and helpful thing to allow ordinary users to fight back.
And, yes, some people will criticise code quality but (a) if those people aren’t actively contributing to the product then you should ignore them, and (b) I suspect the complainers will largely be drowned out by the many who will support your decision.
You certainly aren’t the only highly experienced engineer vibe-coding their way through a problem - I’m leaning very heavily on Claude, and somewhat on ChatGPT, at the startup I’m working on at the moment.
Thank you, Anuj!
You're very kind, thank you!
Shame is a good instinct here.
I started doing all my projects as open source from the beginning The problem isn’t “well then they won’t pay” there tons of coders and open source users who would gladly save time and energy with paid hosted version this is what I offer potential customers that’s not even the hard part the hard part is and always will be marketing and sales and distribution
This isn't really a commercial project, so not much of that applies.
Ever since iOS introduced "reduce interruptions" mode I've been using it ever since and it's really great. It's not as customisable as this app, but I still highly recommend anything like this for those who're tired of notifications spam
I would pay a lot to have this on iPhone as I'm distracted easily due to my ADHD. iOS doesn't have as granular notification configuration as Android (topics?) plus Apple probably wouldn't agree to funnel all notification through 3rd party app.
You're right - the app sandbox model in iOS prevents inter-app communication of notifications, and there is no iOS equivalent to the Android ListenerNotificationService API.
Why does Android need this? Does the OS not let you control notifications?
Android does, at the level of "Allow notifications from app X" and "Block notifications from app X".
DoNotNotify gives granularity and rules (which a specific app may have chosen not to implement).
For example:
Android 15/16 does allow you to control notifications even lower, at the level of notification category, but indeed the app must have chosen to use them.
Most apps that are in need of notification control either:
a) bundle everything in one category, from critical notifications without which the app can't fulfill its purpose to "HEY YOU HAVEN'T USED ME IN A DAY, USE ME NOW" spam
b) create a new category for spam every time they feel enough users have turned off the previous one, which is often
Companies do it with email unsubscribe categories to, which is skirting laws for sure.
Yeah the problem is a lot of apps dump their ads in the wrong category if they even use categories :(
I assume this allows more granularity. Many apps avoid you blocking their marketing by not using the notification categories system. It's all or nothing. This app would presumably allow me to differentiate between the two if it can't be done with notification categories.
It does, but this appears to have a lot more granularity. You don't always want to block an entire app, sometimes you just want to block some of the notifications from a specific app.
Kudos on open-sourcing!
How do you add rules to the app?
The starting point is a notification from an app that you want to create a rule for. So you wait for a notification, then click on it in the "History" tab, and then you can configure the rest from there. It's slightly non-intuitive, but the reason for that flow is that the app needs the package name of the app, which almost nobody will know.
Great step!
I'm surprised Android has an API for one app to block notifications from other apps. I guess enjoy it while it lasts.
The NotificationListenerService.
It has genuine use-cases such as this DoNotNotify app, but could easily be misused - e.g. malware intercepting a wallet OTP notification and forwarding it to the attacker.
Access to the API is controlled by a specific permission which users have to explicitly enable in "Special app access".
https://developer.android.com/reference/android/service/noti...
Real risk of them blocking or crippling it at some point. They've nerfed a lot of useful things over time, Wi-Fi scanning being one good example.
How does it compare to https://galaxystore.samsung.com/detail/com.samsung.systemui....?