Yesterday evening I threw together a landing page for a side project to my other side projects:

https://brrr.now

It’s a tiny and opinionated tool for sending push notifications. No sign up. No message history. No dashboard.

I like it. Would you? 😄

brrr

Push notifications for yourself. iOS and macOS.

brrr
brrr’s onboarding flow is virtually nonexistent because I don’t think it needs to be any more complicated than this.
brrr is so simple. Its killer feature is everything that’s not there.
Come on, Apple. Let's get this on TestFlight.
One down, one to go.
Two for two.

If I am to release brrr, then I’ll need to come up with a pricing strategy. Even if it’s a simple app, I’ll need to ensure that I cover my costs and ideally earn just a little. Choosing a strategy is difficult, though.

Current ideas include:

- First N pushes are free, then $X for 1,000 pushes.
- First month is free, then $X/year.
- One device is free. $X/year for multiple devices.

A tip jar and one-time purchase seem risky for an app with hosting costs.

Honestly, I'm leaning towards the first month being free and then charging something like $6.99/year. No monthly option. It’s a pricing model that’s as simple as the app, and a price point where I think most people who’d use it won’t mind too much. Or so I hope.
A colleague convinced me that I needed to add an additional feature to brrr. Tapping a notification should show it in the app to prevent accidental taps and missing the notification.

When people try to send pushes without an active subscription, I could just return an error, but I feel like I should also do something more fun.

Like, I could send a push saying people need to start a subscription or scramble the text in the notification.

But I fear that any such notification might be sufficient for some users to deduce why they would have otherwise received the notification 😄

Maybe I should take a page out of Festivitas’ book and have people name a fair price, but this time use it for a subscription instead of a one-time IAP 🤔

Do you want to help me test brrr? 👇

https://testflight.apple.com/join/55qZ7dRn

Learn more about the project on https://brrr.now

Join the brrr • just push notifications beta

Available on iOS

Squashed a few bugs and did some improvements based on the amazing feedback I’ve already received. New builds coming later today or tomorrow. Thanks a lot for the reports, everyone. Keep ‘em coming 🫶
Sending your first push with brrr couldn’t be easier.
ROCKETS 🚀

brrr’s site has a little notification composer now. You can use it to send notifications to yourself.

It also shows the JSON and the cURL command that can be used to send the notification.

https://brrr.now/docs/#send-test-notification

I've made some changes to brrr's backend over the weekend that should make the experience generally faster. In particular, the HTTP call to send a push notification should be much faster now.
A coworker just showed how he uses brrr to get a notification on his iPhone when Claude is waiting for his input using Claude's hooks. I'm wondering if I should provide a brrr CLI to cater to this use case 🤔

This is a super-duper early take on having Codex or Claude send a notification when it's waiting for input using brrr.

Try it if you're feeling adventurous. I hope to polish it over the next few days.

https://github.com/simonbs/brrr-cli

GitHub - simonbs/brrr-cli: Notifications for agent CLIs using brrr.now

Notifications for agent CLIs using brrr.now. Contribute to simonbs/brrr-cli development by creating an account on GitHub.

GitHub

Brrr doesn’t store anything about your notifications. No history. No metadata. No analytics events.

It does, however, store a single counter. One integer. It increments every time a notification is sent. That’s it. No timestamps. No user info. Just a number that tells me the service is being used.

It’s not like there’s a MASSIVE load, but I have to admit, it has been pretty satisfying watching that number tick up over the weekend.

We just passed 1,500 notifications sent.

So many people are already asking for brrr to show historical notifications that I might need to find a way to support this.

It’ll have to be local, though, as I really don’t want to store the content of people’s notifications.

Notification support is so bad on macOS that I fear this will be a pain in the…

Huh, verifying Apple's JWS in a Cloudflare Worker is going to be tricky (see link). Maybe it's time I give RevenueCat a try?

https://github.com/cloudflare/workerd/issues/2768

🐛 Bug Report — Runtime APIs node:crypto 'Unrecognized or unimplemented EC curve "id-ecPublicKey" requested.' · Issue #2768 · cloudflare/workerd

Unrecognized or unimplemented EC curve \"id-ecPublicKey\" requested when use crypto with compatibility_flags = ["nodejs_compat_v2"] & wrangler v3.78.7. Here is the error source: https://github.com/...

GitHub

I just really wanted to use Apple's new-ish SubscriptionStoreView in the app. I'm a fan of such a page being somewhat standardized, so I don't need RevenueCat's paywalls. I don't need their insights either.

https://developer.apple.com/documentation/storekit/subscriptionstoreview

Ultimately, I just need someone to verify a JWS for me. I could set up a separate service for this, but it gets unwieldy, and maybe I'm better off with RevenueCat then?

SubscriptionStoreView | Apple Developer Documentation

A view that merchandises a collection of auto-renewable subscription options that belong to the same subscription group.

Apple Developer Documentation
The monetization story of brrr is starting to come together.
Spent a bit of time last evening making brrr feel more at home on the Mac without sacrificing too much of its personality. I think this is starting to feel like a good balance.

I spent some time this weekend thinking about how brrr can support a notification history, by far the most requested feature, without compromising simplicity, privacy, or cluttering the app.

This is what I came up with:

- Local only
- Automatically deleted
- Hidden behind an anonymous button

I think this fits quite well into brrr.

Recent Notifications is now available on TestFlight along worh brrr’s subscription page and a redesigned iPad and Mac app.

I don’t think it’ll be long until I can release this 🤗

Starting to scope creep in brrr. I mean, do anyone even use Focus Filters?

Here’s a demo of brrr’s Focus.

You set up a filter in your Focus with a custom criterion, for example work. Any notification that includes this criterion in the JSON payload will be allowed through.

The notification history in the app is filtered to match the Focus too.

This way, you’re entirely in control of which notifications are allowed through.

I don’t use Focus much myself, so I’d love to hear from people who do whether something like this would work for them.

When sending your notification, you just set 'filter-criteria’ with the same value as defined in your Focus mode.

This is now documented here: https://brrr.now/docs/

@simonbs This is a fantastic addition! Easily allows you to setup certain notifications to punch through a focus mode
@simonbs yes! I wish more apps supported them. I really wish Slack supported them, for example.

@simonbs Yes!

But not all things must be in a 1.0 release

@simonbs yes, though continuously frustrated by how inconsistent implementation is. Even within Apple’s apps.

Always welcome more apps supporting Focus filters! While not required, apps that support them tend to stay on my device longer.

@simonbs Yes, I especially use a nighttime filter while sleeping. I don’t want brrr to make any sounds if a backup completes successfully. PROD down? Oh hell yeah.
@simonbs I would if more apps supported them!
@simonbs Absolutely yes.
@simonbs Yes! I have work focus automatically enable and disable when I'm at the office.
@simonbs maybe an option to allow users to export it if they wish to keep it would be great as well

@simonbs Sounds like I really need to script a test for Brrr, and put all the various field combinations to the test to ensure it works persistently.

Also, Cloudflare Radar confirms brrr.now classification has now changed to Technology; took effect 28/02.

@simonbs So roughly $0.99/month US or $10/yr? Not bad at all!
@billyadams I’m hoping that I can keep it around that price.
@simonbs that’s a lovely wallpaper!
@jackminehan Thanks! It’s a photo I shot a few meters outside my home a couple of years ago.
@simonbs sending a notification to users that their subscription expired…except they actually sent it to themselves. Brilliant.
@simonbs do you need the information from the JWS on your backend? Otherwise, you should be able to figure out the user’s entitlements locally using `VerificationResult.verified`?
@kristoffer I need to verify on my backend that the user has a subscription, so I need to trust the data that the client sends.
@simonbs You could skip that and just call GetTransactionInfo and GetTransactionHistory endpoints from the backend with the transaction ID you received.
@simonbs it’s a really great app - I’m testing it on my RPi that’s to my Forgejo instance, laptop where Homebridge and Tailscale exit node reside, and a Hetzner VPS for when any of the computers/VPS reboot successfully and when a Forgejo workflow runs or fails.
@jasonm That’s a great use case!
@simonbs could you make the app stores historical notifications? Then clears after x duration? I tend to forget what notification I saw and couldn’t review it later.

@simonbs I found this tool this morning that sends local notification on Windows. And it has agents detection built-in to hook into them to send notification when waiting for user input. So, feels like a great features to have.

https://github.com/shanselman/toasty

@simonbs ah it's not local. it uses a brrr competitor😬
@loicwolff Thanks, that's great for inspiration!
@simonbs That would be nice. That's the first thing I set it up to do
@johnvoorhees Maybe this setup is more common than I thought. It's in an early state, but this should make it (somewhat) straightforward to setup with brrr: https://github.com/simonbs/brrr-cli
GitHub - simonbs/brrr-cli: Notifications for agent CLIs using brrr.now

Notifications for agent CLIs using brrr.now. Contribute to simonbs/brrr-cli development by creating an account on GitHub.

GitHub
@simonbs I’ve used noti before to watch a process and send me a notification. Maybe brrr could be added to it? https://github.com/variadico/noti
@simonbs I sent a bug report via TestFlight, is that ok or do you want it here instead?
@j TestFlight is perfect, thanks! I’m checking there too 🤗
@simonbs 1. pull to refresh doesn’t actually work when you haven’t registered yet 2. would be very cool to have a button to trigger a test notification from the app, IMO

@kylebshr Huh, that’s odd. I’ll have a look.

Good idea with a button to trigger a notification!

@simonbs I don’t think it’s odd, it’s because I never registered the device/enabled push. Should say something similar to the card above
@kylebshr Ah, now I get it. Agreed. That could be better.
@simonbs I think ”Copy URL“ instead of ”Copy link“ would work a lot better here. It‘s not really a link, it‘s the URL part of the command. The wording confused me.
@simonbs And maybe even change the other button label to ”Copy Call“, to reinforce the naming introduced above (”using the API call below“)