Tech Talk: Smoke Signal Turns One
ATProto Tech Talk, July 24th, 2025: Smoke Signal developer Nick Gerakines returns to give an update on where the events & RSVP platform is at, a year after he launched. Written in Rust, open source, and a ton of features.

It's been a while since we've done a Tech Talk, and we're going to celebrate the Smoke Signal re-launch, open sourcing, and 1 year anniversary.
Nick was the second Tech Talk guest back in September 2024. The chatlog on that post is great, the Bluesky devs came to all the early tech talks before they got slammed by site growth.
Some of the changes and topics we'll cover:
- the Smoke Signal codebase has been re-written, re-vamped, and open sourced - on ATProto git hosting tangled of course!
- A Discourse forum for users & devs, linked with AIP so you can login with your ATProto account
- hosting your own Smoke Signal
- badges showcase and signed records with gnosco
- webhooks that work with ATProto's XRPC
And many more things, some of which Nick is still hacking on right now!
Register to join us on Smoke Signal
We're going to be experimenting with going to Smoke Signal directly for events, so lots of new things going on.
We're still going to be using Zoom, which we'll be sending out via email rather than sharing the link publicly, so make sure to share your email when you RSVP.
And yes, this is the new HTML Event Widget, although even since that widget was created, Nick also has a new search widget that is powering the Calendar page here.
If you're interested in using or extending Smoke Signal, have bugs, feature requests, or just jam with other organizers, users, and devs, head over to the new Smoke Signal Discourse forum:

Nick and Smoke Signal were one of the first recipients of a Bluesky Microgrant last year. As part of the AT Community Fund Open Collective, you can help support & sponsor basic costs for the core instance, appview, and related infrastructure.
Thank you to all of the current contributors supporting Smoke Signal on Open Collective!
Video & Resources
Presentation slides:
Chatlog
00:14:20 Ricardo: Hey folks.
00:14:29 Boris Mann: Hey Ricardo, welcome
00:14:32 Laurens Hof: Hey all
00:15:12 Bryan Newbold: 👋
00:15:25 James Walker (@walkah): Reacted to "👋" with 👋
00:15:29 Laurens Hof: Reacted to "👋" with 👋
00:16:33 Henry Wilkinson: Screen sharing gone?
00:16:35 Ted Han: Not notable yet
00:16:40 Victoria: Reacted to "Screen sharing gone?" with 👍
00:17:02 Ricardo: On the other hand, we saw the WIP full sleeve.
00:19:09 Laurens Hof: Sick list lol
00:21:03 James Walker (@walkah): Reacted to "Sick list lol" with 💯
00:21:26 Victoria: and the screen is gone again
00:22:10 autumn: wait is oidc part of aip?
00:22:13 Henry Wilkinson: Replying to "and the screen is go..."
I assume it goes away if he tabs out of the presentation and has to resume it because only the window is shared?
00:22:37 Henry Wilkinson: Replying to "and the screen is go..."
oh maybe I’m wrong… looks like the whole screen to me
00:23:25 Boris Mann: @Sebastians iPhone 15 Pro I looked it up and you didn’t give your email address
00:23:50 Boris Mann: Replying to "@Sebastians iPhone 1..."
@Ricardo same with you, but I replied publicly with the ATProtoDev account
00:24:15 Boris Mann: https://tangled.sh/@smokesignal.events/localdev
00:24:20 James Walker (@walkah): Reacted to "https://tangled.sh/@..." with 🔥
00:24:27 Henry Wilkinson: Reacted to "https://tangled.sh/@..." with ❤️
00:25:04 Ted Han: Replying to "wait is oidc part of..."
Yep! AIP lets you set up an OIDC provider that lets you auth via PDS oAuth.
00:25:44 Ricardo: fwiw, if anyone’s going to try, getting the tailscale thing as a first-timer is non-trivial, particularly if one is running on a VPN.
00:26:05 Boris Mann: Replying to "https://tangled.sh/@..."
@Gautam here’s localdev
00:30:28 Ezra Boeth: I've had success with Jitsi!
00:30:55 Psingletary.com: We just need to convince Eli that Streamplace 2.0 is video conferencing
00:30:58 Boris Mann: Replying to "I've had success wit..."
I have not above 8 people
00:32:27 Victoria: Reacted to "We just need to conv..." with 🤔
00:32:33 Psingletary.com: I would sponsor several people to attend that master class
00:32:38 Boris Mann: A simple matter of understanding!
00:32:58 Boris Mann: MCP also implements “new OAuth”
00:33:23 Boris Mann: Rumour has it that a “few” person hours of dev time of the bsky team went into OAuth
00:33:32 pinkhatbeard: For real, I'd donate $20 to attend a class on just getting started with AT Proto in general.
00:34:07 Ezra Boeth: Reacted to "For real, I'd donate..." with 👍
00:34:59 Victoria: Reacted to "For real, I'd donate..." with 👍
00:35:18 Boris Mann: https://smokesignal.events/oauth/login
00:35:51 James Walker (@walkah): Reacted to "For real, I'd donate..." with 👀
00:39:11 minbash: does AI create any future licensing issues ?
00:39:20 Pete Kaminski: I've really enjoyed working with Claude Code.
00:39:45 Boris Mann: Replying to "https://smokesignal...."
Basically, instead of logging in, you can enter a URL here of a PDS https://bsky.social, and it will flow into a create new account
00:40:01 Psingletary.com: Replying to "For real, I'd dona..."
There is a , right now, conversation about a fun advent of code
00:40:04 Boris Mann: Replying to "https://smokesignal...."
From a UI perspective, you could also have a button that says “Create new account” with some PDS
00:41:04 Boris Mann: CLAUDE.md file https://tangled.sh/@smokesignal.events/smokesignal/blob/main/CLAUDE.md
00:42:08 James Walker (@walkah): Welcome to the being haunted by something Boris said offhand in a conversation club
00:42:20 Henry Wilkinson: Reacted to "Welcome to the being..." with 🙃
00:42:20 Ted Han: Reacted to "Welcome to the being..." with 😂
00:42:23 Gautam: Reacted to "Welcome to the being..." with ❤️
00:42:36 Ted Han: Reacted to "Welcome to the being..." with 👻
00:43:51 Boris Mann: Reacted to "Welcome to the being..." with 😂
00:46:25 autumn: am i missing something wait do these webhooks overlap with jetstream? you can get info from record update events
00:48:32 autumn: is it written up anywhere?
00:48:43 Ted Han: https://bsky.app/profile/smokesignal.events/post/3lugrsnmsyk2e
00:48:58 Boris Mann: Replying to "https://bsky.app/pro..."
https://blog.smokesignal.events/posts/3luduqmekg52a-xrpc-webhooks-protocol-adjacent-event-streams
00:49:25 Boris Mann: Replying to "https://bsky.app/pro..."
RSVP here to test https://smokesignal.events/did:plc:tgudj2fjm77pzkuawquqhsxm/3kxbvxj7blk2t
00:49:42 Boris Mann: Replying to "https://bsky.app/pro..."
You need to check “share my email address”
00:51:05 Psingletary.com: Good OPSec
00:53:23 Ted Han: Check out the ATProto Touchers discord to find out more about ATGeo and the gazetteer efforts!
00:53:44 Morgaine (de la faye): Would love for the atproto account to share some of that geo stuff; didn't know about that effort.
00:53:54 Morgaine (de la faye): Reacted to Check out the ATProt... with "👍"
00:54:02 Ezra Boeth: Reacted to "Check out the ATProt..." with 👍
00:54:04 Ted Han: Reacted to "Would love for the a..." with 👍
00:54:39 Boris Mann: Replying to "Would love for the a..."
It has / it did, but we haven’t had new stuff to share until just now
00:54:56 glenn: Reacted to "Check out the ATProt..." with 👍
00:55:06 Boris Mann: Replying to "Would love for the a..."
March kick off https://atprotocol.dev/location-data-on-at-protocol-the-second-community-fund-project/
00:55:46 Henry Wilkinson: Reacted to "March kick off https..." with 👀
00:56:27 Morgaine (de la faye): Love that self limiting AppView nick!
00:58:10 Boris Mann: I had a very interesting discussion with an at scale AI user for a big enterprise
00:58:27 Boris Mann: Replying to "I had a very interes..."
He was asking about “agent on behalf of” usage, which needs identity and delegation
00:58:32 Pete Kaminski: semi-on-topic, a good writeup of someone happy with Obsidian and MCP:
"💎 How Claude + Obsidian + MCP Solved My Organizational Problems"
https://www.eleanorkonik.com/p/how-claude-obsidian-mcp-solved-my
00:58:34 Boris Mann: Replying to "I had a very interes..."
And we talked about ATProto for this
00:58:43 Boris Mann: Reacted to "semi-on-topic, a goo..." with 🔥
00:59:45 Ricardo: Acudo -> “I attend” or “I go".
00:59:52 Ted Han: Reacted to "Acudo -> “I attend” ..." with ☝️
01:00:09 Boris Mann: https://ti.to is an event ticketing system
01:00:24 Boris Mann: Replying to "https://ti.to is an ..."
Very API driven, run by a nice team in Ireland
01:00:34 Victoria: Reacted to "Acudo -> “I attend” ..." with 📝
01:02:12 Boris Mann: “Smoke Signal Core”
01:02:41 Boris Mann: Still working on what the main instance is called. You can also self host Smoke Signal.
01:02:59 Morgaine (de la faye): Reacted to It has / it did, but... with "👍"
01:03:40 Psingletary.com: I have lotsa desire for stream.place and roomy.chat to replace twitch / discord and smoke signals would be clutch in doing that especially since DID is same across the board
01:03:58 minbash: private RSVPs ?
01:04:28 Boris Mann: Replying to "private RSVPs ?"
Yes, maybe, but that ideally is actual on protocol private data
01:04:50 Boris Mann: Replying to "private RSVPs ?"
If we all make unique off platform RSVPs in a central database, we wreck the future of ATProto
01:04:50 Gautam: Replying to "private RSVPs ?"
What is protocol private data?
01:04:56 Boris Mann: Replying to "private RSVPs ?"
Doesn’t exist yet
01:05:15 Boris Mann: https://discourse.smokesignal.events -> login with your ATProto account
01:05:26 Gautam: Replying to "private RSVPs ?"
I’ve been looking at MLS trying to figure how it would play with atproto
01:05:39 Boris Mann: Replying to "I have lotsa desire ..."
Talked to Eli about a dedicated “schedule your stream”
01:05:40 Ted Han: Replying to "private RSVPs ?"
We have a working group on E2EE messaging!
01:05:52 Boris Mann: Replying to "private RSVPs ?"
Which will use MLS
01:05:54 Ted Han: Replying to "private RSVPs ?"
MLS is the main focus of discussion there
01:05:55 Henry Wilkinson: Reacted to "https://discourse.sm..." with 😮
01:06:14 Ted Han: Replying to "private RSVPs ?"
Yep, the chats about that are often in ATProto Touchers as well.
01:06:20 Boris Mann: https://opencollective.com/atprotocoldev/projects/smoke-signal
01:06:35 Boris Mann: Replying to "https://opencollecti..."
And you’ll also get an ATProto badge
01:06:40 Gautam: I want to sign up for the E2EE working group, but have not figure how to do that.
01:07:19 Boris Mann: Replying to "https://opencollecti..."
Thanks @Morgaine (de la faye) for being a monthly contributor!
01:07:38 Gautam: Reacted to "https://discourse.sm..." with ❤️
01:07:38 Ted Han: Replying to "private RSVPs ?"
Yep, working on that 🙂 but for now there’s the discord channel: https://atproto.wiki/en/working-groups/e2ee
01:07:45 Pete Kaminski: Awesome talk! Thank you, Nick and Boris! 🙂
01:07:45 Ricardo: clap clap
01:07:50 Gautam: Reacted to "Yep, working on that..." with ❤️
01:08:14 nick: Reacted to "We just need to conv..." with 😎
01:08:28 nick: Reacted to "I would sponsor seve..." with 🎉
01:08:33 nick: Reacted to "MCP also implements ..." with 👍
01:09:32 Bart-Jan Schuman: Newby here, so bare with me here: when people like Ted talk about “we” … who are those?
01:09:36 Ted Han: Private Records separate from Private Blobs separate from Private Messagingtoo 😬
01:09:47 James Walker (@walkah): Reacted to "Private Records sepa..." with 💯
01:09:52 Ted Han: Replying to "Newby here, so bare ..."
ATProto community in general
01:10:21 Sebastian Vogelsang: rewrite the whole thing in mls 😂
01:10:31 Boris Mann: Here’s a brand new RFC around private data https://github.com/knasher/rfcs/blob/main/atproto/001-private-content.md
01:10:31 nick: Reacted to "Acudo -> “I attend” ..." with ☝️
01:10:41 nick: Reacted to "“Smoke Signal Core”" with 😎
01:10:49 nick: Reacted to "I have lotsa desire ..." with 🎉
01:11:32 Ted Han: Replying to "Newby here, so bare ..."
There are a few other “we”s around. Whether that’s Lexicon Community (community standardization of Lexicons), the ATProto Community fund (I’m part of with Nick & Boris), several Working Group efforts
01:11:38 nick: Reacted to "ATProto community in..." with 🤘
01:12:37 Bryan Newbold: get 'em nick
01:12:54 Boris Mann: Replying to "Newby here, so bare ..."
https://atproto.wiki has some info
01:13:01 James Walker (@walkah): Reacted to "get 'em nick" with ❤️
01:13:19 Henry Wilkinson: Reacted to "get 'em nick" with ❤️
01:13:36 Bryan Newbold: (my video is off b/c hotel wifi is bad)
01:13:37 Ted Han: Reacted to "get 'em nick" with 🤘
01:13:48 Ted Han: Reacted to "(my video is off b/c..." with ❤️
01:14:25 Laurens Hof: Reacted to "get 'em nick" with 🤘
01:14:33 Victoria: Reacted to "https://discourse.sm..." with 😮
01:15:00 Ezra Boeth: Reacted to "ATProto community in..." with 🤘
01:15:01 nick: Reacted to "(my video is off b/c..." with ❤️
01:15:08 nick: Reacted to "get 'em nick" with 😂
01:15:13 Ted Han: There are definitely a bunch of places to 0 Billion Dollar Business some incumbents
- Follow Smoke Signal @smokesignal.events and Nick @ngerakines.me
- Source code on Tangled https://tangled.sh/@smokesignal.events