{"id":101,"date":"2026-04-11T14:24:56","date_gmt":"2026-04-11T20:24:56","guid":{"rendered":"https:\/\/rpg20.com\/blog\/?p=101"},"modified":"2026-04-11T14:24:56","modified_gmt":"2026-04-11T20:24:56","slug":"joining-the-fediverse","status":"publish","type":"post","link":"https:\/\/rpg20.com\/blog\/2026\/04\/11\/joining-the-fediverse\/","title":{"rendered":"Joining the Fediverse"},"content":{"rendered":"\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>I decided to add the ActivityPub plugin to this blog.<\/p>\n\n\n\n<p>Let&#8217;s see how it works.<\/p>\n\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<div\n\tclass=\"activitypub-follow-me-block-wrapper is-style-profile is-style-default wp-block-activitypub-follow-me\" id=\"activitypub-follow-me-block-1\" data-wp-interactive=\"activitypub\/follow-me\" data-wp-init=\"callbacks.initButtonStyles\"\tdata-wp-context='{\"backgroundColor\":\"\",\"blockId\":\"activitypub-follow-me-block-1\",\"buttonStyle\":[],\"copyButtonText\":\"Copy\",\"errorMessage\":\"\",\"isError\":false,\"isLoading\":false,\"modal\":{\"isOpen\":false},\"remoteProfile\":\"\",\"userId\":0,\"webfinger\":\"@rpg20.com@rpg20.com\"}'>\n\t<div class=\"activitypub-profile p-author h-card\">\n\t\t\n\t\t<div class=\"activitypub-profile__body\">\n\t\t\t<img\n\t\t\t\tclass=\"activitypub-profile__avatar u-photo\"\n\t\t\t\tsrc=\"https:\/\/i0.wp.com\/rpg20.com\/blog\/wp-content\/uploads\/2016\/12\/rpg20.png?fit=150%2C150&#038;ssl=1\"\n\t\t\t\talt=\"RPG20 Ramblings\"\n\t\t\t\/>\n\n\t\t\t<div class=\"activitypub-profile__content\">\n\t\t\t\t<div class=\"activitypub-profile__info\">\n\t\t\t\t\t<div class=\"activitypub-profile__name p-name\">RPG20 Ramblings<\/div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"activitypub-profile__handle p-nickname p-x-webfinger\" data-wp-text=\"context.webfinger\"><a rel=\"mention\" class=\"u-url mention\" href=\"https:\/\/rpg20.com\/blog\">@rpg20.com<\/a><\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t\n<div class=\"wp-block-button\"><a aria-expanded=\"false\" aria-controls=\"activitypub-follow-me-block-1-modal-title\" aria-haspopup=\"dialog\" aria-label=\"Follow me on the Fediverse\" data-wp-bind--aria-expanded=\"context.modal.isOpen\" data-wp-on--click=\"actions.toggleModal\" data-wp-on-async--keydown=\"actions.onKeydown\" role=\"button\" tabindex=\"0\" class=\"wp-block-button__link wp-element-button\">Follow<\/a><\/div>\n\n\t\t\t\t\t\t\t\t\t<div class=\"activitypub-profile__bio p-note\">\n\t\t\t\t\t\t<p>Ideas, notes, updates, and thoughts on the rpg20 project.<\/p>\n\t\t\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t<div class=\"activitypub-profile__stats\">\n\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<strong>5<\/strong> posts\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<strong>0<\/strong> followers\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\n\t\t<div\n\t\t\tclass=\"activitypub-modal__overlay\"\n\t\t\tdata-wp-bind--hidden=\"!context.modal.isOpen\"\n\t\t\tdata-wp-watch=\"callbacks.handleModalEffects\"\n\t\t\t\t\t\trole=\"dialog\"\n\t\t\taria-modal=\"true\"\n\t\t\thidden\n\t\t>\n\t\t\t<div class=\"activitypub-modal__frame\">\n\t\t\t\t\t\t\t\t\t<div class=\"activitypub-modal__header\">\n\t\t\t\t\t\t<h2\n\t\t\t\t\t\t\tclass=\"activitypub-modal__title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tid=\"activitypub-follow-me-block-1-modal-title\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>Follow RPG20 Ramblings<\/h2>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"activitypub-modal__close wp-element-button\"\n\t\t\t\t\t\t\tdata-wp-on--click=\"actions.closeModal\"\n\t\t\t\t\t\t\taria-label=\"Close dialog\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<svg fill=\"currentColor\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t\t\t\t<path d=\"M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z\"><\/path>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t<\/button>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"activitypub-modal__content\">\n\t\t\t\t\t<div class=\"activitypub-dialog__section\">\n\t<h4>My Profile<\/h4>\n\t<div class=\"activitypub-dialog__description\">\n\t\tPaste my profile into the search field of your favorite open social app or platform.\t<\/div>\n\t<div class=\"activitypub-dialog__button-group\">\n\t\t<label for=\"activitypub-follow-me-block-1-profile-handle\" class=\"screen-reader-text\">\n\t\t\tMy Fediverse handle\t\t<\/label>\n\t\t<input\n\t\t\taria-readonly=\"true\"\n\t\t\tclass=\"wp-block-search__input\"\n\t\t\tid=\"activitypub-follow-me-block-1-profile-handle\"\n\t\t\treadonly\n\t\t\ttabindex=\"-1\"\n\t\t\ttype=\"text\"\n\t\t\tvalue=\"@rpg20.com@rpg20.com\"\n\t\t\/>\n\t\t<button\n\t\t\taria-label=\"Copy handle to clipboard\"\n\t\t\tclass=\"wp-element-button\"\n\t\t\tdata-wp-on--click=\"actions.copyToClipboard\"\n\t\t\ttype=\"button\"\n\t\t>\n\t\t\t<span data-wp-text=\"context.copyButtonText\">Copy<\/span>\n\t\t<\/button>\n\t<\/div>\n<\/div>\n<div class=\"activitypub-dialog__section\">\n\t<h4>Your Profile<\/h4>\n\t<div class=\"activitypub-dialog__description\">\n\t\tOr, if you know your own profile, we can start things that way!\t\t\t\t<details class=\"activitypub-dialog__help\">\n\t\t\t<summary>Why do I need to enter my profile?<\/summary>\n\t\t\t<p>\n\t\t\t\tThis site is part of the \u2042 open social web, a network of interconnected social platforms (like Mastodon, Pixelfed, Friendica, and others). Unlike centralized social media, your account lives on a platform of your choice, and you can interact with people across different platforms.\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\tBy entering your profile, we can send you to your account where you can complete this action.\t\t\t<\/p>\n\t\t<\/details>\n\t\t\t<\/div>\n\t<div class=\"activitypub-dialog__button-group\">\n\t\t<label for=\"activitypub-follow-me-block-1-remote-profile\" class=\"screen-reader-text\">\n\t\t\tYour Fediverse profile\t\t<\/label>\n\t\t<input aria-invalid=\"false\" value=\"\"\n\t\t\tclass=\"wp-block-search__input\"\n\t\t\tdata-wp-bind--aria-invalid=\"context.isError\"\n\t\t\tdata-wp-bind--value=\"context.remoteProfile\"\n\t\t\tdata-wp-on--input=\"actions.updateRemoteProfile\"\n\t\t\tdata-wp-on--keydown=\"actions.handleKeyDown\"\n\t\t\tid=\"activitypub-follow-me-block-1-remote-profile\"\n\t\t\tplaceholder=\"@username@example.com\"\n\t\t\ttype=\"text\"\n\t\t\/>\n\t\t<button\n\t\t\taria-label=\"Follow\"\n\t\t\tclass=\"wp-element-button\"\n\t\t\tdata-wp-bind--disabled=\"context.isLoading\"\n\t\t\tdata-wp-on--click=\"actions.submitRemoteProfile\"\n\t\t\ttype=\"button\"\n\t\t>\n\t\t\t<span data-wp-bind--hidden=\"context.isLoading\">Follow<\/span>\n\t\t\t<span hidden data-wp-bind--hidden=\"!context.isLoading\">Loading&hellip;<\/span>\n\t\t<\/button>\n\t<\/div>\n\t<div hidden\n\t\tclass=\"activitypub-dialog__error\"\n\t\tdata-wp-bind--hidden=\"!context.isError\"\n\t\tdata-wp-text=\"context.errorMessage\"\n\t><\/div>\n<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/div>\n\n\n\n<div style=\"height:32px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\t\t<div class=\"wp-block-activitypub-followers\" id=\"activitypub-followers-block-2\" data-wp-interactive=\"activitypub\/followers\" data-wp-context=\"{&quot;items&quot;:[],&quot;isLoading&quot;:false,&quot;order&quot;:&quot;desc&quot;,&quot;page&quot;:1,&quot;pages&quot;:0,&quot;perPage&quot;:10,&quot;total&quot;:0,&quot;userId&quot;:0,&quot;endpoint&quot;:&quot;followers&quot;}\">\n\t\t\t\n<h3 class=\"wp-block-heading\">Fediverse Followers<\/h3>\n\n\t\t\t\n\t\t<div class=\"activitypub-actor-list-container\">\n\t\t\t<ul class=\"activitypub-actor-list\">\n\t\t\t\t<template data-wp-each=\"context.items\">\n\t\t\t\t\t<li class=\"activitypub-actor-item\">\n\t\t\t\t\t\t<a href=\"#\"\n\t\t\t\t\t\t\tdata-wp-bind--href=\"context.item.url\"\n\t\t\t\t\t\t\tclass=\"activitypub-actor-link\"\n\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\trel=\"external noreferrer noopener\"\n\t\t\t\t\t\t\tdata-wp-bind--title=\"context.item.handle\">\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\tdata-wp-bind--src=\"context.item.icon.url\"\n\t\t\t\t\t\t\t\tdata-wp-on--error=\"callbacks.setDefaultAvatar\"\n\t\t\t\t\t\t\t\tsrc=\"\"\n\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\tclass=\"activitypub-actor-avatar\"\n\t\t\t\t\t\t\t\twidth=\"48\"\n\t\t\t\t\t\t\t\theight=\"48\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<div class=\"activitypub-actor-info\">\n\t\t\t\t\t\t\t\t<span class=\"activitypub-actor-name\" data-wp-text=\"context.item.name\"><\/span>\n\t\t\t\t\t\t\t\t<span class=\"activitypub-actor-handle\" data-wp-text=\"context.item.handle\"><\/span>\n\t\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" class=\"external-link-icon\" aria-hidden=\"true\" focusable=\"false\" fill=\"currentColor\">\n\t\t\t\t\t\t\t\t<path d=\"M18.2 17c0 .7-.6 1.2-1.2 1.2H7c-.7 0-1.2-.6-1.2-1.2V7c0-.7.6-1.2 1.2-1.2h3.2V4.2H7C5.5 4.2 4.2 5.5 4.2 7v10c0 1.5 1.2 2.8 2.8 2.8h10c1.5 0 2.8-1.2 2.8-2.8v-3.6h-1.5V17zM14.9 3v1.5h3.7l-6.4 6.4 1.1 1.1 6.4-6.4v3.7h1.5V3h-6.3z\"><\/path>\n\t\t\t\t\t\t\t<\/svg>\n\t\t\t\t\t\t<\/a>\n\t\t\t\t\t<\/li>\n\t\t\t\t<\/template>\n\t\t\t<\/ul>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>I decided to add the ActivityPub plugin to this blog. Let&#8217;s see how it works.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"federated","footnotes":""},"categories":[4],"tags":[],"class_list":["post-101","post","type-post","status-publish","format-standard","hentry","category-development"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/posts\/101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/comments?post=101"}],"version-history":[{"count":1,"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/media?parent=101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/categories?post=101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpg20.com\/blog\/wp-json\/wp\/v2\/tags?post=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}