Know what's going on

when it's going on

and inform people about it

and take actions with it.

Open Source ~ Self Hosted ~ Light Weight ~ Opinionated Tool for Observability, Communication and Automation.

deltas.fyi

Log, Trace and observe what goes on inside & around your app

Logging & Trace

Debug and monitor your application with simple error tracking

try {
await processPayment()
} catch (err) {
deltas.error("Payment failed", err)
}
Available: deltas.log, deltas.info, deltas.warn, deltas.error

deltas.fyi

Track user actions and business events in real-time

deltas.fyi("user_signup", {
user_id: "usr_abc123",
plan: "premium"
})
deltas.fyi("checkout_completed", {
user_id: "usr_abc123",
amount: 49.99
})

External Webhooks

Receive webhooks from all your tools in one unified stream

GitHub
Stripe
Shopify
Clerk
WorkOS
IoT Devices

Smart Notifications

Alert channel subscribers when critical events occur

deltas.error("Database down", {
notification_channel:
"ops-team"
})
// Notifies all ops-team subscribers

deltas.email

Create beautiful email templates visually and send them programmatically

Visual Template Builder

Design email templates with a drag-and-drop interface. Use Jinja templating for dynamic content.

Template Management

Store and version your email templates. Reference them by name in your code.

Simple API

Send transactional emails with a single function call. No complex email service setup required.

Tip: Templates support Jinja syntax for loops, conditionals, and filters. Perfect for personalized content!

// Send a welcome email
deltas.email(
'user@example.com',
'welcome_template',
{
name: 'John',
signup_date: '2024-01-15',
trial_days: 14
}
)
// Batch send to multiple users
deltas.email(
['user1@', 'user2@'],
'newsletter_jan',
{ month: 'January' }
)

deltas.run

Build complex workflows visually and trigger them from your code

// Trigger user onboarding workflow
deltas.run(
'user_onboarding',
{
user_id: '12345',
plan: 'premium',
trial_end: '2024-02-01'
}
)
// Order fulfillment pipeline
deltas.run(
'order_fulfillment',
{
order_id: 'ORD-789',
warehouse: 'US-WEST',
priority: 'express'
}
)

Visual Workflow Builder

Design multi-step workflows with a node-based editor. Connect actions, add conditions, and handle errors visually.

Pre-built Actions

Send emails, make API calls, update databases, trigger webhooks, and more. Use your own custom actions too.

Monitor & Debug

Track workflow executions in real-time. See which step failed and why. Retry failed runs with a click.

Powerful: Chain multiple actions, add conditional logic, delays, and error handling—all without writing code.