Dashboard

✨ Free Plan

Messages This Month

0
of 1,000 messages

Days Remaining

30
until limit reset

Registered Projects

0
of 3 max (Free)
🔌

Relay Connection

Required for messaging to work

Checking...
â„šī¸

Configuration vs Runtime

This dashboard shows project configuration (tokens, quotas), not runtime availability. Having a valid API key does not guarantee messaging will work — both sender and recipient must be connected to the relay at runtime.

Use await client.waitForUser(recipientId) in your code to ensure recipient is available before sending.

🔑 API Keys

Generate keys for your projects. Each key is unique and can be revoked anytime.

🚀 Upgrade to Pro

Unlock unlimited messages and premium features.

✓ Unlimited messages
✓ 10 projects
✓ Priority support
✓ Custom relay server

📖 Quick Start (v2.3.0)

The SDK now auto-waits for recipients. No more timing hacks!

import { createApp } from '@stvor/sdk';

const app = await createApp({
  appToken: 'YOUR_API_KEY',
  relayUrl: 'ws://localhost:8080'
});

const alice = await app.connect('alice@example.com');
const bob = await app.connect('bob@example.com');

// Option A: Auto-wait (recommended)
await alice.send('bob@example.com', 'Hello!');

// Option B: Explicit wait (more control)
await alice.waitForUser('bob@example.com');
await alice.send('bob@example.com', 'Hello!');
View Full Documentation →