DEV Community

Cover image for App notifications without another script to maintain
omer alpi
omer alpi

Posted on AI-assisted

App notifications without another script to maintain

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.

Provider logos connect through a no-code arrow to a cropped phone showing Trial converted and API down.

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:

Two example Inbox messages: a trial converted in nastea, and feedback about a mobile checkout problem in revos.

A new customer in one app. A checkout problem in another.

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.

AWS and Cloudflare logos above a spending curve crossing an illustrative $50 alert threshold. Spending continues upward; the caption reads: Well, that scaled.

An example threshold. A warning doesn’t cap spending.

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:

RevenueCat event selection in Appkeepr: new purchases and payment problems are on; trial starts, cancellations and expirations, and subscription changes are off.

An example selection in Appkeepr’s RevenueCat connection.

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:

Appkeepr mobile Inbox demo showing a failed deployment in revos and a converted trial in nastea.

Example events in Appkeepr’s mobile Inbox.

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)