Podchaser Logo
Home
What Activity Streams Could Enable in Podcasting

What Activity Streams Could Enable in Podcasting

Released Wednesday, 20th March 2024
Good episode? Give it some love!
What Activity Streams Could Enable in Podcasting

What Activity Streams Could Enable in Podcasting

What Activity Streams Could Enable in Podcasting

What Activity Streams Could Enable in Podcasting

Wednesday, 20th March 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:00

What activity streams could enable in podcasting? Strap in because this is

0:03

a long episode, and we get deep in the technical weeds.

0:22

Get your geek on because we've kicked out Dave Jackson for this episode, and

0:25

this could end up being a little bit nerdy. It's just me, Daniel j

0:29

Lewis with a special guest, Sam Sethi from truefans.fm,

0:33

formerly known as Pod Fans. And we are going to talk about something

0:37

that has some really awesome potential for

0:41

podcasting 2.0 and several other cool things as well

0:45

as siloed into specific apps, especially like what you're going to learn

0:48

that Sam has been able to do with True Fans. So, Sam,

0:52

here's my first question. Activity stream Mhmm.

0:56

And activity pub. Mhmm. What is the difference?

1:01

Very simple. Thanks. Good question. Okay. So a little bit

1:04

of a walk down memory lane.

1:08

RSS dot 2 dot o, Dave Weiner froze

1:12

it and gave it over to Harvard. So the IETF created

1:15

this thing called the Atom Feed which was a competitor

1:19

to RSS. And the Atom Feed's

1:23

core function was the extensibility that it had within

1:26

it. And as we now know, you

1:30

know, Daniel, there's a name space extensibility to

1:34

RSS as well, so it was very odd. But in the day, there was a

1:37

battle between RSS and Atom, and I'd have no

1:41

idea. Betamax versus VHS. No idea what the difference is. Or

1:45

or for the more modern kids, Blu ray versus HD Thank you very

1:49

much. Or DVD HD. What was it? HD DVD. Yeah. That's where it

1:52

was. Bring that one up to date. Now what happened was

1:56

Atom morphed into something called the activity stream, and what is an

2:00

activity stream? So a couple of very clever people,

2:03

Christmas Cena, Jason Snell, and Evan

2:07

Prodimo said, look. Wouldn't it be cool with social

2:11

networks where you could basically track the activity of

2:14

people into an XML file and that was a structured piece

2:18

of data. And so it started off with a very simple structure. It was

2:22

called active verb object. Actor

2:25

Daniel played object podcast. So the name of the

2:29

podcast, future podcasting. And you can record that as an entry.

2:33

That's very simple. And there were more verbs that you could use. So

2:37

you can extend those verbs to be follow, like,

2:40

share, whatever. And what that gave you was a nice

2:44

structured piece of data, XML based, that

2:47

wasn't a set of activities that were carried out by the

2:51

chapters, in this case, you. And I could

2:54

then read that file and I could then pass it. I could do other things

2:58

with it. So I like to liken it to a user

3:02

generated RSS feed. That's the best way I like to talk about

3:05

it. Now activity pub is the

3:09

protocol over which you deliver activity stream. So

3:13

think of TCP IP and then RSS is

3:17

the data and TCP IP is the transfer protocol. So in the

3:20

same way, you have an activity stream and you then

3:24

send it to over an activity pub protocol

3:28

to a client like Mastodon or whatever. And

3:31

so in that client, they can then read the activity stream

3:35

and then pass it out and then display whatever's in there. So a

3:39

good example is Dave Jones has created something called the

3:42

activity bridge. I don't know if you've seen this yet. So

3:46

you can go into podcast index, look up in

3:49

our, feed or a podcast. Sorry. It has a

3:53

unique ID number. You put that ID number with

3:56

atap.podcastindex, and boom, it

4:00

suddenly appears in your Mastodon as the podcast, and you can follow

4:04

it. And so what you've got is the activity stream is

4:07

a set of, data based on users'

4:11

activity in a social network. In this case, it could be Truefans.

4:15

It could be or another third party client. It could be, you know, if if

4:18

Twitter supported it, you could have it in there as well. And then

4:22

you deliver that over the activity pub to a activity

4:26

pub client such as Bastogon. That's it.

4:30

So trying to simplify this as well as understand it.

4:33

Because some of this stuff I'm learning too along with our audience and also

4:37

wanting to Yeah. Make some of this a little more plain English. So

4:41

activity stream is basically how the data is stored. Yep. Is

4:45

that correct? And then activity pub is how it's

4:49

delivered. Correct. Okay. You should've said you should've done this for

4:52

me. It was much easier. No. See,

4:56

that simple understanding came from the

5:00

complex explanation. Right. Thank you. So

5:03

what is some of the potential with this? First, let's

5:07

jump to what you're doing with activity stream on truefans.fm.

5:11

Yeah. So we built Truefans, with activity

5:15

streams at the core of it. So we said that as a

5:19

user, I can log in, and we will then give you your

5:22

personal activity stream of all the things you do while using

5:26

Truefence. So I could go in, and I can see how many,

5:31

episodes I've played, how many people I've followed, how many

5:34

times I've created a clip, how many times I've boosted, how many times I've

5:38

zapped. So we've created 30 verbs within

5:42

Truefans that enable us to track the activity of

5:46

all users. Now what we wanted to do and have done is make

5:49

sure that that activity is private if the user wants

5:53

it to be. So you can go into the user settings and say hide activity

5:57

and the only person who will see that activity is you, the

6:00

user. Or you can say, actually, I wanna make everything

6:04

public. No problem. And anyone can then go to your profile and see

6:08

what activity you've done or converse the 3rd way, which I think is

6:12

the best way is we've made all the 30 verbs available. So you just tick

6:16

the ones that you want public, and the ones you want private are then hidden.

6:20

And see, I might say, I just want to show my plays and boost, I

6:23

don't wanna show the show to people I follow or any other

6:27

activity I make. So, yes, so we create the activity

6:31

stream for each user. And because we've got a social

6:35

network element, I can follow Daniel, Value can follow me.

6:39

Because we have that model, you can then go and see my profile and see

6:42

my activity. And therefore, you might say, oh, what

6:46

what was Sam listening to yesterday? Or what did he

6:50

boost just now? Or what did he clip? And,

6:53

again, that might be a signal for you to go and

6:57

listen to a podcast or listen to a clip because you can

7:01

see my activity. Okay. So where I want to switch this

7:08

around a little bit is when we're thinking about the future of podcasting.

7:12

And we've got a lot of things in development with podcasting

7:15

2.0. And my impression, the more I

7:19

understand activity stream, the more it seems

7:22

like this could be used for a

7:26

lot of things inside of podcasting 2 point o. Like, I'm

7:29

thinking years ago, it feels like now, I

7:33

proposed a webhook idea where podcast apps

7:37

could report back play information to some

7:40

central server or something. And that's how we could then get

7:44

the playback and completion rates from an app, and an app

7:48

developer could report that kind of information back. Can can

7:51

activity stream do that kind of thing? Yeah. So what

7:55

we've done is, apart from the verbs, we've also attached

7:59

things like time listened, percent completed, and value paid.

8:03

So if you play the future of podcasting, I might

8:07

have time listened 88 let's say, 28

8:11

minutes, which might be 60% of the show and I

8:14

gave you 10,000 cents. Right? All of that's interesting

8:18

data metric as well that gets attached to your activity stream.

8:22

What we're missing right now is the ability to centrally

8:26

aggregate all of that into a single point. So the

8:30

next step for Truefans is that we're gonna allow users

8:34

on Truefans to publish their activity stream to an

8:37

activity pub client. So you might say, I want to

8:41

publish, all the things I play automatically. Or anytime

8:45

I make a a clip, just let me have the option to click it and

8:48

then share it on an activity pub client in the fediverse.

8:52

So that's a good second step to what we wanna

8:55

do. I aggregate all my activity and then I share the bits I

8:59

want with my social network, and that's good. And then that's a

9:03

signal to my social network maybe to come and listen to another podcast or

9:07

whatever. But the core bot part, and and I think the

9:10

holy grail of podcasting is cross app comments. The idea of being

9:14

able to make a comment in one app and then have a comment in

9:18

another app, and then they synchronize over a single

9:21

episode, let's say. So the way to do that would be I

9:25

would create an activity stream in Truefans, somebody want to create 1 in Podverse,

9:29

someone creates 1 in Fountain. Because we've got this

9:32

unique GUID, this, and the feed item, which is

9:36

a a unique identifier for a podcast and an

9:40

episode, we could aggregate everything around that

9:43

single core ID ID. And so

9:47

Fountain would publish the activity stream for Daniel

9:51

from fountain with your permission. And then if you use true

9:54

funds again, that would happen. So you could actually aggregate all of

9:58

your activity from any apps you use

10:01

or it might be Dave

10:14

the apps could just listen to updates from the central

10:17

database repository and pull down the additional

10:21

comment or pull down additional data. It doesn't have to be comments.

10:25

It could be, for example, on fountain, you followed Adam,

10:29

and then, we don't need you to follow

10:33

Adam again on Truefence. Why would you want to replicate that social

10:37

graph? So the point is we would see that activity and

10:40

then we could replicate that activity in all the other apps as well. So when

10:44

you went into the alternative app, guess what? You're

10:47

following Adam. So when we're

10:51

talking about this, especially, like, with the cross app comments because

10:55

that's the like you said, that is the holy grail. That is something that I

10:59

wish we had solved by now. And it feels like it's not

11:02

so much a data storage issue, but

11:06

an interoperability and a, both the

11:10

whole cross app aspect of this. Because what I've

11:13

seen that's frustrated me so far, and

11:17

before, maybe as recent as before a month

11:21

ago, I didn't know there was a difference between ActivityStream and

11:24

ActivityPub because every time people were talking about ActivityPub,

11:28

I thought Mastodon. But Mastodon is just an

11:32

Activity Pub client. Yes. Right? Think of Activity Pub and

11:35

Nosta. The same they're a protocol. That's all. Okay.

11:39

Well and I know nothing about nosta either. But,

11:43

so these are protocols to be able to access the activity

11:47

pub. So, like, when I think about cross app commons

11:51

Mhmm. One of the frustrations I faced is the understanding of just how,

11:54

like, Mastodon works. How there is no one central server,

11:58

but these multiple instances or multiple servers

12:03

can connect with each other. And so

12:06

you can follow people who are on a different server.

12:10

Mhmm. And you can bring in

12:13

content from another server into your own server. Yep.

12:17

Where I see some complications with this,

12:22

performance is a big thing that I'm worried about. Because the first time

12:26

I saw cross app comments using activity pub implemented,

12:30

it was dead slow Yeah. To load just a single episodes

12:34

comment stream. And there were not a lot of comments. There were only

12:38

under a dozen, I think. How do we solve

12:42

that with what we're talking about here? Or is that Let's take

12:46

a step back. Right? You use email. I use email. Right? You don't need to

12:49

know the underlying structure of the email, whether it's pop 3, IMAP 4,

12:53

whatever. Right? I just need to know you're [email protected]

12:58

somewhere. And conversely, you just need to know mine. Right? You click a

13:02

button, the email goes off and you don't think about it twice.

13:06

That's a federated network. Right? That is a federated network

13:09

of email And we we are used to that and we know it

13:13

works and, you know, that's it. It has its own,

13:17

foibles. Sometimes email doesn't get go out, but fundamentally, it

13:20

works 99.999 percent of the time.

13:24

The social network, Mastodon, Plex,

13:28

and all the others are federated servers of,

13:32

Activity Pub. And again, you have an address. I have,

13:36

Sam Sethi at Sam Sethi at podcast index dot

13:39

social. Right? That's my Mastodon address. And

13:44

if you wanna follow me, that's how you find me. You go to it it

13:47

basically finds that address like you would an email, and then

13:51

you just type something out to that address and boom, it appears in

13:55

my inbox. And in fact, activity pub

13:58

clients are fundamentally an inbox and outbox. That's all they

14:02

are. Very, very simple. Your inbox is the stream of information

14:06

you're reading, and your outbox is the messages you write that appear in

14:09

somebody else's inbox. That is as fundamentally simple just like

14:13

email. And that's why I think it will work and it will scale because we

14:17

know that we can scale email that's gone and done for 20

14:21

plus years. And what we're seeing with the Fediverse is

14:24

more developers are putting time and energy into it and

14:28

fixing some of those bugs and those slowness and those issues. So I

14:32

think, you know, again, give it give it another year. I think all of that's

14:36

gone. So your your problem around scalability and your problem

14:39

about speed, I think, are just short term road bumps on

14:43

the road to where we need to get to. Okay.

14:47

Because as I understand it, like, even with the metaphor

14:51

of an email inbox, when

14:54

I get my email in my mail app, it is downloading

14:58

the messages and I've got that on my computer there.

15:03

You don't if you send me an email, you don't have access to all of

15:06

my emails. I don't have access to all of yours. We are

15:10

sending one thing directly to the other JSON,

15:15

but not making that whole conversation thread visible to a third

15:18

party. Mhmm. Whereas cross app comments, we

15:22

want it all to be visible to everyone else.

15:25

So, what it seems like and please correct me if

15:29

I'm wrong here. I hope I'm wrong. What it seems like the way

15:33

that it has to work now is that there is a

15:37

a root post that is basically the episode post.

15:40

Is this is episode 5, and that's the thing that

15:44

everyone is commenting on that or replying

15:48

to each other. But when they're replying to each other, there's still the it's

15:52

just a downward tree or a cascading of

15:55

all of these connections and replies and relationships across each other.

16:00

It seems like every one of those individual messages

16:03

could potentially be on a different server.

16:07

Is that true? Yep. It could be on a potential different server. It could be

16:10

a federated index that we're looking at. Again So that's

16:14

the nightmare. Yeah. We haven't, to be honest with you, Daniel, this

16:17

last part of the leg, the step 3 hasn't been

16:21

really finished. I was I was interviewing Evan Prodimo.

16:25

I was talking about cross app comments and there is a server based

16:29

capability where you can publish your activity streams to, but it's not

16:32

quite, you know, fully baked out. And so I think

16:36

there's still another step. So I think what I've been trying

16:40

to do is say to the community, look. Here's a w

16:43

three c open standard. This is not some

16:47

something. I I asked actually, I asked

16:51

the Mastodon group, you know, all of the guys you you're involved in

16:55

it as well. I put out a message. What does TLV

16:59

record stand for and who created it? Oh, my god. It

17:02

wasn't very clear. And I think Dave Jones eventually said it was somebody from Sphinx

17:06

who created it many years ago. And then Steven Bell said, well,

17:09

actually, the TLV record which is this,

17:13

payment record of what's been paid on a podcast is

17:17

an activity stream. But it's a proprietary activity stream

17:20

devised by somebody that we don't really know anymore who's not involved in the community.

17:25

It's got 4 verbs in it which is stream, boost,

17:28

auto, and reply. That's the 4 verbs.

17:32

And within those 4 verbs, the stream verb, for example, you

17:36

will put payments, you will put sender, you'll put receiver, you'll

17:39

put, podcast episode, all sorts of data will go into

17:43

that one bit of information. But that's just an

17:47

activity stream, but we've created this TLV record

17:50

activity stream fundamentally by

17:56

by by chance, I think. What's happened was somebody started off this idea,

18:00

and I then think Dave Jones created helipad for Adam to be

18:03

able to read them. And then we've sort of gone and followed this

18:07

whole concept of the TLV record, but

18:10

nobody's actually really understanding how we expand it, how we

18:14

extend it, and what's the value of it. And and cross out

18:18

comments won't come from the TLV record. So Adam is doing

18:22

something that I find, a little frustrating.

18:26

The TLV record which is a, basically, it's

18:29

the whenever you listen to a podcast and you make a payment, a stream, or

18:33

a boost, it creates a like a receipt. Okay? Think of it as like

18:37

a receipt and telling you Sure. What you've paid and who you paid it to.

18:40

Right? That's private to you and the person who

18:44

receives it. So if you paid me,

18:47

a a 1,000 boost a 1,000 sat as a boost, I receive that. But

18:51

if I then decide to put James Cridland in the split, James now sees

18:55

that TLV record. Yeah. If I put 15 people in the split, all

18:59

15 people will see the split. And that is right there, that's

19:03

a, I've raised this concern as well. That is a major privacy

19:06

concern because the person listening may

19:10

not know who all is going to receive this message. And some

19:14

people in a boostagram, they may say upfront, please don't share

19:17

this on the podcast, but I wanna send you this gift because I was gonna

19:21

commit suicide last night, but I listened to your episode, and it stopped me

19:25

from pulling the trigger, and that's why I'm sending you this they do not want

19:28

the world to know that message. And now, everyone in the splits will get to

19:32

know that message. Right. And there could be even

19:36

worse scenarios than that. So that does

19:39

create a problem. One of the things I would love to see is

19:44

this activity stream idea be used for more

19:48

than cross op comments. And, we can get back to cross op comments. But, like,

19:51

for the boostograms, which you and I both see boostograms

19:55

as basically comments With payments. Yeah. That's it. Yeah.

19:58

So we could write boostergrams to

20:02

the activity stream as well, or has that have that as some

20:06

kind of option. We do that now anyway. On.

20:09

True fans are doing that? Okay. Yeah. And

20:13

then the maybe that could even be an an option

20:17

to the person sending the boostagram where there is that toggle that

20:21

is, like, make this public. And if they say yes, then it goes into

20:24

the And, again, we have done that. So in your user settings,

20:28

you choose which verbs you wanna meet private and fit

20:32

which verbs are public, and that is it. Nobody you know,

20:35

if you want everything to be private, you set it to private and no one

20:39

sees your activity. Set it to fully public and everyone sees

20:43

it or set that intermediary. I choose the verbs I want to be

20:46

public. Now we talk about cross app comments, but what about cross app clips?

20:51

Right? Yeah. Or, you know, we we've

20:54

got other things that we've got planned that would allow you to

20:58

have interoperability between apps. So

21:02

I think what I'm trying to do and I'm I I I don't know if

21:06

I'm failing, but I'm I'm still knocking this door very

21:09

hard, is saying to people, look. We are very good

21:13

as a community of saying RSS is the, you know, the truth

21:17

of feed a feed of truth. Right? Right? It's an XML structure piece of data,

21:21

and we're adding tags into it. Think of those tags as verbs.

21:24

They're just the same wording. Right? We're just using a different word

21:28

in RSS, but they are just verbs. Right? So the person

21:32

tag, the transcript tag, they're verbs in the

21:35

RSS feed. And then we know what we do with them. In the

21:39

same way with a user generated feed, the activity stream, we

21:42

just have verbs and we can extend those verbs to as many

21:46

verbs we want. You know, things that we haven't thought about now we can add

21:50

as a new verb. And so, what I'm trying to say is,

21:53

the top end we've got RSS with a a structured piece of data. At the

21:57

bottom, we've got activity team with a structured piece of data. And that our

22:00

activity stream just in its basic format as I said earlier, can you can

22:04

just say, I just wanna publish it to my Mastodon client. And so everyone can

22:08

see who's in my social network, who follows me what I'm doing. And

22:12

that's one simple way of sharing. And then the other one, as

22:15

I said, is to aggregate it around an episode. And then, yes,

22:19

maybe we start with cross that comments, but then we end up with cross that

22:22

clips. Maybe we end up with other things that we haven't developed

22:26

yet that can be interoperable between apps, but you've got

22:29

structured data which means it's possible. It's totally

22:32

possible. I know that some of the complication

22:36

with building things in the modern web and with podcasting 2.0

22:40

is we've got in podcasting, we have a combination

22:43

of centralized and decentralized. The

22:47

the data for a podcast, from a podcast Mhmm. The podcast

22:51

itself is centralized. The consumption is

22:55

decentralized. So like the RSS feed, there is 1 or

22:59

there should be only 1 RSS feed Yes. For a podcast. There should

23:02

not be hundreds of feeds and mirrors and all of these

23:06

proxies you have to worry about. There is 1. Mhmm. So that's centralized. There

23:10

are other aspects of podcasting. Like, there is one media file. Yes,

23:14

it does get syndicated across a CDN or a content distribution

23:17

network. But still, that's super easy for the publisher when they upload a new

23:21

file or replace it that then all of that gets flushed out and then refreshed

23:25

with a new file. It's still centralized. The podcaster themselves

23:28

is in control. The decentralized asset aspect

23:32

is the consumption of all of JSON, And

23:36

that's where we have hundreds of apps that people can use to

23:40

consume centralized information but consume it

23:43

in a decentralized way. So looking at activity

23:47

stream, one of the ways that I could see this working out for cross hop

23:51

comments, for a lot of things, for the webhook or,

23:55

John Spurlock came along and also proposed a similar idea calling it the events

23:59

tag. Same thing. Webhook events. Same thing. But all of this could go

24:02

into a central activity stream that

24:06

the podcaster controls or owns in some way, whether that's through

24:10

their podcast hosting provider, some service that they run themselves

24:14

or pay for, whatever. But it's a centralized service, centralized

24:17

location. And then all of these other

24:21

activity pub clients built into apps or

24:25

other, systems can read

24:28

that centralized information. And maybe the solution to this performance problem is that whatever is

24:36

hosting that centralized activity stream

24:40

is responsible to go out and find everything that

24:44

was federated, that was networked with it and sent back into

24:48

it, And then pull that in

24:51

whenever one of those apps, like, sends that ping into

24:55

that activity streams inbox. And please correct me if

24:59

I'm, like, saying something incorrectly. I'm along the way here, but What you've got

25:03

to think of is, if I write a boost in

25:07

Truefans, in my activity stream, that's now my

25:10

outbox. Okay? And then I publish it.

25:14

That gets published, then we where it get published to today

25:17

is the question. Right? That's what we're trying to figure out that part, that that

25:21

last part. But wherever that gets published to,

25:24

fountain will then have an inbox, which is the

25:28

boost section of that episode where that

25:32

will then appear as a message into that

25:36

section. So my boost that I wrote in True Fans gets published.

25:40

Fountain listens for that episode, and there's a new piece

25:43

of data in there, like, think of it as an email, and it gets then

25:47

published down to Fountain. Right? So fountain

25:51

is an inbox in this case because it's getting data from another

25:54

app. And I'm an out box because I created

25:58

it in Truefence. Conversely, if you were using

26:02

fountain and you created a clip or a boost in

26:05

fountain and then published it, That's then goes out of

26:09

Fountain's outbox for Daniel, and I then listen for

26:13

that, and then I bring it into the inbox, which is the episode

26:17

where it then gets aggregated with any other comments

26:20

made by Truefans people. So you then get a

26:24

mixture of Truefans comments and you get a mixture of Fountain and

26:27

Podverse and, podcast guru. And that's how you

26:31

get cross outcomes. This concept of an inbox and an

26:35

outbox is fundamentally critical to understanding how

26:39

activity pub works and how activity streams are just

26:42

messages. So activity streams are just messages,

26:47

but they happen to be richer than an email message, which is a single verb.

26:51

It happens to be multiple verbs. And so I'm creating

26:55

fundamentally a boost in email message if you wanna think of it. I'm then putting

26:59

in my outbox in Truefans that then gets published, and that could be

27:02

published to my Mastodon or to a central location. And then

27:06

others are listening for it just like they would on an email, and then

27:10

gets dragged into the inboxes of those applications.

27:14

So that whole publishing aspect and the other apps listening, that is

27:18

something where when you publish, you're sending it

27:21

to those listening services. Right? It's a it's a push. Yes.

27:26

Okay. So they could receive that push. They don't have to be

27:30

running a server that is pulling p o o or p o

27:33

l l Yeah. I n g. That is pulling these

27:37

other services. They don't have to do that. They can just have a listener webhook

27:41

endpoint, whatever. Ping. Yep. And it can receive that

27:45

and then publish it to the centralized activity stream that

27:49

belongs to the podcaster. Yep. And by belongs to, I mean, is in their

27:52

control. It might be on the podcast hosting provider server,

27:56

but it's in their control. And then one of the

28:00

other problems, haven't mentioned yet in this episode, a big thing that I see is

28:03

the need for moderation. Not in the sense of what the world

28:07

is talking about with content moderation, but in the sense of the podcaster

28:11

wants to be able to moderate content and control what content is

28:14

seen with their content. So, a

28:18

practical example here is maybe I have a clean

28:22

podcast designed for kids and someone

28:26

comes JSON, and they make a comment that's laced with profanity

28:29

and sexual content, whatever. Yep. And I might not

28:33

be able to block their whole activity pub server

28:37

because maybe they're using an open server that's used by a lot of other

28:40

people. But I need to be able to either remove that

28:44

comment completely or maybe it's a

28:48

genuinely valuable comment, but they just didn't realize, oh,

28:51

this is to an audience of children. I probably shouldn't use this profanity.

28:55

So, I would want the ability to then just edit

28:59

out, censor that profanity so that the value they're

29:02

giving in the comment could still be there, but it would still

29:06

be appropriate for being

29:10

alongside my podcast. So that's why I think that there is the need for

29:14

a centralized storage of the activity stream. Yeah.

29:17

So so two parts to that. 1 is how do

29:21

you moderate comments? I mean, look. We've we've all had this

29:25

problem across the web. Right? I mean, look at look at YouTube's

29:29

comments. Look at, you know, every time that Facebook has comments,

29:32

there's a whole bunch of issues. Right? So, with

29:36

Boost right now, we have no moderation in the sense of

29:40

keyword lookups or keywords that we don't want. Right? That hasn't been built. But

29:44

what we have done again in true fans is got a flagging system and a

29:47

moderation system. So for example, in your admin dashboard

29:51

for the future of podcasting, if I made a profane

29:56

boost, right? And somebody reported it, you don't have to

30:00

see you you don't have to do it yourself but you can read all of

30:03

your own comments that people are making. And you might say, right, flag that

30:07

one, delete that one, get rid of that. As the owner of the podcast,

30:11

you will get a flag notification and then you can read it and

30:15

go, you know what, Sam? That wasn't very clever.

30:18

I'm gonna delete it or I'm gonna send you a message which says, by

30:22

the way, Sam change that. Take those words out and I'll I'll let it be

30:25

published again. So we've built that in already as

30:29

well. That moderation. That was built day 1 fundamentally

30:33

because my wife used to run MSN UK and they had to close

30:36

down all of the community, sites because of all

30:40

of the pedophiles and the dodgy content that was going.

30:44

So I've had that drilled into me from day 1. And I think we haven't

30:48

even thought about that in the podcast community yet, about cross app

30:51

comments and the whole of what you just said. We, you know, we

30:55

we know that, YouTube commerce is a cesspool of commentary

30:59

half the time, and we haven't seen that yet because guess what?

31:03

There isn't enough, usage of boosts to

31:07

make that a worry. The hope is that because a boost has a micropayment

31:11

with it that that trolls won't leave, you know,

31:14

crappy comments. That's what we're hoping, but that's not true. I've

31:18

seen advertising comments. I've seen other comments that

31:22

are, you know, one sat sort of made a micropayment

31:26

but they put up total rubbish. And I remember from my days

31:29

in, WordPress. You know, we had, something called a

31:33

pingback, which was a great idea. Yeah. Right? Which was, you know,

31:37

somebody's made a comment that's referenced you. You get a notification, blah blah

31:40

blah. Well, of course, the the the spam has worked out that you could use

31:43

pingbacks to go and do all sorts of other things, and we had to close

31:46

that down. So I think we have got some challenges in the

31:49

future, but, they're not there yet. And I think, you know, just make

31:53

being able to do first level moderation flagging and deleting, I think,

31:57

is the thing we have to look at. Yeah. And I think that the the

32:00

solution for that is if that activity stream can be centralized

32:05

that the podcaster has control over, and that is then

32:08

seen as the source of truth Yeah. For that podcast. So the

32:12

podcast apps would default to loading from that even though

32:15

that comment would still exist somewhere out there in the

32:19

fediverse. Mhmm. It would not be in my

32:22

comment stream, in my activity stream because

32:26

I've removed it. And so when a podcast app loads the cross app comments from

32:30

my podcast, it would be loading from my activity stream,

32:34

and therefore, it would not show that comment. I think again, you

32:37

know, let's go back to basics. Right? So an activity

32:41

stream now, now that we've discussed it a little bit, is basically a

32:45

set of activities of a user on a podcasting

32:48

app. Daniel played feature of podcasting.

32:52

Sam played podcasting 2 dot o.

32:56

Daniel boosted Daniel clip. Right?

33:00

That becomes a stream of activity that you own that is

33:03

your data that you can have hidden

33:07

for privacy or public. The bits that we know is that

33:11

that can be published to your activity pub client like a Mastodon,

33:15

so I can choose what I want my social network on Mastodon to

33:18

know about what I'm doing or not. And then the final part

33:22

is how we publish it to a central repository

33:26

that will then allow cross app comments, cross app clips. And that third

33:30

part is still being developed or thought

33:33

through and and is not finished. Right? So let's be

33:37

clear that part isn't. But my worry is what we're doing

33:41

in the podcasting 2 dot o community right now is we're using the

33:44

TLV record as a proxy for an activity

33:48

stream with 4 verbs, and we're creating,

33:51

as you said rightly, a privacy issue that the person

33:55

who's receiving the money can create splits and then

33:59

multiple people get that TLV record without the user

34:03

who made the payment knowing where that record went to.

34:06

And I don't think it's scalable because, you know, as I said,

34:10

it's 20 podcast apps. Right? So Adam today puts 1%

34:14

in for the boost to gram bot on fountain. What if Podverse has

34:18

a boost to gram bot? What if I have a boost to gram bot? Does

34:20

he have to put 3 splits in now? What if all 20 of us

34:24

have a boost to gram bot? Is there 20 splits in Adam's wallet so

34:28

that we can all see that TLV record? That is not a scalable

34:32

solution. That is a hack, and it needs to stop.

34:36

Yeah. And one of the things that I brought up before, and

34:40

I'll I'll mention what shot it down in a moment, but

34:43

I I brought up a proposal of what if we have on the

34:47

value tag for whatever split that you were putting in there. Now we

34:51

have to think about also the time based splits, but for whatever

34:54

split, you could have a flag on there that is basically

34:59

like do not send messages with this.

35:04

For for Podverse or for whatever. If we've got them in the

35:08

split, then they do not get whatever message

35:12

someone is sending, but they do get the split of

35:16

the this booster grant or the, the sats that are being sent with

35:19

them. One of the things that

35:23

was used to shoot that down though was saying that all

35:27

Boostagrams are already public. Is that true? Like, on the

35:31

blockchain sort of public or what? Yeah. I mean, if you go to

35:34

Olby, and you go to a product they've called Saturn, you can see

35:38

pretty much most streams that are coming through. I can see so

35:42

anyone who's sending stuff to True Fans, I can go and see.

35:45

Right? But because it's But you can only see it because it's being sent to

35:49

True Fans. You can't there is no public record. And

35:53

which is why you put somebody in the splits to make them available so

35:56

that they can see that same TLV record. And I just

36:00

think you know, let's be brutally honest. I think

36:04

the idea of value for value is great. I love the idea of the micropayments.

36:08

I love the idea of wallets and splits. I think that's a brilliant model.

36:12

Don't wanna change that. But I think the data

36:16

mechanism of how we record those activities

36:20

around payments boosts streams,

36:24

replies shouldn't be done through a TLV record.

36:28

Okay. So I just had this light bulb moment that all this time when you've

36:31

been saying that, like, dissing on the whole 20 different splits in a

36:35

single podcast episode and saying the activity stream solves this, all this time

36:39

I was thinking, how in the world so for anyone else that was there

36:43

with me wondering how does this solve the splits, this was the light bulb moment

36:46

that finally I realized is when you're adding like a Podverse

36:50

or an OP3 or whatever in there, the only reason

36:54

that many podcasters are putting that in there is so that those

36:58

apps get access to the data. Yeah. So that they get access

37:02

to the activity. Yes. Not so they get

37:06

a portion of the fee. Although, I'm sure some of the people And they will

37:08

get a portion of the fee as well. They'll get a 1% portion of the

37:11

fee. So what you're saying that we could do with this and

37:15

the activity stream and everything is so that those services

37:19

that only need to be able to track the activity could instead

37:23

use the activity stream as long as the apps, whenever they send a boost to

37:26

gram, also send that data over to the activity stream.

37:30

And to your point, I could then say, yes. I want

37:34

John Spurlock in o p 3 to have access to my activity, but, no,

37:38

I don't want I can't think of anyone. Facebook

37:42

on threads, which is an activity pub client to have access to my

37:46

activity stream. Right? So I could choose

37:50

where my activity stream is public when it's published, who has

37:53

access to that published data. That's the point.

37:58

And the problem is I, as the user, can

38:01

set my permission levels on what I want public and private

38:05

and access levels on who should get access to my data

38:09

that I have published. So then you would be

38:12

splitting right now it's data and payment is

38:16

together. Mhmm. So you would be splitting it so that you only put who you

38:20

want to receive a payment in your value time splits

38:24

or your value splits. But data would be completely

38:27

separate from that. It can be. It doesn't have to be. It can be. So

38:31

as I said very earlier, the activity

38:35

stream structure is active verb object. The object is

38:38

fundamentally the episode, but we can extend the object to

38:42

be the timeless and the value paid and the percent completed.

38:46

We can extend objects to be multiple objects. It doesn't just have to

38:50

be the episode name. Right? So what what

38:54

did Value, the actor, do? He played the object. And

38:58

what happened with that object? It had these extra attributes on it,

39:02

value, time, and etcetera. That's data.

39:05

That's just we've done it. We've seen this structured data. Right? You know?

39:09

So that's data that that can be read. I could then, as

39:13

a user through apps, choose what verbs are

39:17

published. But once I've published that, I can then choose

39:21

who has access to that as well. And so you aren't,

39:26

separating payment from data. Sorry to be clear.

39:30

But what you are doing is separating the for people to

39:34

access the data I choose to publish because they have to have my

39:38

permission to access my data. And that's all it is.

39:41

So Fountain would request access to it and I go, yeah, I love

39:45

Fountain. Yeah. I love Podverse wants it. Yeah. Go. You go for it. OP 3

39:48

fantastic. Meta, nah. I'm not giving you my data. That's it.

39:52

That's a simple Sure. Thing. And I don't think

39:56

look. It it takes a little bit of thinking and time, but but you start

40:00

off small and you can build it. So as I said in True Fans, we

40:03

we create your activity stream around 30 verbs. We're going to

40:07

step 2, allow users to publish that to chapters Don clients

40:10

over activity pub, and then we're gonna work on a

40:14

model for centralization of activities around

40:18

a central repository. And when people say, oh, you can't

40:22

centralize things. I go, isn't the podcast index a central

40:25

repository? You know, I I won't say who told me that. And then I

40:29

said, strange that, isn't it?

40:33

And you know one of the cool potentials I'm realizing with this is right now

40:37

we already have a great model of a way something like this is being used.

40:40

Whenever you connect one App to another App, often there are certain

40:44

permissions that you're giving. Certain apps require certain permissions,

40:48

but you have control sometimes over those permissions.

40:52

Like, you might say that for this app, I'm giving

40:56

it permission to read Mhmm. All my data from this other app, but

41:00

not to write to it. Exactly. Or like here in the activity

41:03

stream aspect, where maybe it's Saturn taps into

41:07

your activity stream, and then you're saying, I am giving Saturn permission

41:11

to read all of the value

41:15

of my satoshis I've received, but not

41:18

the messages Yes. That came in from it. So, like, whatever that

41:22

server is that's hosting the central activity stream could then handle

41:26

that authentication, creating the different API endpoints, or all of that. That's all

41:30

developer stuff that they can take care of. The podcaster themselves and the audience

41:34

don't have to worry about that. That's pure developer stuff, but

41:37

that's possible with this activity stream idea. Yes.

41:41

Why don't we just switch why don't we just ditch RSS completely and switch to

41:45

activity stream? Well, boy, don't don't don't No. No. No. Don't do

41:48

not. I didn't say that, Adam. Yeah. That takes us back to

41:52

RSS versus Atom. That's where that the whole discussion started.

41:56

Look, I think what it is, I I

42:00

I don't know whether we'll we'll get activity streams, if I'm honest,

42:04

to to be adopted by everybody. I don't Because I think there's

42:07

a lot of people who are invested into the TLV

42:11

record and the way it works. So I think

42:15

it could be the inertia of people saying, I'm not even gonna

42:18

bother to look at what's going on elsewhere with an open standard. I'm gonna keep

42:22

this proprietary standard that we have within our community because there's

42:26

too many people invested into that proprietary standard.

42:31

Well, one of the things that I've noticed with podcasting 2.0 is what

42:34

catches an idea is when it can be shown

42:38

that it's working and also the actual code

42:42

shown like this is how easy this is to integrate with this thing or the

42:45

other thing. And it has me thinking like

42:49

with Podgaugment, Sam and I are both developers here and

42:53

we are developing on very similar code stacks even. Mhmm. But it has me

42:56

thinking where I want to go with Podgagement, all about engaging your

43:00

audience with a podcast, I want it to support cross app comments and I

43:04

will build that in whenever we figure out how that's possible.

43:08

But I'm kind of wondering, maybe I should just

43:11

start trying to work with you on what can I get

43:15

from true fans and bring it into Podgave already?

43:19

Yep. And then we can show that to the world to say, look.

43:22

Here are 2 apps working together, and look how

43:26

fast they're working because the activity stream is centralized. And one

43:30

of the things one of the big reasons why I think that the activity

43:34

stream itself needs to be centralized as a source of truth that the

43:37

podcaster can control is the portability of it. Mhmm. That's something

43:41

that else is, I think, very important in the podcasting space.

43:45

Because everything else about podcasting is portable too. The

43:48

activity stream needs to be portable as well. So to the point

43:52

that you could take that activity stream, export it from

43:55

whatever tool is currently hosting it, import it into the other

43:59

tool, and then you just pick right up Yeah. Where you let them know. Guess

44:02

what? It would contain your social graph and your podcast graph.

44:06

So your social graph of people you follow and your podcast graph

44:10

of the podcast that you JSON to. That's contained

44:13

within the activity stream as well. So it's not just containing

44:17

boosts and and and values paid and streams. It

44:21

contains follows and, and, you know, we have we use

44:25

the verb become a fan but that's subscribe. Right? That's fundamentally I

44:28

subscribe to the future of podcasting. The minute that there's a new

44:32

episode of the future of podcasting, I get a notification.

44:36

Boom. That's simple. We just call the verb become a fan but underlying, it's

44:40

really subscribe. And if I follow Daniel in True Fans

44:43

and Daniel happens to listen to a new podcast or or makes a boost or

44:47

a clip, I get a notification that says Daniel made a boost or a

44:51

clip. And so the activity can be linked to

44:54

notifications, which is, like, fundamentally webhooks. And

44:58

again, that aspect of it as well is is really interesting.

45:02

But I think where we are as an industry, I think we need

45:05

to think We're getting excited about

45:09

activity pub and then we sort of go,

45:12

yeah, but we're not gonna use that. We're gonna use this other thing. And

45:16

I I worry. That's where I am. I'm I'm very worried that

45:20

we so I'm trying to find out if we could

45:24

aggregate both activity streams and the TLV stuff together because all it

45:27

means is I can take what I've got internally in Truefans, the verbs,

45:31

and I can go to Dave Jones or I can go to Adam or whoever,

45:34

Nathan. Say, hey, I've got an extrovert to add to the TLV

45:37

record, follow or become a fan or subscribe or

45:40

whatever. I don't even know who would make that decision

45:45

to extend the TLV record with a new verb. I just don't know.

45:49

It may be just down to Dave Jones, which is fine. I love Dave Jones.

45:53

But I don't know, and it's not a standard that I could

45:56

follow, whereas activity streams is a standard.

46:01

Yeah. And what I like about it is how extensible it

46:05

is. I think I've made a couple enemies in the Podcasting 2.0 space because Well,

46:08

I think I am as well, Daniel. I tend to come in with one of

46:12

2 things. Yes. Or it's a bonus if you get both of these things from

46:15

me. One is, hey, the tag should be called this instead. Yes. Yes.

46:19

That's one of the things that I'm, to put it in British for you, I'm

46:22

on about often. The other thing is I often

46:26

think of the future. That's why I wanted so much to

46:30

be involved with this podcast with Dave, the future of podcasting, because I keep trying

46:33

to think about what is the potential for this? What are the

46:37

things that we could foresee doing with this? So how can we

46:41

build it now so that it supports these things in the

46:45

future? And, I see that with activity stream so much

46:49

that in a way, it's almost like this beautiful blank

46:53

canvas that we can do almost whatever we want with

46:56

it. We will need a structure to it, of course, and

46:59

certain verbs and a set of these things. But it could be easily

47:03

extensible to the point that app developers who

47:07

build in support for activity stream and cross app

47:10

comments, at some point we could say, alright. Here

47:14

is the protocol or the spec

47:17

for podcast consumption data. So, report the

47:21

playback at every 5% mark or every 1% or whatever it

47:25

is, every 10 seconds, 5 minutes, whatever. And whenever

47:29

we come up with that standard, then the developers who are

47:32

already supporting cross app comments through activity stream could know that,

47:36

hey. I already know how to write to the activity stream.

47:40

All I need to do is add an extra trigger into my App

47:44

that will send this slightly different data that's

47:47

in the same structure, just slightly different verbiage here and there in the

47:51

data to the same destination. And now,

47:55

boom, we've got this other new feature and easily populating it. That's what I

47:58

love about this. Yeah. And look, I think going back to what

48:02

you said, I think, you know, post this, I'm very happy to sit down with

48:06

you and show you how we've built the activity stream in True Fans and then

48:10

how we can share that data, you know, with you.

48:14

I can do it from my own activity stream, so I'm not asking for anyone

48:17

else's permission. So before everyone goes, you're not giving all of your data

48:21

to Daniel. I no. I can just do one. It doesn't have to be all.

48:25

And Daniel can do his, so we've got 2 sets of streams and we can

48:28

share that and we can cross that comment and we can do all sorts of

48:30

different things with it. And then once we've worked it out and and one of

48:34

the jokes in the industry, Dan Daniel, you said one of yours is, you know,

48:37

you always talk about certain things and people go, oh, Daniel Varian. You don't have

48:41

to do that. What's the name of this tag? Mine is and I get it

48:44

often. Oh, True Fans has built every name space tag, have

48:47

they? Right? And the answer is yes. And why do I

48:51

do that? I I do that because seeing is believing.

48:55

I believe that so we implemented pod roles first.

48:59

And and the reason why James Cridland did it and I did it was because

49:02

we could show it working. Then we could give it out to everybody and go,

49:05

look. That's what it is. People then came back and said, you could tweak it

49:09

here, comment there, blah blah blah. We did that, and now it's rolled

49:13

out. Same happened with, you know,

49:16

publisher feeds that we've been working on recently. Okay?

49:20

Those are, you know, aggregated podcast feeds of,

49:24

you know, so Wondery might have 50 podcasts. Right?

49:28

How do you find the other podcast that Wondery has if you re if you

49:31

just like 1? Well, there's a publisher feed. Now we built those

49:35

and Dovidast did that with me and and we made it work and it's

49:38

looking great. There's a couple of tweaks still left to be done. But

49:42

once those are done, that will be published as a standard. And so, yes, I'm

49:46

a great believer in build fast, fix quickly.

49:52

Yeah. And a a lot of potential. And

49:56

I like that with since you're building a web app

49:59

Mhmm. Where the cool thing these days is to call it a PWA, which

50:03

I see that those three letters thrown around all this time and so many people

50:07

don't even know what a PWA is. But progressive web app. But

50:11

what is great and what I want other developers to

50:15

understand is that you can be so agile

50:18

with your development because for one thing, there is no gatekeeper

50:22

for you. You're not waiting for Apple to approve your latest app and

50:26

they're not homing through your code to make sure that your app update

50:30

can be allowed onto the store. Like, look at Podcast Addict. Man, the

50:34

problems that Xavier has faced with Google Mhmm. And Google

50:37

is much more lenient than Apple is, but that he'll add a new

50:41

feature and then Google will basically say, no. You can't do that.

50:45

And so he runs into that problem. You don't have that problem. So you get

50:48

to be agile, and you don't have to wait

50:52

until True Fans 5 can launch to start thinking

50:56

about podcasting 2 point o No. Support.

51:00

JSON. But you can just put in that feature right away and

51:04

that's what's really neat about the web based development of

51:07

this. And that that was really just a little

51:11

tangent aside there. But what I would love to see

51:15

then is more of these web based tools

51:19

being this agile like this since we

51:22

can. And so that's why I'm thinking, since I've got Podgageman,

51:26

I wanted to have more Podcasting 2.0 support. I'm thinking,

51:30

what can I do to demonstrate what's

51:33

possible with ActivityStream? And there's just so much that we could do with it

51:37

Mhmm. That could solve a lot of problems. And even

51:41

I I was thinking too that you don't necessarily have to

51:45

have a single activity stream for a podcast. No. You

51:49

could potentially have multiples. Like this is the

51:52

the comments activity stream. This is the

51:56

playback consumption rate activity stream if they needed to

52:00

be split apart like that. Because I know, I talk

52:04

about episode metadata file, and some people hate me for that term,

52:07

the chapters and all of that stuff. But what's cool about

52:11

the way that we are doing chapters right now is that it can be split

52:14

into a separate file and you can have other episode metadata in a

52:17

separate file or you could merge these all into the same file.

52:21

There's that same kind of potential with Activity Stream. So

52:25

I love how this looks possible, and I am now

52:29

an advocate of this. I know that here on the

52:32

future of podcasting a few months ago, I was all gung ho about this

52:36

proposal I had for Cross App comments of a way to do things.

52:39

And, Basically, what I was describing,

52:43

I was kind of reinventing Activity Stream but in

52:47

a very clunky way and a not

52:51

not backed by certain standards. Like, the activity stream

52:55

is a W3C standard Yes. Which is the World

52:59

Wide Web Consortium. Yep. So this is a standard of how to

53:02

form this data and how to structure it, so it's not like we're making up

53:06

something on our own. But it's a flexible standard.

53:10

Yes. I like it. The other thing that you you should be aware of, you

53:14

mentioned, podcast streams and and and creator streams.

53:17

So first the first stream that you as a user

53:21

on Truefence see is your own personal stream. Right? Of everything you that you've done

53:25

across if if you think about it multiple podcasts, so that's your view

53:28

of the world. But when you go to a podcast

53:32

site, let's say the future of podcasting, it will show an

53:36

activity stream of any user that's interacted with

53:40

that podcast. So so who played, who boosted, who clicked

53:43

on the future of podcasting. And non fans

53:48

and all of their

53:52

activity. So and non fans

53:55

and all of their activity. So then you get an aggregated

53:59

view. So Sam played my, latest episode,

54:03

but he only played 70% of it and he gave me

54:07

6,000 sats. Right? That's an activity entry and

54:10

then we can roll that up for that episode. So now you can

54:14

roll up all of that activity and say, this podcast episode

54:18

earned 27,000 sats. There were 16 listeners

54:21

and the on average they dropped off at 44%,

54:26

and it was 60% complete. Right? Whatever that so

54:29

because that's just data from the individual that became

54:33

aggregated at a podcast episode level and then rolled up

54:37

again. Eventually, we will roll that up to a total podcast level. So you've

54:40

got, I think, 35, 36 episodes of the future of podcasting.

54:44

You will then see how many sets has that future of podcasting at, how many

54:48

fans have they got, etcetera, etcetera. There's so much you can

54:52

do from the activity stream data just within the

54:56

app itself, let alone sharing it cross app,

55:00

let alone sharing it with analytics companies and whatever.

55:04

So, yeah, there's a lot you can do with it because it's good structured data.

55:09

Let's keep that, like all the bigger things, a little secret just between us and

55:12

our audience for now just so we don't overwhelm everyone when we come

55:16

back saying, Hey, we're all gung ho with Activity Stream.

55:20

There's I'm excited about this and what we can

55:24

do. I'm totally on board with this now, especially now that I understand a little

55:28

bit better. And you listening right now, I hope I know we got in the

55:31

weeds on some of the stuff we know. Sorry. We probably lost everyone in that,

55:34

unfortunately. I didn't mean to. Well,

55:38

I I think the people who need to understand this

55:42

most can probably figure this out. And we'll have put some

55:45

links also, like, to the w three c standard and some more information. And

55:49

there's also a book coming out Yep. About all of this. We'll have those links

55:53

in the notes for this episode, number 39, on future of podcasting.net.

55:58

So there is a lot of potential for this. And the nice thing is that

56:01

the individual podcaster eventually will not have to

56:05

learn this. Years ago, I gave a keynote at a podcasting

56:09

conference, and the keynote was the future of podcasting. And one

56:13

of my predictions was the technology will disappear

56:17

in the aspect of the audience and the podcaster won't

56:20

even have to worry about what's running it. They won't have

56:24

to worry that it's activity stream. It will just work. Yep. That's when

56:28

the technology disappears. Nobody who's using

56:33

Spotify or Apple Podcasts or YouTube, you know, the main

56:36

big three, let's say, knows that the underlying delivery technology

56:40

is RSS. They don't need to. Right? The fundamentally

56:44

it ends up in the Apple Podcast and they play it. And that's it.

56:48

End of story. They don't need to understand how it got there and

56:52

what it was delivered by. Right. And it's the same with, I

56:55

I just wanna know that there was a comment made on this app and it's

56:59

over on this app, and now it's at the same they're aggregated together under one

57:03

episode, and that's magically happened. I don't need to know how it

57:06

happened, and that's that's what we have to get to. So you set me a

57:10

challenge on Macedon this week, which was I said,

57:14

you know, I've put the best I can as version

57:18

1, a help system into this in into

57:21

Truefans. And we use activity streams with gamification.

57:25

So, when you, enable your wallet, that's

57:29

a a verb, you know, and then we give you some sats for doing that

57:32

750 sats for enabling your wallet. When you do your first boost, we

57:36

can give you sats. We can do that 10 times. So you're learning

57:40

and earning at the same time. But then your 11th boost, we won't

57:43

pay you. Right? That's just a gamification model that we've attached to

57:47

Verbs. And the thing about it is you said to me, well,

57:51

don't do the videos because I'm in the middle of doing loads of videos just

57:54

showing how it all works. And my my answer to you is

57:58

yes. You're right. It shouldn't need videos and it shouldn't need extensive

58:02

help files to make this work because complexity has failed

58:05

simplicity. And, fundamentally, though,

58:09

what we're struggling with is vocabulary.

58:13

Yeah. Somebody on the Mastodon list said to

58:17

me, I don't even understand the difference between a Zap and a boost. So when

58:20

I explained it to them very simply, a Zap is a a like with a

58:23

payment and a boost is a comment with a payment. Why doesn't anyone ever

58:27

say that to me? Right? I'm like, well, they probably have, but now

58:31

they've got so far down the weeds of not having to re explain

58:34

every time when they say the word zap and when they say boost because they

58:38

expect everyone to understand it. And we have to remember people don't even know

58:41

what those things mean, Let alone value time splits and

58:45

wallet switching and everything else. Right? So there's

58:49

a lot of complexity in what we're all doing. And,

58:53

yeah, that vocabulary just needs to be

58:57

common knowledge. And then I think a lot of it becomes easier to not

59:01

have to explain how to do it with a video, but people think, oh,

59:04

yeah. Oh, you wanna boost it? I've got a wallet. There's

59:08

there's 50 sats done. Right? It all becomes second nature. I just

59:12

don't know when it'll become second nature. And speaking

59:16

of boosts, we got a boost here that is,

59:20

100,000 It sounds bad person.

59:24

It says great show, great episode. Please keep them coming.

59:28

And am I back at the top of the leaderboard? And that

59:32

came from Sam. Thank you so much. You're very

59:35

welcome. I was I was gutted when Dave Jackson said I was on top of

59:39

the leaderboard. So I went, well, that's it. 100,000. Send that straight

59:42

over. Let's see if that gets me back there. So I don't know if I

59:45

am or who knows? Yeah. And just to be clear,

59:49

that boost is not what got Sam onto this podcast. No. Thank you. Sam and

59:52

I have been wanting to have a conversation for a long time. It just worked

59:56

out really cool to be able to thank you personally here on the

59:59

podcast for that boost. So thank you so much.

1:00:03

Anyone else who would like to send us a boost, please do send that inside

1:00:07

of your podcast app, and recommend that your own audience, if you've got an audience

1:00:10

of other podcasters or listeners, recommend that they check out a new

1:00:14

podcast app over at podcasting2.org/apps. For Dave Jackson, I'm Daniel j Lewis, And Sam Sethi

1:00:22

was our guest here from truefans.fm. Check him out. Thank you

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features