Cross-posting and automating


#1

Continuing along the lines of Making the Ind.ie forum more valuable… I seem to be doing a lot of cross-posting content in different locations. Not just farming out links all over the place, but cross-posting because the discussions we have in different locations (Twitter vs Mastodon vs here) are all valuable in their own ways.

This is in conjunction with @aral and I focusing more on our personal sites (ar.al and laurakalbag.com. As we’re looking at how what we’re building works in conjunction with/layers on top of personal sites.

Aral has put together a setup where he can blog from a phone. I have added a Notes section on my site where I can post short-form stuff like photos and statuses (anything shorter than a blog post, really.) Though my setup is a little more static than Aral’s, as it is literally a static site built using Hugo and I use an iPhone. So no posting from a phone for me. (Yet.)

The idea is that the Notes section of my site is the canonical location for those bits of content. Then I can cross-post to other locations. (This is similar to IndieWeb concepts.)

However, manual cross posting is a pain. If I post a note to my site (create post, write in markdown, push to Git, deploy), I then have to manually go to wherever I want to cross-post (Twitter, Mastodon, Facebook, here etc) , rewrite the content/link to content in an acceptable format (under 260 chars etc), and post. The whole exercise takes time. It may be a worthwhile endeavour for a blog post about something meaningful. But it’s a lot of faff to share a dog photo or a “subtweet”, let alone a reply or reposting of somebody else’s content.

Which finally brings me to my point… how do I make cross-posting easier?

Right now, I have an IFTTT recipe that takes my RSS feed and publishes new posts to Twitter. Like this:

It’s not great. It is only for Twitter (IFTTT doesn’t support Mastodon.)

How do I do this better?

One extreme side is that I could build and maintain my own interface for cross-posting like Jeremy has. There are alternatives to IFTTT like Trigger Happy. Though some social networks (such as Instagram) only let you post from their interface, so this solution will never be entirely compatible with those particular walled gardens. Also, I’m not being defeatist in saying these solutions are somewhat beyond my means.

The other extreme (the low-tech solution) is that I have a to-do list template for every time I post something to make sure I format my posts correctly, and don’t forget a particular social network.

If anyone has any ideas or thoughts on the matter, I’d love to hear them!


#2

Hey Laura.

thanks for sharing your workflow and the challenges that come with it!

It inspired me to share what I try to do: Whenever I post something (blog comment, forum entry, maybe even e-mail …), I try to save that content to a text-file (actually I usually start my writing in Editor and the copy it over to the web-form).
Note: I only create this content from my PC - I have neither the means nor the desire to do it from a mobile device.

That way, I have most of my content (which is somehow valuable to me) on my local hard drive.

I like text files, as they keep the essence with very little overhead (in regards to file size) -> so they are easy to backup (to multiple targets).

I set a backup routine like this (using robocopy.exe, on windows):

Look which files change in the last 100 days AND are smaller than 1 MB. *
-> Copy those to target.

-> I’d run that every 100 days, then zip the target and save it to usb (-> manual tasks, including manually plugging the USB and unplugging it afterwards (-> essential against crypto-lockers)).

*I think this gives me 95 % of total valuable content with only 10 % of total file size.
(I don’t have pictures (e.g. family photos) in this scenario).

I could also imagine managing all those files with git, but those are projects I have not taken on yet!

Joachim


#3

While I have no personal experience with any of these tools, these are the ones I can think of that might be of help to you:

  • RSS to Mastodon: Feed2Toot
  • RSS to Twitter, Facebook and Instagram: Hootsuite (free plan allows for 3 social media profiles)
  • Alternatively there are some Twitter to Mastodon services like Moa or MastodonTwitterCrossposter. Having said that, seeing many ill-formatted / broken re-tweets and quote-tweets on Mastodon every day, you might want to check whether these tools allow to not cross-post those kinds of tweets.

One problem I see with the automation approach however is that the presentation of the content isn’t tailored to the respective platform (except when just posting links with a short caption) and this can be problematic. For example, on Twitter I can openly write about politics, but on Mastodon people prefer putting such posts behind a content warning. Moreover, when posts aren’t formatted for the respective platform there is a risk that they look like coming from a spam-bot that just wants to create reach.

Overall I’d probably prefer an interface from which I could post to all platforms, but since this doesn’t exist and building this tool is beyond my means (:wink:) I’m currently sticking with posting to each platform individually.

I like this idea, especially the simplicity of it. I’d probably need a` solution that works across desktop and mobile devices, but this shouldn’t be a problem since there are many note-taking apps.


#4

Love it. Simple but makes loads of sense.

I completely agree.

Writing a few blog posts last week, and cross-posting them in various locations, got me thinking about how meta information can be reused…

I started looking into the meta information in the <head> of each page, and how best to format it so that social networks (Twitter, Facebook, messaging apps…) would pick up on titles, descriptions and images. That way, when I share a URL from my site, if the site/app has the functionality, they can expand that URL into a preview including a nicely-formatted title, summary, and image. When a platform expands a URL like this, it also saves on the cross-posting hassle, as just posting a URL pulls in the acceptable length of text, correct number of images, and any other arbitrary platform-specific limits. I can just paste a URL into an Apple Message, Slack, Facebook, Wire, and Twitter, and those platforms do the work:

The URL expanded on Slack

The URL expanded on Twitter

The URL expanded on Wire

On Apple Messages the URL expands to a large image and title.

The URL expanded on Apple Messages

The URL expanded on Facebook

An additional bonus is that if anyone else shares that URL from my site, the same preview will usually be shown, so I have some additional control.

Writing <meta> tags for each blog post or note could be very time-consuming, especially as Twitter cards and Open Graph require different formats, resulting in (currently) sixteen meta tags on each page of my site. Fortunately, it seems like most sites pull from these same formats, or the standard <meta name>, <meta author> etc. Hugo can generate these from its embedded templates, or you can use something like the Indiego theme, which helps with other useful meta information such as microformats. Both types of templates use either the default title and summary in your post/page and site config, but can also use the front matter from each post/page to override or add additional meta information. For example, here’s the extra front matter from my Insecure blog post:

image: "/images/2018/07/weary-laura.jpg"
imageAlt: "Photo of me looking wearily at the camera."
description: "The state of sharing on the web is broken."

Using this front matter, the platforms use the specified image, rather than my site’s favicon, and the specified description, rather than a truncated form of the first paragraph.

Above, I mentioned manually producing summaries for different social media platforms. But when I was starting to add description and image to the front matter for my latest blog posts and site pages, I realised that the custom-written summaries and descriptions would be far more reusable if I wrote and stored them on my site, at the time of writing.

Maybe something like:

image: "/images/2018/07/weary-laura.jpg"
imageAlt: "Photo of me looking wearily at the camera."
description: "The state of sharing on the web is broken."
description280chars: "The state of sharing on the web is broken. After the Snowden revelations, it became clear that my sharing “content” willy-nilly was a potential danger to me. I was previously oblivious to the risk of sharing everything about myself on social media…"
description500chars: "The state of sharing on the web is broken. After the Snowden revelations, it became clear that my sharing “content” willy-nilly was a potential danger to me. I was previously oblivious to the risk of sharing everything about myself on social media. The tiniest most harmless piece of information about me could be derived in a data set somewhere to become something very meaningful (even if it’s wrong) and potentially dangerous."

I’d make the description lengths (280 characters for Twitter, 500 for Mastodon) generic, rather than specific to the social networks (e.g descriptionMastodon) as I might want to use those description lengths for other platforms, and those may not be my platforms of choice in the future.

With these custom descriptions, I can either use them for automated posting (using something like IFTTT or clever API integration), or just copy and paste the text out if I want to manually post somewhere. The descriptions are stored in a memorable and canonical location.

I suspect the arrival of image resources and page bundles in Hugo will help with automating meta information around images. Though I’m yet to get my head around bundles, and I’m concerned that automatically grabbing images from folders means it may not be easy to include vital meta information like alternative text.

As I continue making my site more useful and efficient, I’m sure I will find other ways to automate as much of this as possible. Nothing beats handwritten copy, but I don’t need to be writing the same thing over and over again.

(I turned this into a blog post)