Effortlessly add realtime
capabilities to your apps

Scaledrone is a no-fuss toolkit for real-time features like chat, updates, data sync, and collaboration, offering exceptional performance at a cost-effective price.

Go Realtime Now - It's Free!

Free for up to 20 concurrent users and 100,000 daily events

Hey! Check out the live demo. Paste the snippet into your Terminal to push a message here 👇
curl -H "Content-Type: application/json" \
   -X POST \
   -d 'Hello from Scaledrone' \
   https://api2.scaledrone.com/KtJ2qzn3CF3svSFe/notifications/publish
Copy and paste this into Terminal

What can you build with Scaledrone?

Bring your realtime apps to life with Scaledrone.

Live chat
Live chat
Create real-time chat apps with live user lists, easily integrated into your systems.
Collaboration with cursors
Collaboration
Let users engage with one another in real time.
Presence indicators, who's online
Presence indicators
Show who's online in chats, documents, games, and collaborative apps.
Realtime football results
Realtime results
Display live sports scores, stats and updates.
Realtime locations on map
Realtime location
Real-time asset tracking for delivery and logistics. Live location updates.
Activity feeds
Activity feeds
Broadcast the latest updates to connected users.
Realtime charts
Realtime charts
Real-time chart updates for stocks, crypto, and more.
Realtime gaming - scrabble
Gaming
Keep game state in sync and add multiplayer functionality to games.
"In the public safety world, Scaledrone is a literal lifesaver! They help ensure vital communications are sent real-time and with utmost reliability, significantly boosting our community-trust and outreach in critical situations."
LAIT911 Logo
Johnathan Martin
Disaster Ops, LAIT911

Scaledrone benefits

Build apps, not infrastructure
With Scaledrone, you get real-time messaging, message history, and user presence right out of the box. Focus on features, not the infrastructure.
Scale your realtime apps hassle-free
Scaling real-time infratructure can be complex, but with Scaledrone it doesn't have to be. Whether you're just starting or reaching millions of users.
Maximize efficiency, minimize costs
Entrust your real-time data to Scaledrone and reclaim countless developer hours. We handle the infrastructure, so your team can concentrate on crafting exceptional apps.

Get started in minutes

PUBLISH MESSAGES
REST
const drone = new Scaledrone('CHANNEL_ID'); drone.on('open', error => { drone.publish({ room: 'notifications', message: 'Hello from JavaScript!' }); });import Scaledrone scaledrone = Scaledrone(channelID: "your-channel-id") scaledrone.delegate = self scaledrone.connect() func scaledroneDidConnect(scaledrone: Scaledrone, error: NSError?) { scaledrone.publish(message: "Hello from Swift", room: "notifications") }final Scaledrone drone = new Scaledrone("CHANNEL_ID"); drone.connect(new Listener() { @Override public void onOpen() { drone.publish("notifications", myObject); } }const Scaledrone = require('scaledrone-node-push'); const sd = new ScaleDrone({ channelId: 'channel_id', secretKey: 'secret_key' }); sd.publish('notifications', {foo: 'bar'});import "github.com/ScaleDrone/scaledrone-go" func main() { client := scaledrone.NewBasicAuthClient("channel_id", "secret_key") _ = client.Publish([]byte("Hello Go"), "notifications") }require 'scaledrone' sd = ScaleDrone.new({ channel_id: 'channel_id', secret_key: 'secret_key' }) sd.publish({foo: 'bar'}, 'notifications')from scaledrone import ScaleDrone sd = ScaleDrone('channel_id', 'secret_key') sd.publish('notifications', {'foo': 'bar'})$auth = array( 'channel_id' => 'channel_id', 'secret_key' => 'secret_key' ); $sd = new ScaleDrone\Client($auth); $message = ['foo' => 'bar']; $sd->publish('notifications', $message);curl -H "Content-Type: application/json" \ -X POST \ -d '{"message": "Hello from ScaleDrone"}' \ https://api2.scaledrone.com/KtJ2qzn3CF3svSFe/notifications/publish
SUBSCRIBE TO MESSAGES
const drone = new Scaledrone('CHANNEL_ID'); drone.on('open', error => { const room = drone.subscribe('notifications'); room.on('data', message => { console.log('Received message', message); }); });import Scaledrone func scaledroneDidConnect(scaledrone: Scaledrone, error: NSError?) { let room = scaledrone.subscribe(roomName: "notifications") room.delegate = self } func scaledroneRoomDidReceiveMessage(room: ScaledroneRoom, message: String) { print(message) }final Scaledrone drone = new Scaledrone("CHANNEL_ID"); drone.connect(new Listener() { @Override public void onOpen() { drone.subscribe("myroom", new RoomListener() { @Override public void onMessage(Room room, JsonNode message) { System.out.println("Message: " + message.asText()); } //... } } }const Scaledrone = require('scaledrone-node'); const drone = new Scaledrone('CHANNEL_ID'); drone.on('open', error => { const room = drone.subscribe('notifications'); room.on('data', message => { console.log('Received message', message); }); });

Ready for More? Check Out These Resources

Tutorials & demos
Step-by-step tutorials on how to build real-time apps using Scaledrone
Documentation
Read documentation on how to integrate Scaledrone
Pusher logo
Looking for a Pusher alternative?
Learn why Pusher users are migrating to Scaledrone.

Simple yet powerful features

Enhanced WebSockets
Enhanced WebSockets
Scaledrone uses WebSockets where possible and seamlessly falls back to other technologies when needed.
User presence
User presence
Keep track of who's connected. Perfect for online user lists, collaboration and live maps.
Access control
Access control
Set specific access rules for each user and effortlessly integrate with your current authentication services.
Message history
Message history
Access past messages. Ideal for creating live chats, real-time dashboards, scoreboards and charts.
Debug tools
Debug tools
View users and rooms, examine their data, and send test messages for efficient debugging.
Pub/Sub messaging
Powerful Pub/Sub messaging
Send messages from server to users, user to user or user to server.
Go Realtime Now - It's Free!