The simplest way to connect the Internet of Things.

Distributed ??? events and counting...

Listen and write events on the Arduino!

Supporting many esp8266 chipsets (such as Arduino, Particle, Wemos, NodeMCU, etc), easily listen to and send data between devices and to the cloud. Uses a light-weight UDP protocol similar to MQTT, with salsa20 cipher, and hashing to guarantee integrity.

  #include "ubsub.h"
  Ubsub client("MyUserId", "MyUserSecret");
  int myval = 0;
  void myMethod(const char* arg) {
    // Called method with argument
  void setup() {
    // Connect to wifi...
    while (!client.connect()) {
      // Attempting connect
    client.listenToTopic("testy", myMethod);
    client.publishEvent("Byg2kKB3SZ", "HJ3ytS3SW", "Hi there");
    client.watchVariable("val", &myval);
  void loop() {
    // Do whatever else you need to do
    // Need to call this to process incoming events and managed items

  #!/usr/bin/env node
  const mqtt = require('mqtt');
  const proto = 'mqtts';
  const username = 'xxx';
  const password = 'yyy';
  const host = '';
  const client = mqtt.connect(`${proto}://${username}:${password}@${host}`);
  client.on('connect', () => {
    client.subscribe(`UBSUB/${username}/SUB/device3`, () => {
      client.publish(`UBSUB/${username}/TOPIC/device3`, JSON.stringify([1, 2, 3]));
  client.on('close', () => {
  setInterval(() => {
    client.publish(`UBSUB/${username}/TOPIC/device3`, 'HI there');
  }, 5000);
  client.on('message', (topic, message) => {
    console.log(`Message from ${topic}: ${message}`);

Easily Listen and Write to MQTT

MQTT is a very popular existing protocol that targets light-weight publish/subscribe infrastructure. UbSub uses the popular Eclipse Mosquitto software to act as the broker, and bridges all messages back and forth between UbSub. This gives you the benefits of using existing libraries, while being able to leverage UbSub to easily interconnect different platforms. You can read more about how UbSub implements MQTT here.



Communicate with different protocols such as HTTP, Email, SocketIO, UDP, and MQTT. Easily connect anything to everything.

Common Language

UbSub communicates with the most common language on the internet: JSON

Many Use Cases

Because there are so many protocols, it covers a variety of use-cases such as low-power IoT devices, 3rd party platforms, web browers, or your own internal systems.

Validation & Transformation

Manipulate and validate your payload and translate it to something your subscriber understands without the hassile of managing servers.

Separate Concerns

No need to have one service need to know about another. Centralize service interaction and communication through UbSub.

Simple Data Store

Persist simple variables to keep track of state between event publications.

Cron Jobs

Schedule tasks to kick off events, check service health, or poll for data.

What are you waiting for?

(You don't even need an email to sign-up!)