PressForward as an IndieWeb WordPress-based RSS Feed Reader & Pocket/Instapaper Replacement

As many know, for the past 6 months or so, I’ve been slowly improving some of the IndieWeb tools and workflow I use to own what I’m reading both online and in physical print as well as status updates indicating those things. [1][2][3]

Since just before IndieWebCamp LA, I’ve been working on better ways to own the articles I’ve been reading and syndicate/share them out to other social platforms. The concept initially started out as a simple linkblog idea and has continually been growing, particularly with influence from my attendance of the Dodging the Memory Hole 2016: Saving Online News conference at UCLA in October. Around that same time, it was announced that Pinterest was purchasing Instapaper and they were shutting down some of Instapaper’s development and functionality. I’ve been primarily using Pocket for several years now and have desperately wanted to bring that functionality into my own site. I had also been looking at the self-hostable Wallabag alternative which is under heavy active development, but since most of my site is built on WordPress, I really preferred having a solution that integrated better into that as a workflow.

Enter PressForward

I’ve been looking closely at PressForward for the past week and change as a self-contained replacement for third party services like Pocket and Instapaper. I’ve been looking around for this type of self-hosted functionality for a while.

PressForward was originally intended for journalists and news organizations to aggregate new content, add it to their newsroom workflow, and then use it to publish new content. From what I can see it’s also got a nice following in academia as a tool for aggregating content for researchers focused on a particular area.

It only took a minute or two of looking at PressForward to realize that it had another off-label use case: as a spectacular replacement for read-later type apps!

In an IndieWeb fashion, this fantastic WordPress plugin allows me to easily own private bookmarks of things I’d like to read (PressForward calles these “Nominations” in keeping with its original use case). I can then later read them on my own website (with Mercury f.k.a Readability functionality built in), add commentary, and publish them as a read post. [Note: To my knowledge the creators of PressForward are unaware of the IndieWeb concept or philosophies.]

After some playing around for a bit and contemplating several variations, configurations, and options, I thought I’d share some thoughts about it for others considering using it in such an off-label manner. Hopefully these may also spur the developers to open up their initial concept to a broader audience as it seems very well designed and logically laid out.

Examples

The developers obviously know the value of dogfooding as at least two of them are using it in a Pocket-like fashion (as they many not have other direct use-cases).

Pros

PressForward includes a beautiful, full built-in RSS Feed Reader!

This feature alone is enough to recommend using it even without any other feature. I’ve tried Orbit Reader and WhisperFollow (among others) which are both interesting in their own rights but are somewhat limited and have relatively clunky interfaces. The best part of WhisperFollow’s premise is that it has webactions built in, but I suspect these could easily be added onto PressForward.

In fact, not just hours before I’d discovered PressFoward, I’d made this comment on the WordPress Reader Refresh post announcing the refresh of WordPress.com’s own (separate) reader:

Some nice visual changes in this iteration. Makes it one of the most visually pretty feed readers out there now while still maintaining a relatively light weight.

I still wish there were more functionality pieces built into it like the indie-reader Woodwind.xyz or even Feedly. While WordPress in some sense is more creator oriented than consumption oriented, I still think that not having a more closely integrated reader built into it is still a drawback to the overall WordPress platform.

Additionally,

  • It’s IndieWeb and POSSE friendly
  • It does automatic link forwarding in a flexible/responsible manner with canonical URLs
  • Allows for proper attributions for the original author and content source/news outlet
  • Keeps lots of metadata for analyzing reading behavior
  • Taggable and categorizable
  • Allows for comments/commenting
  • Could be used for creating a linkblog on steroids
  • Archives the original article on the day it was read.
  • Is searchable
  • Could be used for collaboration and curation
  • Has Mercury (formerly known as Readability) integrated for a cleaner reading interface
  • Has a pre-configured browser bookmarklet
  • Is open source and incredibly well documented
  • One can count clicks to ones’ own site as the referer while still pushing the reader to the original
  • Along with other plugins like JetPack’s Publicize or Social Networks Auto-Poster, one can automatically share their reads to Twitter, Facebook, or other social media silos. In this case, you own the link, but the original publisher also gets the traffic.

Cons

No clear path for nominating articles on mobile.

This can be a dealbreaker for some, so I’ve outlined a pretty quick and simple solution below.

No direct statistics

Statistics for gauging ones’ reading aren’t built in directly (yet?), but some scripts are available. [4][5][6]

No larger data aggregation

Services like Pocket are able to aggregate the data of thousands of users to recommend and reveal articles I might also like. Sadly this self-hosted concept makes it difficult (or impossible) do have this type of functionality. However, I usually have far too much good stuff to read anyway, so maybe this isn’t such a loss.

Suggested Improvements

Adding the ability to do webactions directly from the “Nominated” screen would be fantastic, particularly for the RSS reader portion.

Default to an unread view of the current “All Content” page. I find that I have to filter the view every time I visit the page to make it usable. I suspect this would be a better default for most newsrooms too.

It would be nice to have a pre-configured archive template page in a simple linkblog format that filters posts that were nominated/drafted/published via the Plugin. This will prevent users from needing to create one that’s compatible with their current theme. Something with a date read, Title linked to the original, Author, and Source attribution could be useful for many users.

A PressForward Nomination “Bookmarklet” for Mobile

One of the big issues I came up against immediately with PressForward is ease of use on mobile. A lot of the content I read is on mobile, so being able to bookmark (nominate) articles via mobile or apps like Nuzzel or Twitter is very important. I suspect this may also be the case for many of their current user base.

Earlier this year I came across a great little Android mobile app called URL Forwarder which can be used to share things with the ubiquitous mobile sharing icons. Essentially one can use it to share the URL of the mobile page one is on to a mobile Nomination form within PressForward.

I’d suspect that there’s also a similar app for iOS, but I haven’t checked. If not available, URL Forwarder is open source on Github and could potentially be ported. There’s also a similar Android app called Bookmarklet Free which could be used instead of URL Forwarder.

PressForward’s built in bookmarklet kindly has a pre-configured URL for creating nominations, so it’s a simple case of configuring it. These details follow below for those interested.

Configuring URL Forwarder for PressForward

  1. Open URL Forwarder
  2. Click the “+” icon to create a filter.
  3. Give the filter a name, “Nominate This” is a reasonable suggestion. (See photo below.)
  4. Use the following entry for the “Filter URL” replacing example.com with your site’s domain name: http://example.com/wp-content/plugins/pressforward/includes/nomthis/nominate-this.php?u=@url
  5. Leave the “Replaceable text” as “@url”
  6. Finish by clicking on the checkmark in the top right corner.

Simple right?

Nominating a post via mobile

With the configuration above set up, do the following:

  1. On the mobile page one wants to nominate, click the ubiquitous “share this” mobile icon (or share via a pull down menu, depending on your mobile browser or other app.)
  2. Choose to share through URL Forwarder
  3. Click on the “Nominate” option just created above.
  4. Change/modify any data within your website administrative interface and either nominate or post as a draft. (This part is the same as one would experience using the desktop bookmarklet.)

What’s next?

Given the data intensity of both the feed reader and what portends to be years of article data, I’m left with the question of hosting it within my primary site or putting it on a subdomain?

I desperately want to keep it on the main site, but perhaps hosting it on a subdomain, similar to how both Aram Zucker-Scharff and James Digioia do it may be better advised?

I’ve also run across an issue with the automatic redirect which needs some troubleshooting as well. Hopefully this will be cleared up quickly and we’ll be off to the races.

References

[1]
C. Aldrich, “A New Reading Post-type for Bookmarking and Reading Workflow,” BoffoSocko | Musings of a Modern Day Cyberneticist, 22-Aug-2016. [Online]. Available: http://boffosocko.com/2016/08/22/a-new-reading-post-type-for-bookmarking-and-reading-workflow/. [Accessed: 31-Dec-2016]
[2]
C. Aldrich, “Owning my Online Reading Status Updates,” BoffoSocko | Musings of a Modern Day Cyberneticist, 20-Nov-2016. [Online]. Available: http://boffosocko.com/2016/11/20/owning-my-online-reading-status-updates/. [Accessed: 31-Dec-2016]
[3]
C. Aldrich, “Notes, Highlights, and Marginalia from E-books to Online,” BoffoSocko | Musings of a Modern Day Cyberneticist, 24-Oct-2016. [Online]. Available: http://boffosocko.com/2016/10/24/notes-highlights-and-marginalia/. [Accessed: 31-Dec-2016]
[4]
A. Zucker-Scharff, “Personal Statistics from 3 Months of Internet Reading,” Medium, 05-Sep-2015. [Online]. Available: https://medium.com/@aramzs/3-month-internet-reading-stats-f41fa15d63f0#.dez80up7y. [Accessed: 31-Dec-2016]
[5]
A. Zucker-Scharff, “Test functions based on PF stats for collecting data,” Gist. [Online]. Available: https://gist.github.com/AramZS/d10fe64dc33fc9ffc2d8. [Accessed: 31-Dec-2016]
[6]
A. Zucker-Scharff, “PressForward/pf_stats,” GitHub. [Online]. Available: https://github.com/PressForward/pf_stats. [Accessed: 31-Dec-2016]

RSS Feeds on BoffoSocko.com

Over the past two years I’ve been owning more and more of the data that I used to sharecrop into various social media silos. Instead of posting it to those sites which I don’t own, don’t control, and can’t rely on them staying up forever, I’m posting on my own site first and when it seems worthwhile, I’m syndicating my content back out to them to take advantage of their network effects.

A Crowded Stream

As a result of owning all this data, my blog/site has become MUCH more active than it had been before. (It’s also been interesting to see just how much data I’d been giving to social media sites.) This extra activity has caused a few to tip me off that they’re seeing a lot of email notifications and additional material in their RSS feeds that they’re not used to seeing (and may not necessarily care about). So rather than risk them unsubscribing from everything and allow them to receive what they’re used to seeing, I’ve spent some time in the last couple of days to work on my IndieWeb Commitment 2017 which was to:

Fix my site’s subscription/mail functionality so that I can better control what current subscribers get and allow for more options for future subscribers.

Because a lot of the recent additions to my site have been things like owning all my Instagram posts, my bookmarks, what I’m watching, updates about books I’m reading, and links to everything I’ve been reading online, I’ve been using a category on the site called “Social Stream” with each of these posts as sub-categories. In most cases, social stream could be synonymous with microblog to some extent though it covers a broader range of content than just simply Twitter-like status updates.

Filtering Social Stream Posts out of My Email Subscriptions

I added a filter in my functions.php file for the JetPack-based plugin that prevents my site from emailing those who have used the JetPack subscription service from receiving emails for each and every post in those categories.

I had previously been preventing some of these emails from firing on a manual basis, but with their increased frequency, it was becoming unsustainable.

For those interested, the code and some useful tips can be found at the JetPack site. A copy of the specific code I’m currently using in my functions.php file appears below:

add_filter( 'jetpack_subscriptions_exclude_these_categories', 'exclude_these' );
function exclude_these( $categories ) {
$categories = array( 'social-stream');
return $categories;
}

More Flexible RSS Feeds and Discovery

For future subscribers, I wanted to allow some easier subscription options, particularly when it comes to RSS. Fortunately WordPress does a pretty good job of not only providing RSS feeds but makes them relatively configurable and customizeable with good documentation. [1] [2]

Custom URLs for RSS Syndication and .htcacess Modifications

I wanted to create a few human-readable RSS feed names and feeds including:

With somewhat canonical feed URLs, I can always change where they point to in the future. To do this and have them map over into the actual feeds for these things, I did a bit of remapping in my .htaccess file based on some thoughts I’d run across recently.  The code I used appears below:

# BEGIN rss
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^rss\.xml$ "/feed?cat=-484"[L,R]
RewriteRule ^microblog\.xml$ "/feed?cat=484"[L,R]
RewriteRule ^articles\.xml$ "/feed?kind=article"[L,R]
RewriteRule ^instagram\.xml$ "/feed?cat=936"[L,R]
RewriteRule ^linkblog\.xml$ "/feed?cat=964,945"[L,R]
RewriteRule ^read\.xml$ "/feed?cat=945"[L,R]
RewriteRule ^math\.xml$ "/feed?cat=10"[L,R]
RewriteRule ^informationtheory\.xml$ "/feed?cat=687"[L,R]
RewriteCond %{Query_STRING} ^$
RewriteRule ^feed$ "/rss.xml" [L,R]
</IfModule>
# END rss

Each of the cat=### are the numbers for the particular category numbers I’m mapping within WordPress for the associated category names.

RSS Feed Pattern for IndieWeb Post Kinds Plugin

I also spent a few minutes to figure out the RSS feed patterns to allow for the additional feeds provided by the Post Kinds plugin to work. While Post Kinds is similar to the native WordPress post formats, it’s designed particularly with IndieWeb posts in mind and uses a custom taxonomy which also wraps particular post kinds in the appropriate microformats automatically. The general form for these RSS feeds would be:

Other feeds could be constructed similarly by replacing “article” with the other kinds including:  bookmark, favorite, jam, like, listen, note, photo, read, recipe, reply, repost, watch, and wish. I suspect that most will only want the articles while those who are really interested in the others can either “build” them themselves for subscribing, or given the sporadic nature of some, they would more likely be interested in the “social stream” feed noted above.

Discoverability

Finally there’s the most important question of what feed readers like Feedly or Woodwind can actually discover when someone searches for an RSS feed on my domain. It’s one thing to have customized feeds, but if feed readers can’t easily find them, the subscriber is never likely to see them or know they exist to want to consume them. Most advanced feed readers will parse the headers of my site for discover-able feeds and present them to the user for possible subscription.

Out of the box WordPress provides two RSS feeds as standard: one for posts (essentially everything) and one for comments.  I added several additional ones (like those mentioned above), which I thought might be most requested/useful, into my page header to provide a slightly broader range of subscription options. I even included a few feeds for alternate sites I run, like my WithKnown-based site. I suppose if I wanted I could advertise feeds for my favorite sites anywhere.

To add these additional feeds, I added several additional lines into my page header similar to the following example which makes my posts categorized or tagged as mathematics discoverable:

<link rel="alternate" type="application/rss+xml" title="Chris Aldrich » Mathematics Feed" href="http://boffosocko.com/math.xml" />

Wrap up

Hopefully with these few simple changes, those who wish to subscribe to my blog by email won’t be inundated with a lot of the social details. Those who want all or even smaller portions of my feed can consume them more easily, and there’s a way to be able to consume almost anything you’d like by category, tag, or post format/post kind.

Now on to my stretch goal:

Finish my monthly email newsletter

Comments/Questions?

Is there a particular type of content I’m creating here that you’d like to subscribe to? Let me know in the comments below if there’s a feed of a post format/kind, category, or tag you’d like to have that isn’t mentioned above.

References

[1]
“WordPress Feeds « WordPress Codex,” WordPress.org. [Online]. Available: https://codex.wordpress.org/WordPress_Feeds. [Accessed: 18-Dec-2016]
[2]
“Customizing Feeds « WordPress Codex,” WordPress.org. [Online]. Available: https://codex.wordpress.org/Customizing_Feeds. [Accessed: 18-Dec-2016]

A New Reading Post-type for Bookmarking and Reading Workflow

This morning while breezing through my Woodwind feed reader, I ran across a post by Rick Mendes with the hashtags and which put me down a temporary rabbit hole of thought about reading-related post types on the internet.

I’m obviously a huge fan of reading and have accounts on GoodReads, Amazon, Pocket, Instapaper, Readability, and literally dozens of other services that support or assist the reading endeavor. (My affliction got so bad I started my own publishing company last year.)

READ LATER is an indication on (or relating to) a website that one wants to save the URL to come back and read the content at a future time.

I started a page on the IndieWeb wiki to define read later where I began writing some philosophical thoughts. I decided it would be better to post them on my own site instead and simply link back to them. As a member of the Indieweb my general goal over time is to preferentially quit using these web silos (many of which are listed on the referenced page) and, instead, post my reading related work and progress here on my own site. Naturally, the question becomes, how does one do this in a simple and usable manner with pretty and reasonable UX/UI for both myself and others?

Current Use

Currently I primarily use a Pocket bookmarklet to save things (mostly newspaper articles, magazine pieces, blog posts) for reading later and/or the like/favorite functionality in Twitter in combination with an IFTTT recipe to save the URL in the tweet to my Pocket account. I then regularly visit Pocket to speed read though articles. While Pocket allows downloading of (some) of one’s data in this regard, I’m exploring options to bring in the ownership of this workflow into my own site.

For more academic leaning content (read journal articles), I tend to rely on an alternate Mendeley-based workflow which also starts with an easy-to-use bookmarklet.

I’ve also experimented with bookmarking a journal article and using hypothes.is to import my highlights from that article, though that workflow has a way to go to meet my personal needs in a robust way while still allowing me to own all of my own data. The benefit is that fixing it can help more than just myself while still fitting into a larger personal workflow.

Brainstorming

A Broader Reading (Parent) Post-type

Philosophically a read later post-type could be considered similar to a (possibly) unshared or private bookmark with potential possible additional meta-data like: progress, date read, notes, and annotations to be added after the fact, which then technically makes it a read post type.

A potential workflow viewed over time might be: read later >> bookmark >> notes/annotations/marginalia >> read >> review. This kind of continuum of workflow might be able to support a slightly more complex overall UI for a more simplified reading post-type in which these others are all sub-types. One could then make a single UI for a reading post type with fields and details for all of the sub-cases. Being updatable, the single post could carry all the details of one’s progress.

Indieweb encourages simplicity (DRY) and having the fewest post-types possible, which I generally agree with, but perhaps there’s a better way of thinking of these several types. Concatenating them into one reading type with various data fields (and the ability of them to be public/private) could allow all of the subcategories to be included or not on one larger and more comprehensive post-type.

Examples
  1. Not including one subsection (or making it private), would simply prevent it from showing, thus one could have a traditional bookmark post by leaving off the read later, read, and review sub-types and/or data.
  2. As another example, I could include the data for read later, bookmark, and read, but leave off data about what I highlighted and/or sub-sections of notes I prefer to remain private.

A Primary Post with Webmention Updates

Alternately, one could create a primary post (potentially a bookmark) for the thing one is reading, and then use further additional posts with webmentions on each (to the original) thereby adding details to the original post about the ongoing progress. In some sense, this isn’t too far from the functionality provided by GoodReads with individual updates on progress with brief notes and their page that lists the overall view of progress. Each individual post could be made public/private to allow different viewerships, though private webmentions may be a hairier issue. I know some are also experimenting with pushing updates to posts via micropub and other methods, which could be appealing as well.

This may be cumbersome over time, but could potentially be made to look something like the GoodReads UI below, which seems very intuitive. (Note that it’s missing any review text as I’m currently writing it, and it’s not public yet.)

Overview of reading progress
Overview of reading progress

Other Thoughts

Ideally, better distinguishing between something that has been bookmarked and read/unread with dates for both the bookmarking and reading, as well as potentially adding notes and highlights relating to the article is desired. Something potentially akin to Devon Zuegel‘s “Notes” tab (built on a custom script for Evernote and Tumblr) seems somewhat promising in a cross between a simple reading list (or linkblog) and a commonplace book for academic work, but doesn’t necessarily leave room for longer book reviews.

I’ll also need to consider the publishing workflow, in some sense as it relates to the reverse chronological posting of updates on typical blogs. Perhaps a hybrid approach of the two methods mentioned would work best?

Potentially having an interface that bolts together the interface of GoodReads (picture above) and Amazon’s notes/highlights together would be excellent. I recently noticed (and updated an old post) that they’re already beta testing such a beast.

Kindle Notes and Highlights are now shoing up as a beta feature in GoodReads
Kindle Notes and Highlights are now shoing up as a beta feature in GoodReads

Comments

I’ll keep thinking about the architecture for what I’d ultimately like to have, but I’m always open to hearing what other (heavy) readers have to say about the subject and the usability of such a UI.

Please feel free to comment below, or write something on your own site (which includes the URL of this post) and submit your URL in the field provided below to create a webmention in which your post will appear as a comment.

 

📅 WordCamp Orange County 2016

RSVPed Attending WordCamp Orange County 2016
WordCamp Orange County is a great place to learn meet, talk, and immerse yourself in everything WordPress. From the absolute beginner to the hardest of hardcore developers, WordCamp Orange County will have something for you. WordCamp Orange County is going to bring you two tracks of sessions and workshops to satisfy designers and developers, bloggers and beginners, business owners and burgeoning writers. Are you ready for the summer? July 9-10, 2016
@ocwordcamp
#WCOC16
Replied to Support » Theme: Academica » Surprised by all the bad reviews..! by Adam_Murphy (@adam_murphy)Adam_Murphy (@adam_murphy) (WordPress.org)
Wow, I came on here to download this theme for a second time – only to see that all the reviews given were 1 stars. I have used it with great success on my website vondt.net (sorry, its in norwegian – but you should be able to see that the design works flawlessly). I haven’t used the slideshow function though, as I see most negatives are aimed at that function. Yes, it did have some hickups in the original source code, but these were quite easy to fix.. feel free to contact me via the website or otherwise and maybe I can help you out.
I agree wholeheartedly with Adam, though I don’t think I’d really seen any small issues except perhaps for an odd CSS issue in formatting an <h2> tag somewhere. (Note: This comment applies to v1.2.3 of Academica as on 4/2/15, the theme publisher made a DRASTIC change to the theme, so take caution in upgrading!!)

I have created a child-theme with one or two small customizations (slightly larger headings in side widgets and some color/text size changes), but otherwise have v1.2.3 working as perfectly as it was intended to. This includes the slideshow functionality on the homepage. See BoffoSocko as an example.

For those, perhaps including Adam, wanting to get the slider to work properly:

  • Go to your WP Dashboard hover on the menu tab “appearance” and click on “customize”
  • On the “Featured Content” tab, enter a tag you want to use to feature content on the homepage of your site. (In my case, I chose “featured” and also clicked “Hide tag from displaying in post meta and tag clouds”.)
  • Go to one or more posts (I think it works on up to 10 featurable posts) and tag them with the word you just used in the featured content setting (in my case “featured”
  • Next be sure to actually set a “Featured photo” for the post–930×300 pixels is the optimal photo size if I recall.
  • Now when you visit your home page, the slider should work properly and include arrows to scroll through them (these aren’t as obvious on featured photos with white backgrounds).
  • Note that on individual pages, you’ll still have static header image(s) which are also customizable in the “customize” section of the WP dashboard, which was mentioned in step 1.

I hope this helps.

Administrative Note: New Blog URL

For several years, I’ve hosted my personal blog at http://chrisaldrich.wordpress.com. This week I’ve moved everything over to a new address at http://boffosocko.com.

Those who have previously been subscribed by email will continue to receive email notifications of new posts as before.  WordPress.com followers will only see new posts in the Reader. You will not receive email updates unless you subscribe to receive those on the new site.  Some older subscribers may have missed one or two recent posts in the transition this week, so feel free to take a moment to catch up.

Others subscribed via RSS may potentially need to update their RSS feeds to reflect the change.

I’ve set up 301 page redirects so that those visiting old URL pages should automatically be redirected to the appropriate pages, but some may need to use the search box functionality to find the article or notes they were looking for.

If you have any issues/problems in this transition that you can’t seem to remedy directly, please email me directly; I’m happy to help.

Thanks for reading!