Updates on building a feed-based social network

In a previous post, I mentioned that I was able to use a reference app to test rssCloud support for WordPress.com sites and WordPress.org sites. Since then, I have migrated some of the features in the reference app into a demo instance of MyStatusTool, the app I developed in 2022-2023 to provide a Twitter-like experience using rssCloud for notification. Here is a screenshot of the demo instance:

Currently, the app is subscribed to 11 WordPress.com sites, 1 WordPress.org site, and 6 non-WordPress sites. I did perform tests to confirm that all of these three types of rssCloud sites appeared within seconds on my demo instance. Woohoo! I will let this demo instance run for several days to check the re-subscribe function, but I think this is a good enough start to plan for a rollout of the feed-based social network.

Taking steps to build a feed-based social network

In a previous post, I mentioned that my vision of a feed-based social network included the use of rssCloud as the notification system within RSS feeds. Back in 2022, I did some investigation regarding support of the rssCloud protocol in WordPress.com and WordPress.org sites, and using FeedLand as the most prominent feed reader supporting the rssCloud protocol. It turned out that although WordPress.com sites had included support for rssCloud since 2009, and WordPress.org sites through the use of the RSS Cloud WordPress plugin, there was some misunderstanding about what a client needed to do to register with the WordPress rssCloud support. This Github gist goes into the details, but to summarize, the client trying to register with WordPress needs to be running on port 80 or 443 to be recognized. Both Feedland and the River5 feed reader (the two prominent feed readers supporting rssCloud notification) did not necessarily run on those ports, and as a result the “real-time” notification of rssCloud did not occur. Those feed readers were able to read the WordPress RSS feed and display updates, but not in real-time.

FeedLand was updated and now supports WordPress rssCloud registration. As part of that effort, Dave Winer created a rssCloud server demo project to use to check rssCloud server implementations. I decided to check this out with a WordPress.com site and a WordPress.org site using the RSS Cloud plugin. On my server, I am using the Caddy web server, and had some subdomains being hosted through Caddy. I updated the rssCloud demo code to use the port I am running on, and to use one of those subdomains with Caddy doing a reverse proxy so that the app would appear to be running on port 80. My test was successful! I was able to see the app register with both the WordPress.com and WordPress.org sites, and to see the app respond when the sites notified the app of a new post. Here is my copy of the main app and the stats file created by the app.

This is an important step in creating the feed-based social network I have in mind. WordPress is the largest generator of RSS feeds supporting rssCloud, so it is important to understand how the WordPress rssCloud implementation works to make sure that apps interacting in this social network can get real-time updates from WordPress sites.

What should a social network have?

I am cross-posting this from my WordLand blog.

The mention of a social network built around RSS has come up again. I added my off-the-cuff thoughts on this topic in this post, but I also wanted to review Dave Winer’s description on the rssCloud website:

There are three sides to the cloud:#

  • The authoring tool. I edit and update a feed. It contains a element that says how a subscriber should request to notification of updates.#
  • The cloud. It is notified of an update, and then in turn notifies all subscribers.#
  • The subscriber. A feed reader, aggregator, whatever — that subscribes to feeds that may or may not be part of a cloud. #

I think that these three elements are the minimum features for a social network to exist. By breaking this down into three parts, it is easier to see that multiple applications cane be created or assembled to create a social network. It does not have to be an “all-in-one” application (like Twitter, Mastodon, Bluesky, etc.). Users can use whatever tool they want to create their content, and they can use whatever tool they want to consume the content. Finally, both of those tools can interact with a “cloud server” which performs notification. 

So why has this idea/concept not gained traction? I think there are several reasons. Many authoring tools create feeds, but do not support notification. Many subscriber apps read feeds, but on more of a “polling” basis, and not because the app has been notified that a feed has updated. To me, these are places where innovation could start.

I have been waiting for “someone else” to do this work, but “no one” has stepped in to start, so I am going to try adding some “notification” features to some other blogging tools. I would be remiss if I did not point out that there is a RSS Cloud plugin for WordPress blogs, and WordPress.com supports rssCloud. In my experience, though, my self-hosted WordPress blog has not experienced “real-time” performance due to caching of the RSS feed by my host, Bluehost. I have tried many ways to turn this off, with no success.  Anyway, there is nothing “stopping” me from innovating here, so here goes!

Open letter to Dave Winer’s call to develop feed-based social media apps

On December 3, Dave Winer published a “call to develop” for a feed-based social media app (he mentioned Mastodon in his post, but could be any social media app out there in my opinion). Sounds great to me! I have a feed-based app using rssCloud for notification called MyStatusTool (link to Github repo and my install). It is implemented using Node.js, Express, and Embedded Javascript for templating. It inspired Colin Walker to develop a PHP implementation of the tool (Github repo, his install). We were able to use our tools to interop with each other (have a real-time conversation), and to follow other feeds using rssCloud for notification. I have tested my implementation with the rssCloud user feeds from FeedLand and WordPress.com in addition to Colin Walker’s MyStatusTool implementation, and verified the real-time performance (new posts showed up almost immediately).

Now, is MyStatusTool a fully-developed thing? Nope! It’s a bootstrap. It does use a number of Node packages developed by Dave Winer for feed generation and feed reading, and uses Andrew Shell’s rssCloud server for notification, so I think it falls into the “working together” category that Dave Winer wrote about in 2015: “When you have a choice, instead of re-inventing someone else’s work, use it.”

I am ready to work for interop with whatever Dave develops. I don’t have any illusion that MyStatusTool is the epiphany of feed-based social media tools, but I developed it to see if one could be developed, and it spawned another implementation, so I think that is pretty cool. Let’s get busy and see what happens!

Solved my problem with WordPress caching

For a long time, I have had problems with apparent caching of WordPress RSS feeds. In my recent work on WordPress support for rssCloud, I eventually was able to get a notification about a WordPress update from the RSS Cloud plugin, but the content of the feed did not update. I spent some time on this again this week, and decided to search for “wordpress caching issues bluehost” (since Bluehost is my hosting service). I found this post on ThemeSkills which described a feature within the Bluehost interface that controls caching on a site-by-site basis. After reading through the post, I was able to turn off caching on my test site for RSS Cloud. I then made a post on that site and saw the update within seconds on FeedLand and MyStatusTool, and saw the latest post display – at last!

Here are the steps:

  • Log into Bluehost account
  • Click on the My Sites link on the left navigation bar
  • Scroll to the site to review and click the Manage button
  • Click on the Performance tab
  • In the Cache Settings area of the page, slide the slider all the way to the left. If it is already there, move it to the right to the Blog area, then back all the way to the left
  • A pop-up will appear, click on the Disable Caching button

PS – Here is a Bluehost page on this topic as well

Demo of MyStatusTool – Twitter using RSS and rssCloud

I have created a proof of concept for a microblogging tool relying on RSS for data storage and rssCloud for notification. I was motivated to do this to show how rssCloud could be used to support a Twitter-like experience. Also, I was blocked for posting an innocuous comment on the FeedLand user feed tool, and felt that there needed to be an alternative to that tool for microblog posting. My earlier posts on the development of this tool are here and here.

In this demo app, the basic functions are:

  • Ability to make a short post
  • When a post is made, a RSS feed is updated, a separate page for the post is created, and the post appears on the home page via Websockets
  • The tool provides hosting for the RSS feed and posts created
  • The tool can display updates to any RSS feeds that support the rssCloud protocol via Websockets (feeds are listed in a configuration file)
  • The contents of the feeds in the configuration file are displayed when the user accesses the page (so they can see what has been posted recently), then any posts with the tool appear at the top of the page

The tool is set up for a single user and requires some configuration. Please consult the README on the Github repo for more information if you want to set up the tool for yourself.

The demo app is available at http://fedwiki.andysylvester.com:443/. The contents of the feeds in the configuration file are displayed, along with any recent posts using the demo app. I encourage people to try making posts and see how they appear and how quickly they appear. As posts continue, so will display of updates to the RSS feeds in the configuration file.

This is a proof of concept, but will be further developed. If you find problems in the tool, or want to suggest features, feel free to create an issue in the Github repo. Also, I would love it if a few other people try installing it and let me know how it goes…

A roadmap for MyStatusTool

Yesterday, I mentioned that I was working on a blog tool not ready to show off yet. Since then, I thought I should follow Colin Walker’s lead in describing some of what I am developing. The working title is MyStatusTool, you can think of it as “Twitter using rssCloud”. The minimum functionality I am working toward is to have a text box to enter a short post, to create a RSS feed based on the posts, for each post to have a page, to ping a rssCloud server when a post is live, to have the posts be displayed in reverse-chronological order, and to display posts from other tools that create RSS feeds supporting rssCloud. This pretty much describes the “Read user feeds…” functionality in FeedLand (link works if you have a FeedLand account). You can also think of the Twitter web user interface as an example. I will probably create a temp Github repo soon to start putting the app under version control. Stay tuned for more updates!