Skip to content
Pre-alpha Open source Star it on GitHub

Your own IoT cloud.
Running on your Cloudflare account.

An open-source IoT backend that runs in your own Cloudflare account — no broker, no servers, no middleman.

One-click deploy · Single-tenant · Your data never leaves your account

Runs entirely on your Cloudflare primitives

Workers Durable Objects D1 R2 KV
Everything in one Worker

A complete IoT backend, deployed to a URL you own.

Ingest, store, visualize, control, and automate — without standing up a single server or trusting a vendor with your data.

Telemetry over plain HTTPS

Hardware POSTs JSON to your project. Variables create themselves on first sight — no schema to declare, no MQTT broker to run, no SDK to install.

Realtime dashboards, two-way

Drop widgets onto a grid, bind them to variables, and watch values update live over hibernating WebSockets that cost nothing while they sit idle.

Automations without a server

Build a visual flow: fire on variable thresholds, a clock, sunrise / sunset, or events — branch on conditions, then set variables, call an integration, or emit an event.

A clean read API

Edge-cached latest state, recent time-series, and variable listings behind one bearer token. Plug in Grafana, a React app, or a Raspberry Pi screen.

Single-tenant by design

Every deploy lands in your own account, on your own D1, R2, and Durable Objects. Email + password out of the box, with optional Google or GitHub sign-in.

MCP for AI clients

MCP server lets any client query projects, read state, and — with your explicit toggle — drive automations. Owner-gated, off by default, audit-logged.

No SDK required

Speak HTTPS, get a dashboard.

Point any client at your worker URL with a project token. Send a metric and it becomes a variable you can chart, gauge, and control — instantly. Read it back from anywhere over a plain, edge-cached REST call.

Read the full protocol
send telemetry
POST /v1/telemetry  Authorization: Bearer <token>
{ "metrics": { "temperature": 23.4, "humidity": 61 } }

→ 204 No Content  # variables auto-created
read it back
GET /v1/projects/:proj/state

 { "temperature": { "value": 23.4, "received_at": 171590… } }
From zero to live

Four steps to a running instance.

  1. 1

    Deploy in one click

    Hit Deploy to Cloudflare. It provisions D1, R2, KV, and the Worker straight into your account — nothing to host, nothing to maintain.

  2. 2

    Claim your instance

    Open the worker URL and create the first account. It becomes the owner. Spin up your first project in a couple of clicks.

  3. 3

    Connect your hardware

    Mint a project token and point your device at /v1/telemetry. Variables show up the moment data starts flowing.

  4. 4

    Build & automate

    Compose a dashboard, bind widgets to variables, and wire automations to act on the data — or hand it off through the read API.

Batteries included

Drop-in widgets, ready to bind.

Framework-agnostic Web Components that take data in and emit command intents out — embed them anywhere, not just here. The library keeps growing.

Browse the widgets
iot-value Display

Latest reading of a variable.

iot-gauge Display

Arc gauge with min / max bounds.

iot-chart Display

Multi-series time-series chart.

iot-toggle Control

On / off write to a variable.

iot-slider Control

Numeric write, committed on release.

iot-push Control

Momentary one-shot command.

nodrix

Spin up your own IoT cloud in a click.

Free, open source, and entirely yours. It's pre-alpha and moving fast — star the repo to follow along and deploy the moment it's ready.