Why Rawtoh
What Rawtoh does that Zapier, IFTTT, Node-RED and Streamer.bot do not, and when another tool is the better choice.
Rawtoh is often described as "Zapier for streamers". The comparison is useful for a first glance and wrong in the details, so here is the honest version: where Rawtoh is different, and where one of the others is the right tool.
The short version
- Zapier and IFTTT connect web apps on a schedule. They cannot see OBS on your PC, and a sub that triggers a minute later is a sub nobody thanked on air.
- Node-RED is fast and local, but it is one instance for one person, with every flow sharing one process and one login.
- Streamer.bot is the closest in spirit: deep Twitch and OBS integration, instant. It lives on one Windows PC, for one operator.
- Rawtoh is a hosted, real-time event bus for a show: events are pushed, scripts are typed TypeScript, and the crew runs the Board from their own browsers.
Side by side
| Rawtoh | Zapier | IFTTT | Node-RED | Streamer.bot | |
|---|---|---|---|---|---|
| Built for | Live shows and their crews | Business apps (CRM, email, sheets) | Consumer devices and apps | IoT and home automation | One streamer, one PC |
| How events arrive | Pushed over a WebSocket held open by each module | Mostly polling, every 1 to 15 minutes depending on plan; webhooks for some apps | Polling, up to an hour on the free plan | Pushed or polled, depends on the node | Pushed, from the local process |
| Event to script | Under 10 ms | Seconds to minutes | Minutes | Milliseconds | Milliseconds |
| Bursts (a raid, 300 chat lines a second) | Queued, every event processed, none dropped | Each event is a billed task; rate limits apply | Not designed for it | Handled in-process, can stall the flow | Handled on the PC |
| Where your logic runs | Rawtoh servers, in an isolated sandbox per run | Zapier servers | IFTTT servers | Your own machine | The streaming PC |
| Reaches tools on your PC (OBS) | Yes, through a local module or a browser tab | No | No | Yes, same machine | Yes, same machine |
| Calls back into the same tool | Yes, events in and methods out on one connection | Separate trigger and action apps | One trigger, few actions | Yes | Yes |
| Logic is written as | TypeScript, typed from the modules you installed | Visual steps, plus an untyped code step | Visual applets, filter code on paid plans | Visual flows, plus function nodes | Visual sub-actions, plus C# snippets |
| Shared code between automations | Shared scripts, imported by path | — | — | Subflows | Reusable actions |
| Persistent state | Key-value storage per organization, atomic updates | Storage by Zapier, a separate app | — | Context store, per node, flow or global | Global variables |
| Burst control | Throttle and debounce on any trigger | Per-step delay and filters | — | Delay and rate-limit nodes | Per-action cooldowns |
| A control panel for the crew | The Board: buttons in any browser, each tap attributed to its user | — | Manual applets on your own phone | Dashboard, single user | Stream Deck plugin, one PC |
| Team and roles | Organizations with owner, member and viewer | Team plans | — | Single instance, shared login | Single user |
| Crash isolation | Per-run sandbox with memory, stack and time limits | Per task | Per applet | One process: a bad function node stalls the rest | One process on the PC |
| Record of what ran | Every run with its event, logs and each module call | Task history | Activity log | Debug sidebar | Logs on disk |
| Adding a new integration | Any program that opens a WebSocket, with a TypeScript or Rust SDK | Zapier developer platform | IFTTT developer platform, paid | Write a node in JavaScript | C# plugin |
| AI assistant | The Companion: reads your explorer and modules, proposes diffs, drives your tools | Copilot that builds Zaps | AI applet creation | — | — |
| Works with the internet down | No, triggers pause until Rawtoh is back | No | No | Yes | Yes |
| Keeps running with the PC off | Yes, scripts run server-side | Yes | Yes | Only if hosted elsewhere | No |
Rawtoh figures are medians measured in production. Figures for the other tools come from their public documentation and plans at the time of writing, and vary by plan.
What is actually different
Pushed, not polled
Each module holds a WebSocket open to Rawtoh and pushes events as they happen. A chat message goes through a persistent queue, a trigger condition and an action, and is back in OBS in tens of milliseconds. Zapier and IFTTT check for new data on a schedule, which is fine for an invoice and useless for a raid.
Bursts are the normal case
A raid or a hype train is hundreds of events in a few seconds. Rawtoh queues every one of them and acknowledges only once your scripts have run; nothing is dropped and nothing is billed per event. Throttle and debounce on the trigger turn fifty gifted subs into one thank-you. On a task-priced service, the same burst is a bill.
The same connection goes both ways
A module emits events and answers method calls over one socket. The OBS module reports a scene change and switches scenes; the Twitch module reports a sub and sends the thank-you; the Board reports a tap and repaints the button. There is no "trigger app" and "action app" split, and OBS on your PC is reachable through a local module that needs no inbound port.
Real code, and that is the point
Visual builders stop where their boxes stop: the moment you need a condition the box does not have, you are out. Rawtoh triggers and actions are TypeScript in a full editor, so there is no ceiling: if you can describe it, you can script it. Event payloads and module methods are typed from the manifests of the modules you installed, so autocompletion knows that a Twitch chat message has is_subscriber and that OBS wants sceneName. Shared scripts hold the code several actions have in common. A quiz with questions, scores, a board and an OBS overlay is three actions and three shared scripts, not fifty nodes.
A crew, not a user
Organizations have owners, members and viewers. The Board is a grid of buttons any of them opens in a browser; every tap is an event that carries who pressed it. Scripts run on Rawtoh, so the show keeps reacting when the streaming PC is busy or the editor is closed.
Each run in its own sandbox
Every execution gets a fresh JavaScript sandbox with memory, stack and time limits. A script that loops forever is stopped and reported; other automations never notice. In Node-RED and Streamer.bot, your code runs inside the tool's own process.
The Companion
An assistant in the sidebar that reads your explorer and your modules, writes and edits scripts as diffs you accept or reject, and can call your tools directly with your own permissions. Zapier and IFTTT have AI that builds a flow from a sentence; none of the four has one that knows the modules you actually connected.
When another tool is the right choice
- You need an app Rawtoh has no module for. Zapier and IFTTT have thousands of integrations and Node-RED thousands of nodes. Rawtoh has a handful, all built for the show. You can write your own module, but if the job is "when a row lands in Sheets, email it", Zapier is already done.
- Your needs are three fixed rules and will stay that way. A sub alert, a BRB button, a timed reminder: Streamer.bot or Node-RED wire that in an afternoon, and the power of a real script is more than the job calls for. Rawtoh starts paying off when the rules have state, exceptions and several tools in the loop, which is where visual builders run out of boxes.
- You need it to work with no internet. Rawtoh is hosted. If your connection drops, triggers pause until it is back. Node-RED and Streamer.bot keep running on the machine in front of you.
- You call arbitrary HTTP APIs from your logic. A Rawtoh script talks to modules only; there is no generic fetch. Zapier's Webhooks step and Node-RED's HTTP request node do that out of the box.
- You stream alone from one Windows PC and that is the plan. Streamer.bot is free, local, and deeply integrated with Twitch and OBS. Rawtoh still gives you typed scripts, a run history and a show that reacts with the PC asleep, but the gap is smaller.