ActivityPub for Drupal

After a couple of weeks of coding and testing, I've tagged a first alpha release of the ActivityPub module for Drupal! It implements the protocol so that you can communicate with other Drupal sites or platforms which support ActivityPub. Remote accounts on for example Mastodon or Pixelfed can follow any user on a Drupal site now and read content, like posts and reply from their platform. It's only the tip of the iceberg of what's possible with AP, but the main focus at this point is discovery of content and users on remote platforms and performing typical social responses (reply, favorite, announce).

The core of the implementation uses Drupal plugins to map fields and content types to activity types. Being in alpha means that the interfaces will most likely change as bugs are fixed and new features will be implemented, but I'll document those when I tag a new version. For more information, installation and configuration, check the README which I will continue to update as well.

Main features

  • Enable ActivityPub per user, discovery via the Webfinger module
  • Map Activity types and properties to content types and create posts to send out to the Fediverse.
  • Create comments from Create activities from remote users to content
  • Accept follow requests, Undo (follow), Outbox, Inbox and followers endpoints
  • Send posts via drush or cron, with HttpSignature for authorization

Follow me!

Have an account on Mastodon, Pixelfed or Pleroma? Then you can follow me via @swentel@realize.be. Discovery probably works on most other platforms as well, but I haven't interacted with those yet, and I hope other people will download and start testing with those as well.

ActivityPub for Drupal: first alpha release! If you are on a federated platform, you can now follow me via swentel@realize.be :) #drupal #activitypub https://realize.be/blog/activitypub-drupal


Pushed a release of Indigenous for Android adding support for Mastodon, Pleroma and Pixelfed - install links on https://indigenous.realize.be. Note: F-Droid might take a few more days. Video demonstrating Pixelfed at https://youtu.be/2aHSx0G5BM4 #indieweb #fediverse

Indigenous for iOS, IndieWeb and ActivityPub for Drupal

I'm glad to announce that I've been awarded a grant as part of the European Next Generation Internet initiative (NGI) by the Dutch NLnet Foundation to work on my (currently) favorite projects: Indigenous and IndieWeb1. I didn't count on being selected when I submitted my proposal when looking at the other entries, but I guess I made a good case. I'll be spending a lot of time the following months working on them, so you can expect some exciting releases. The status of all projects and work done within this grant will be tracked here.

Indigenous for iOS

The app was originally started by Edward Hinkle and was the main trigger for me to build the Android equivalent. The project is currently unmaintained and lacks many features which are available in the Android version. Thanks to the grant, I can now revive the project so iOS users will be able to enjoy IndieWeb with a more richer and mature application.

Edward was so kind to transfer the existing repository over to me so all issues are preserved. I'll be creating projects and milestones so everyone can track progress. At some point, I will start rolling out releases in a beta program, so watch this space or announcements on Twitter to know when you can sign up for testing.

Multiple user support for the Drupal IndieWeb module

One of the last major missing pieces for the module is support for multiple users. All features currently work great for one account and the Micropub server supports multiple authors posting to the same domain. However, it's far from perfect, and especially the built-in Microsub server is not compatible at all for more than one user.

Work started in a separate branch a couple of months ago, but progress is slow as dragons are everywhere and I only work on this when I have some free time. With this grant, I'll be able to focus 2 weeks in a row to rewrite the critical pieces, not to mention all the tests.

I haven't decided yet whether I'm going to write an upgrade path, but I will keep on supporting both branches as I'm using the module on my site which only has one user, so no need to worry in case you are using the module already.

Kickstarting ActivityPub module for Drupal

It's been on my mind for so long, but I will finally will be able to work extensively on the Drupal Activity module. My work will happen on Drupal.org instead of the existing repository on GitHub, which will be used for a more extended version somewhere in the future. The 1.0.x branch on d.o will contain the lite version.

Open Web

Besides these 3 major goals, I'll focus as well on the interoperability of both app clients (Android and iOS) with more software, e.g. Mastodon and Pixelfed. I'm brainstorming to figure out the best approach to contribute and how to integrate them with both clients, more details will be released in future blog posts and notes.

All those projects have a place in my personal vision on the Open Web, so I feel incredibly lucky to be able to work on them almost full time, hoping to convince more people to jump onboard ultimately. It would be great if we could get something into Drupal Core one day, or at least make some more noise around it. If you have questions, feedback or just want to have a chat, I'm (still, yes I know) on IRC on irc.freenode.net (indieweb or drupal channels). Ping swentel and I'll be all ears.


1. to be fair, Solfidola might come close to become my new favorite, but it's not related with IndieWeb at all :)

New post: Rebooting Indigenous for iOS, adding multiple user support to the Drupal IndieWeb module and kickstarting ActivityPub module thanks to a grant as part of @NGI4eu by the @NLnetFDN. https://realize.be/blog/indigenous-ios-indieweb-and-activitypub-drupal

Privacy friendly phone, desktop and services

This is a living document, I'll update if things change in the future.


It started as an exercise to start replacing applications and (free) services with open source variants. As I'm using Android phone for all these years, getting rid of Google was the hardest part, even though I don't necessarily have a big problem with them. Given how much you can control in your settings, they are doing a good job. This made the exercise quite interesting because I had no clue anymore how many dependencies I had on them. Besides that, I simply started to hate the additional layers that Android comes with, plus additional applications which come from the vendors as well on your phone. It should be easier to control this, which simply is not the case anymore.

The most fun part so far was discovering many fun and handy applications out there that exactly do one thing perfectly. Especially playing with GPS utilities was rewarding.

I still have a Google account for one reason: publish two apps (Indigenous and Gentse Feesten) on the play store. I'm not planning to close that down for now as more are on the way. I will be moving all YouTube videos to a PeerTube instance though at some point.

Food for thought

This might not apply to your personal situation, but below are some general digital principles I try to live by.

  • Don't use main stream services: no WhatsApp, Facebook, Slack and so on for me. I really don't miss anything at all (au contraire), and there are good replacements for communication. Signal comes to mind, and the list of people I know using it is steadily growing.
  • Work: don't read your e-mail or sync your calendar on the phone. I've stopped doing this for almost a year now and it's extremely liberating. Ideally, my next phone also comes with two sim card slots so I can start using a dedicated professional phone number.
  • Use your own domain for your website and go IndieWeb. It still allows you to broadcast to external services like Twitter, or (even better), the Fediverse.

Data management

To store, sync and backup my personal data, I've setup a private Nextcloud instance. It manages my files, contacts and calendar. More extensions are available which I still have to discover, but the important ones are covered. My partner also has an account and uses it to manage her work and our shared calendar.

My e-mails provider is Combell where my personal domain is registered.


Running /e/ on a Fairphone which is really smooth. In all fairness, I do like the look and feel of LineageOS a bit more, but it's still great. The Pine64 is also interesting, but then for the laptop only since I've tried an Ubuntu based phone in the past which was quite disappointing.


  • General: Signal, K-9 Mail, VLC, Open Camera, Simple mobile tools calendar, andOTP, Jitsi Meet, Nextcloud (with DAVx5), c:geo and (of course) Indigenous.
  • Ad blocking: personalDNSfilter. Works amazing and has great flexibility. I've also added *.facebook.com. I smiled when I added that line.
  • I'm not a fan of the default launcher, so I run a slightly modified version of the Trebuchet launcher from LineageOS.

That's practically the full list I have installed. I'm hardly distracted anymore by my phone, apart from playing Wordfeud which is a big hit with the family. Feel free to challenge me, swentel is my username.

Itsme could be installed using the Aurora store. It's a useful tool to login into my bank accounts or government services. I still think they should offer a non mobile solution, like. e.g. Signal desktop has, because relying on a phone alone is annoying and a bit weird IMO. (Look again at the second introduction movie, it even becomes more weirder in my opinion: someone working on a tablet, then having to switch to a phone .. really .. it's just silly).


OS: Ubuntu. I've been a long time Redhat/Fedora user, but switched a few years ago as I experienced too many hassles when upgrading. Check your dash settings and optionally motd-news too. I might switch back one day though, or go to XUbuntu, you never know. Qubes OS has been on my radar for a while as well, especially as Android support is on the roadmap.


  • General: Evolution (mail, contacts), Signal desktop, Nextcloud sync, Libre Office, Glimpse, Authenticator, KeepassX and supergenpass bash. Using Jitsi web for video conferencing.
  • Ads blocking: manage my hosts file with the excellent project by Steven Black. Pi-hole is on the radar so I can protect my entire network even better.
  • HexChat: yes, I'm still on IRC, connected with the freenode network, usually on most #indieweb channels. Now and then I login into drupalchat.eu, but happens rarely.
  • GPS babel and GpsPrune: utitilies to read activities from my Garmin Instinct watch and convert gpx files. This is enough so I don't need a Garmin account or the Garmin apps to sync tracks, waypoints or courses.