I build several products on my own. AI has made it much easier to start another one, which is great until I remember how many things I already have running.
The part that bothers me is being out of the loop. I can be working on one app while another gets a new customer, stops responding, or starts costing more to host. I want to know. I don’t want to spend every break checking dashboards.
Cloud bills are a particular irritation. If I’ve bothered to set a budget warning, I want it somewhere I’ll notice it. An email I haven’t opened isn’t much help to me.
That was the starting point for Appkeepr, which I’m building: connect the services behind my apps and let the important updates reach my phone.
I can write the handler. I don’t want another project.
A webhook endpoint and a call to a notification API are straightforward enough. So are ntfy and Pushover if they fit what you need. Sending a message isn’t the hard part.
For me, the annoying work starts with the second service, or the next app. Each source has its own events. I have to decide what to forward, keep the product name attached, and look after whatever code I’ve deployed to join it all together. AI can help write that code; I still own it afterwards.
I wanted this to be a setup task I could finish and leave alone for a while.
With RevenueCat, I choose a channel in Appkeepr, paste the connection’s webhook URL into RevenueCat, and select the events I want. There’s no custom handler to deploy. The connection guide has the details if you want to try it.
Which app is this about?
A message saying someone subscribed is nice. When I’m running several products, I also need to know which one they subscribed to. Assigning the connection to a project keeps that name with the message.
These are example messages from the demo:
I’d open the checkout report first. It doesn’t tell me why checkout failed, but I know which product to investigate. I’d be happy to receive the purchase message too. Someone deciding to pay for something I made is news I care about, even when there’s nothing to fix.
Messages from the channels I subscribe to appear together in my Inbox. New messages can also reach my phone with push notifications enabled. Later, I can open the same message on the web; the read state stays in sync.
The bill keeps growing too
This is one alert I want on my phone. I want to know when cloud costs rise, even while I’m focused on another product.
Take a $50 budget warning as an example. If the provider sends it, I want to see it and decide whether that spend makes sense.
The warning won’t cap the bill. Appkeepr receives supported webhook alerts when the provider sends them, so the provider’s reporting delay still matters.
Uptime and expiry checks are a little different: those are built into Appkeepr. I add a URL to check whether a site is reachable, or a domain for domain and certificate expiry reminders. I’d otherwise need separate tools for those checks, or have to remember to do them myself.
I’d quite like renewing a domain to remain a boring job.
Leave some events off
I’d soon regret sending every event to my phone. For a subscription app, I might enable notifications for purchases and payment problems, and leave trial starts off:
The connection won’t send messages for the events I leave off. I can change that selection later. The trial numbers are still in RevenueCat when I want to look at them.
That distinction matters to me. There are plenty of things worth measuring that I don’t need to hear about individually. I’d rather start with the few updates I already go looking for and add others if I miss them.
A failed deploy and a converted trial, with the app and channel shown for each:
You can open the demo inbox and look around.
I still need dashboards and logs when something needs investigating. I just want the phone to give me a reason to open them, instead of opening them to check whether anything happened.
If you run more than one app, what do you keep checking manually?





Top comments (0)