Push Alerts. Zero Friction.

No SMTP or DNS setup. No Login. No Tracking. Anonymous push notifications to multiple devices with a single HTTP POST or MQTT request.

Download APK
import requests

url = "https://alertify.while0x1.com/send-alert"
payload = {
    "projectId": "your_project_id",
    "title": "SCADA Warning",
    "message": "Pump station 4 pressure drop detected.",
    "severity": "critical" #info, warning or critical
}
headers = { "X-User-Id": "your_device_id" }

response = requests.post(url, json=payload, headers=headers)
print(response.json())
import paho.mqtt.client as mqtt
import json

# Connect to the Industrial Broker
client = mqtt.Client(client_id="industrial_gateway_01")
client.username_pw_set("your_project_id", "your_app_id_key")

client.connect("alertify.while0x1.com", 1883)

# Send Structured JSON or Raw Strings
topic = "alertify/project/your_project_id"
payload = json.dumps({"title": "Tank 1", "message": "High Level","severity": "warning"})

client.publish(topic, payload)
client.disconnect()
import uuid
import json
import datetime
import paho.mqtt.client as mqtt

# use port 1883 for TCP MQTT messages
# 1883 is UNENCRYPTED so your ID/Password is vulnerable
# Remove client.tls_set() for 1883 comms
# Remove transport="websockets" from the mqtt.Client for 1883 comms
# use PORT 443 for TLS encrypted MQTT connections
# NGINX reverse proxy will intercept all 443 traffic for TLS

PROJECT_ID = "YOUR_PROJECT_ID"
USER_ID = "YOUR_USER_ID"
MQTT_BROKER = "mqtt.while0x1.com"
MQTT_PORT = 443

UID = str(uuid.uuid4())
VALUE = 42 # Example sensor value

payload = {
  "uid": UID,
  "name": "Main Water Pump",
  "value": VALUE,
  "timestamp": datetime.datetime.now().strftime("%H:%M:%S %y-%m-%d"),
  "status": "Running smoothly"
}

TOPIC = f"alertify/project/{PROJECT_ID}/live"

def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("✅ Connected to Alertify Broker")
        # Test 1: JSON Payload
        json_payload = json.dumps(payload)
        client.publish(TOPIC, json_payload)
        print(f"🚀 JSON Alert Sent to {TOPIC}")
    else:
        print(f"❌ Connection failed with code {rc}")

client = mqtt.Client(transport="websockets", client_id="python_test_runner")
client.username_pw_set(PROJECT_ID, USER_ID)
client.on_connect = on_connect

client.tls_set()
print(f"Connecting to {MQTT_BROKER}...")

client.connect(MQTT_BROKER, MQTT_PORT, 60)
try:
    client.loop_forever()
except KeyboardInterrupt:
    print('Disconnecting from MQTT broker')
    client.disconnect()
import paho.mqtt.client as mqtt
import json

# Configuration
USER_ID = "YOUR_USER_ID"
PROJECT_ID = "YOUR_PROJECT_ID"
HOST = "mqtt.while0x1.com"

def on_connect(client, userdata, flags, rc):
    print(f"Connected with result code {rc}")
    # Subscribe to the live topic
    client.subscribe(f"alertify/project/{PROJECT_ID}/cmd")

def on_message(client, userdata, message):
    payload = message.payload.decode("utf-8")
    print(f"\n[⬇️  INCOMING MQTT] Topic: {message.topic}")

    try:
        data = json.loads(payload)
        uid = data.get("uid")

        if uid == "manual_trigger":
            value = data.get("value")
            print("=" * 60)
            print(" 🚨 AUTHORIZED OVERRIDE COMMAND RECEIVED FROM MOBILE APP 🚨")
            print("=" * 60)
            print(f" Target Element : {uid}")
            print(f" Command Value  : {value}")
            if value == 1:
                print(" Action         : ENGAGING RELAYS... SUCCESS.")
            else:
                print(" Action         : DISENGAGING RELAYS... SUCCESS.")
            print("=" * 60)
        else:
            print(f"   [System] Ignored payload for uid: {uid}")

    except json.JSONDecodeError:
        print(f"   [Warning] Received non-JSON payload: {payload}")

# --- MAIN EXECUTION ---
print("🚀 Starting Edge Device Listener...")

client = mqtt.Client(transport="websockets")
client.username_pw_set(PROJECT_ID, USER_ID)
client.on_connect = on_connect
client.on_message = on_message

client.tls_set()
client.connect(HOST, 443, 60)
try:
    client.loop_forever()
except KeyboardInterrupt:
    print("\n🛑 Disconnecting...")
    client.disconnect()
curl -X POST "https://alertify.while0x1.com/send-alert" \
     -H "Content-Type: application/json" \
     -H "X-User-Id: your_device_id" \
     -d '{
           "projectId": "your_project_id",
           "title": "Terminal Alert",
           "message": "Manual trigger from cURL",
           "severity": "critical" 
         }'
import (
    "bytes"
    "net/http"
)

func main() {
    url := "https://alertify.while0x1.com/send-alert"
    jsonStr := []byte(`{"projectId":"your_project_id", "title":"SCADA Warning", "message":"Pump station 4..."}`)
    
    req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr))
    req.Header.Set("X-User-Id", "your_device_id")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    client.Do(req)
}
const response = await fetch('https://alertify.while0x1.com/send-alert', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-User-Id': 'your_device_id'
  },
  body: JSON.stringify({
    projectId: 'your_project_id',
    title: 'SCADA Warning',
    message: 'Pump station 4 pressure drop detected.'
  })
});

Why use n+1 Alerts

Traditional alert services require complex setup, logins, and configurations. n+1 Alerts is built for engineers who want reliable notifications with zero friction.

IoT & SCADA Monitoring Perfect for sensor monitoring, SCADA, and homelabs. If it can run curl, it can send an alert.
MQTT Triggered Alerts and Publish/Subscribe Functions Connect PLCs and IoT hardware directly without middle-ware. Supports Raw String payloads for legacy systems and JSON for modern sensors. Get live data feeds by subscribing to topics and remote control by publishing from your phone.
No Data Tracing No emails, no phone numbers, no login screens.
One-to-Many Project Broadcasts A single HTTP POST maps to a project, not just a single phone.
Pain Free Setup Download the app, grab your ID, and trigger your first alert in moments.

Direct MQTT Alerts

Universal Connectivity for the Modern Grid

Integrate your industrial hardware with mobile push notifications in seconds. Our Universal Ingest Pipeline supports everything from high-end IoT sensors to legacy PLC systems without middle-ware.


Flexible Payload Support

JSON Objects Ideal for modern edge devices. Send structured data for custom titles. {"title": "Pump 1", "message": "Vibration detected"}
Raw Strings Perfect for legacy PLCs and SCADA systems. Trigger alerts with simple text. Critical Temperature Warning

Industrial-Grade Security

  • Encrypted Transport: Full TLS/SSL support for secure factory-to-cloud transmission.
  • Granular Auth: Isolated projects via Project UUID and Security Key via EMQX.
  • Zero-Trace: Minimal metadata footprint to prioritize data privacy.
Technical Specs for Developers
Protocol MQTT v3.1.1 / v5.0
Auth Project ID / API Key
Topic Path alertify/project/{project_id}
Max Payload 64 KB
Delivery Firebase Cloud Messaging (High Priority)

Hacker

$0/mo

Perfect for local testing and personal IoT projects.

Download the app to begin.

POPULAR

Pro

$5.99 AUD/mo

For heavy data logging and high-frequency alerts.