149 karma · joined March 31, 2025
It's a screen time app/ app blocker that blocks distractions until certain programmable goals are met. For example:
- Block social media until you walk 10,000 steps
- Block Factorio until you physically go to the gym
- Block Netflix until you finish all your goals in todoist
The app is cross platform and available on everything (except Linux, which I'd like to change soon!).
Goals are all verified with real data from places such as your phone's GPS or fitness trackers. They can be programmed using a simple expression editor.
Right now I'm working on streamlining the plugin and goal system so that people can more easily write and share goals with one another!
I think we’re going to start seeing this happen more broadly across the industry. AI will get to a point where it becomes easy to clone any app or service. At that point software is no longer your moat. Your moat is going to be content, community and branding. This kind of makes me wonder if open source get even more popular. If software is no longer a moat, then you may as well release it for free and cash in on the goodwill and community.
My point here is that it is important to match the tech stack to the challenge you're facing. When I started thinking about how to solve this problem my first reaction was to design an overly complicated distributed message queue using PG Notify, Redis, Kafka or something along those lines. The key takeaway here is that I realized that I probably wouldn't end up with more than 1000 customers, so I just needed to design a system that could comfortably handle that level of traffic without much effort. If, by some miracle, my business goes crazy viral, I know that my cloud provider can probably handle up to 200,000 customers by just updating a slider in my dashboard, which is way more business than I want anyway.
Engineers love to fantasize about Google levels of scale, but that's just not realistic for a lot of services.
In the end, I decided to just go with the simplest solution possible. In my case it's just a barebones Go gRPC service that uses an in memory channel to send notifications between connected clients.
The reality is that this simple Go server will scale up to about 1000 simultaneously connected customers on about 2gb of RAM. I don't expect to have more than that many paying customers, and if I do I can always just throw a bigger VM at the problem.
Engineers love to over complicate things in the name of infinite scalability, when in reality you can save a lot of time and effort by just understanding the scope of the actual problem you're trying to solve. Fingers crossed that this will become an issue for me some day, but until then most of us just don't need to worry about it!
I assume end to end encryption would help mitigate this. Breaking E2E encryption would require a client side update that could be hard to implement if the company has already gone belly up.
One problem I personally have here is that I write code as a way to reason through and think about a problem. It's hard for me to grasp the best solution in a space until I try some things out first.
My first experience with it was a year ago and the tests it produced were so horrendously hard to maintain that I kinda gave up, but I imagine that things have gotten a lot better in the last year.
It's a cross platform productivity app that lets you block apps, websites and games until you reach a set of verifiable goals such as walking 10,000 steps, physically going to the gym or finishing all your tasks on your to-do list.
I just finished the Android version a few weeks ago!
- Github: this would allow you to set goals based on reviewing PRs, closing tickets, reading GH notifications etc.
- Homelab/Zapier/IFTTT: this would allow some kind of funny things like turning off lights or locking locks if you don't complete your goals. I don't have any smarthome stuff, so this would be hard for me to personally build.
- Notion/Obsidian/Jira/Trello
- Google/Apple Calendar: this could help people focus on meetings instead of (for example) scrolling HN
This would also be possible for desktop, since I'm using browser plugins to block websites on Desktop at the moment. I don't think that this is possible on iOS, but there may be APIs that could enable something like it that I'm not aware of. As much as I like Apple's commitment to privacy, the way that they've locked down a lot of their APIs has been a real thorn in my side for enabling some of these more advanced use cases.
I'm a former Red Hatter, so I'm all too familiar with the revenue hits a product can take when they go open source, but I have no ambition to turn this into a big business, so I think that should be acceptable (unless revenue dips to zero).