💾 Archived View for warmedal.se › ~bjorn › posts › making-geminispace-social.gmi captured on 2023-12-28 at 15:40:32. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-12-03)

-=-=-=-=-=-=-

Making Geminispace Social?

I've started coding a small tool, but I don't really know if anyone would use it. Here's a short write-up of the general idea, and I'd love to hear what you think about it. Is it worth pursuing? Would you like to use it?

Assumptions

- There's a tradition of writing gemlogs as responses to other gemlogs, but there's no guarantee the original author will find the response.

- Most gemlog authors use some sort of home-made script or SSG to publish their gemlogs, and appending a command to that process is trivial.

- A lot of gemlog authors are tildezens.

Brief Summary

I'd like to write a CGI script in a single file with no dependencies that can be executed from the command line or through a gemini browser, with different outcomes.

Command Line

When I've written a gemlog post I execute my CGI script to tell it where the post is located relative to the script path. The script does the following:

- Save the relative location of the post, as well as the URL to it.

- Go through the post to find if it's a reply to another author's post, or if other persons are mentioned in it (there's a simple syntax for this).

- If there are replies or mentions and the persons concerned are in my contact list, contact their endpoints to notify them.

Browser/Client

- When contacted by another instance of this script with a mention of me, add that to the latest activity together with a URL to the mention.

- When contacted by another instance of this script with a reply to one of my gemlogs, append a link to the reply to the concernec gemlog, and then add a note of this reply to the latest activity together with a URL to the reply post.

- When called by me (i.e. one of my trusted client certs), list the latest activity in reverse chronological order.

Example

Let's say I had that script ready now. I would run it on this post, and it would find neither a reply-to link nor any mentions, but it would save the URL and path to this post for later reference.

Now you (yes, You!) write a reply to this post. It may start with something like this:

Reply-to ew0k:
=> gemini://tilde.team/~ew0k/making-geminispace-social Making Geminispace Social?

You process this with your instance of the script, and it will save the URL and path to your post for later. It will also notice that you're replying to me and check your contact list to find an address to my instance. Let's say it does, because you've saved it there. It then calls my instance to let it know that you have replied to my post.

My instance gets the call, registers your post as a reply in the latest activity list (which I will see the next time I open up my browser to check), AND adds a link to your reply at the bottom of my original post (this one!). That means that any visitor checking this post can immediately see links to replies, and follow the conversation.

Since we all have our own contact lists no user names have to be globally unique, or even unique on a host. I may call myself ew0k, but if you have another friend who also calls themselves that you might add me as ew0k2 in your contact list. Or the-mighty-asshat, for that matter, though I guess that would be frowned-upon.

What do you think?

-- CC0 ew0k, 2020-12-26