Telesink Ruby SDK
Telesink is built in Ruby on Rails, so the first official SDK had to be
Ruby. It’s now here: the
telesink gem.
It is deliberately tiny, has zero runtime dependencies (except
logger), and gets out of your way. You install it, set one
environment variable, and start sending events.
Installation
Add this line to your Gemfile:
gem "telesink"
Then run:
bundle install
Configuration
The SDK is configured entirely through environment variables. No classes, no blocks, no YAML.
Set your sink endpoint:
export TELESINK_ENDPOINT=https://app.telesink.com/api/v1/sinks/your_sink_token_here/events
For self-hosted instances, just change the URL to point at your own server.
To disable tracking (for example in tests or local development):
export TELESINK_DISABLED=true
Usage
Telesink.track(
event: "user.signed.up",
text: "[email protected]",
emoji: "👤",
properties: {
plan: "pro",
source: "landing_page",
user_id: 123,
email_address: "[email protected]"
},
occurred_at: Time.now, # optional, defaults to now
idempotency_key: "my-key" # optional, UUID generated if omitted
)
The method returns true if the event was sent successfully and
false otherwise (disabled, missing endpoint, or network error).
It will never raise exceptions — any errors are logged to
STDERR and the call fails silently so your app stays happy.
What’s under the hood
The entire gem is ~60 lines of plain Ruby using only the standard library. It:
- adds an
Idempotency-Keyheader automatically - tags every payload with
sdk: { name: "telesink.ruby", version: "..." } - times out after 3 seconds
- works with both the hosted version and any self-hosted instance
Next steps
Ruby was the obvious first language. I’ll be shipping official SDKs for JavaScript, Node.js, Python, Go, and PHP next — let me know on X which one you want first.
The complete source is at github.com/telesink/telesink-ruby. It’s MIT licensed, obviously.
Now go connect your app and watch events appear instantly in your Telesink feed.
Follow along on X at @kyrylo.