Sooo as an experiment I have decided to start hosting my new fediverse bots on my own software rather than a Mastodon server like botsin dot space. If you follow @bottwosentencehorror you should at some point see posts in your timeline that are parodies of the "bad two sentence horror" Twitter account.

They should look something like the attached image (though not with formatting if you're on vanilla Mastodon).

There is some weirdness because the software doesn't do things like... render a profile page, yet. So clicking through to the "home" profile takes you to which is just a bunch of JSON output right now. I'll eventually make it look a little nicer, something like my rss converter feed pages:

Basically, I wanted a way to deploy bots on my own software that uses ~100 lines of code rather than being a huge piece of infrastructure like a Masto server.


Whoa, I just realized this means I could, in theory, create custom landing sites for every bot that is a little different. Like one could show a feed of past posts, one could only show the current post, one could show some content *based on* the latest posts, etc... hmmmmm

· · Web · 1 · 2 · 34

Like, a "profile page" literally just a view on the database and there is no reason why I couldn't have different views for different accounts. We are so used to mainstream social media needing *consistency* but like my little bot server does not necessarily need that!

Btw this is an idea I first developed during my Mozilla Fellowship in 2018. Lots of stuff I've made since has led up to this: my Express ActivityPub Server, my RSS to ActivityPub Converter, my ActivityPub Debugging Tool, figuring out how to work with Glitch for ActivityPub hosting... of course then pandemic hit and I was not very productive 2020-2021 but wow this is neat to finally deploy the thing I've wanted to forever ago.

Okay I built a landing page for the user account now, you can get to it via this url or just clicking in the profile view in your fediverse app like you normally would.

Individual posts also have landing pages so you can link people to them if you want (or you land there by clicking into its permalink from your client).

Updating the styling to be a little more reddit-like, complete with fake upvote numbers that change on every reload.

Oh hey, I found my notes I took on this project originally in like... I want to say it was summer 2019 at the DWEB conference at the Internet Archive in San Francisco. I cheekily title the project "The Great American Novel" because that is the working title for all my projects that seem too big.

Forgive my handwriting and my brainstorming of ideas for naming the project. Which I guess still isn't named.

@darius this is really interesting work, thanks for sharing it. I’ve been intrigued for a long time by the idea of a “personal fedi hub” (for lack of a better term), which your work really resonates with

@darius watching you tinker with your toy bots and build better sand boxes for them to play is really cute and exciting

@darius fyi, pleroma seems to not like something about your actor (i can't fetch it from my instance)

@shadowfacts Okay. I'll try and figure out what the deal is at some point.

@darius it might be because it's missing outbox or following or url. all the other missing properties seem like they should be optional. those may be too per the spec, but pleroma can be, uh, picky

@shadowfacts last time it was an issue with how my messages were signed

@darius i don't think that should be an issue here? my instance is directly requesting your actor, so there shouldn't be any signing involved
@darius it appears the server only responds to a limited set of accept: headers. I get json for application/activity+json but the official activitypub type is actually application/ld+json. That should return json as well, not html.


@darius oh, and the json objects for Note are missing the "id" field, which is kinda required.


@tedu @shadowfacts Okay, I fixed both issues. So

1) fetching profiles should work from pleroma now that I accept the needed header

2) there is now an id on Notes, my mistake. See new Note with new JSON here:

@darius @tedu still no dice here :(

looking at my server logs, the issue is that you respond with 'Content-Type: application/json' not activity+json or ld+json as pleroma requires:

@darius I wrote something about #Botiquette and posted to Lemmy and #SocialHub about it. If you have any thoughts on them, they would be most welcome :)

@darius where are those tools, specifically express server?

I was looking to make some fedi stuff forever, even have a few unfinished attempts. Maybe I pick it up again.

@darius love the thought of custom looks for profile pages - web2 social media framed us into having dossier -like pages, which isn't surprising after all. now it is time to revive the culture of AOL "progs" and Geocities/MySpace "hacks" and get rid of those nasty looking dossiers. @despens

Sign in to participate in the conversation
Friend Camp

Hometown is adapted from Mastodon, a decentralized social network with no ads, no corporate surveillance, and ethical design.