Private beta · Free · iPhone
Notifications from your code, straight to your phone.
Send one HTTP request from a cron job, a deploy or your home server. PeskyBird puts it on your iPhone in seconds and keeps the history, even if your phone was offline.
We approve people in small batches. Once you're approved, the same button signs you in.
curl -H "Authorization: Bearer pba_…" \
-H "Title: Backup finished" \
-d "Nightly backup completed in 4 min" \
https://peskybird.app/api/push/topics/backupsSend your first message in three steps
No servers to run and no SDK to install. If it can make an HTTP request, it can send to your phone.
Pair your iPhone
Install the PeskyBird app and scan the code on your dashboard. Your phone shows up in your device list a few seconds later.
Create an app token
Give each script or service its own token, limited to the topics it may send to. Revoke one without touching the others.
Send a message
POST to a topic. The body is the message; headers set the title, priority and a link to open.
Works with whatever already runs your jobs
Shell scripts, CI pipelines and app servers all send the same way.
A cron job
PESKYBIRD_TOKEN=pba_…
0 3 * * * /usr/local/bin/backup.sh && curl -s -H "Authorization: Bearer $PESKYBIRD_TOKEN" -d "Nightly backup completed" https://peskybird.app/api/push/topics/backupsA deploy pipeline
- name: Notify on staging
run: |
curl -s -H "Authorization: Bearer ${{ secrets.PESKYBIRD_TOKEN }}" \
-H "Title: Deploy staged" \
-H "Priority: high" \
-d "web $VERSION is staged on 3 instances" \
https://peskybird.app/api/push/topics/deploysYour app's server
await fetch("https://peskybird.app/api/push/topics/orders", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PESKYBIRD_TOKEN}`,
Title: "New order",
},
body: "Order #1042 · 2 items · $86.00",
});More than a line of text
Every message lands in an inbox on your phone, grouped by topic, with everything it was sent with.
Topics you choose
Subscribe your phone to the topics you care about and mute the rest. Notifications from one topic stack together on the lock screen.
Priorities that respect Focus
Low-priority messages arrive quietly. High priority is time-sensitive and can break through a Focus you allow it to.
Buttons and links
Add up to four buttons to a message, each opening a link, and a link that opens when you tap the message.
Formatting
Write the message in Markdown. The lock screen shows clean text; the app shows the full message, with emphasis and links.
History that catches up
If your phone was in airplane mode, it gets every message in order when it comes back. Your dashboard shows what was delivered to which device.
Every phone in your account
Pair up to 3 iPhones. Rename them, see when they were last seen, and remove one if it is lost.
Your messages are yours
Server alerts can say a lot about your systems. Here is exactly how we handle them.
Encrypted at rest with a key per account
Message titles, bodies, links and data are stored encrypted with a key that belongs to your account alone.
Delete your account, and its key goes with it
Once the key is deleted, your stored messages can no longer be read. Backups expire within 7 days, and nothing of the account remains after that.
History is kept for 30 days
Messages are removed from our servers after 30 days. Your phone keeps its own copy until you delete it.
What Apple sees
Notifications reach your iPhone through Apple's push service, which carries the title and text shown on your lock screen.
About the private beta
We are letting people in a few at a time while we make sure delivery is fast and reliable.
- What does it cost?
- Nothing during the beta. Each account can send up to 500 messages a day to 3 devices.
- How do I get the app?
- Through TestFlight during the beta. Once you're approved, your dashboard links to it.
- Is there an Android app?
- Not yet. PeskyBird is iPhone only for now.
- Can I run it on my own server?
- Not as part of the beta.