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.
t'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:
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:
Smoke Signal
A place for smoke signal users and developers.
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:
Smoke Signal One Year Later (PDF)Slide deck for the talk, by Nick Gerakinessmoke-signal-one-year-later.pdf3 MB.a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}download-circle
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
ATProto Community News
Interviews, news, and other updates about projects & events powered by ATProtocol
Subscribe .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s} .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite} .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)} .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)} .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px} @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}} Email sent! Check your inbox to complete your signup.
No spam. Unsubscribe anytime.
Did you enjoy this article?
Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.