Notifier @ icy

Your free notification endpoint...

Send a POST request and get notified instantly using the Web Push API without having to deal with authentication.
Scan the code to register

Notes:

Only tested on the lastest versions of Chrome, Android Chrome and Firefox, so it might have problems in other browsers. Please report on twitter @AndreBaltazar if you find any problem.

Right now there is a limit of 5 registered workers per endpoint to avoid spam. There is also a limit of 2 notification per minute on each endpoint. Notifications sent when rate limited will be discarded, not queued. This project was created to notify me of internal errors with my website. Please don't abuse this system or I will shut it down. Also, I might send you a notification thanking you for using this project, or an update regarding it's state. Hope you enjoy, thanks.

It's quite inefficient at the moment, it registers a service worker for each endpoint. In the future a single service worker will be used for all events.

If there is any interest, I might do private endpoints that require a key to notify and without limits.

Try using cURL

curl -X POST https://notifier.icy.pt/K3uGBCTUzP9Yy6_ntGutVkg6PfKGB8lL-1t7K-XZmxE

Try using cURL with message

curl -d "title=Hello+from+notifier.icy.pt&body=Example+notification" -X POST https://notifier.icy.pt/K3uGBCTUzP9Yy6_ntGutVkg6PfKGB8lL-1t7K-XZmxE

Try using cURL with custom title, message, logo, and url (when clicked) using JSON

curl -d '{"title":"icy.pt","body":"Visit my website and explore other projects!","url":"https://icy.pt/","icon":"https://icy.pt/icy-logo.png"}' -H "Content-Type: application/json" -X POST https://notifier.icy.pt/K3uGBCTUzP9Yy6_ntGutVkg6PfKGB8lL-1t7K-XZmxE

Try with PHP

<?php
file_get_contents('https://notifier.icy.pt/K3uGBCTUzP9Yy6_ntGutVkg6PfKGB8lL-1t7K-XZmxE', false, stream_context_create(['http' => ['method' => 'POST']]));

Try with PHP with custom title, message, logo, and url (when clicked) using JSON

<?php
file_get_contents('https://notifier.icy.pt/K3uGBCTUzP9Yy6_ntGutVkg6PfKGB8lL-1t7K-XZmxE', false, stream_context_create(['http' => ['method' => 'POST', 'header'  => 'Content-type: application/json', 'content' => '{"title":"icy.pt","body":"Visit my website and explore other projects!","url":"https://icy.pt/","icon":"https://icy.pt/icy-logo.png"}']]));

Try with JS with everything using JSON

fetch('https://notifier.icy.pt/K3uGBCTUzP9Yy6_ntGutVkg6PfKGB8lL-1t7K-XZmxE', {
    method: 'POST',
    body: JSON.stringify({
        'title': 'Notifier @ icy',
        'body': 'Thanks for trying the notifications!',
        'icon': '/images/notifier-logo.png',
        'url': 'https://notifier.icy.pt/',
        'badge': '/images/notifier-logo-96-bw.png',
        'image': '/images/notifier-thanks.png',
        'vibrate': [200, 100, 200, 100, 200, 100, 400],
        'requireInteraction': true,
        'actions': {
            'website': {
                'title': 'Visit my website',
                'icon': 'https://icy.pt/icy-logo-96-bw.png',
                'url': 'https://icy.pt/'
            },
            'twitter': {
                'title': 'Follow me on Twitter @AndreBaltazar',
                'icon': '/images/twitter-bw.png',
                'url': 'https://twitter.com/AndreBaltazar'
            }
        }
    }),
    headers: new Headers({
        'Content-Type': 'application/json'
    })
});