Tag: micropub

Over the last week, I’ve added some features to Blotpub that were long in works – support for syndicating longer posts, support for updating posts. I’ve also automated sending of webmentions to the target sites for reply and like posts types. It’s been some productive week this.

I am having fun getting back into Indieweb stuff — working on adding support for updates to Blotpub. This has been in works for so long, I had to get to it. I also recently added support for syndicating longer posts to Twitter and Mastodon. Always makes me relaxed.

I wish there was a clean Micropub client which could handle long form posts – especially saving drafts. I usually use the self hosted Micropublish instance for notes, likes etc as I prefer the interface. But not for long form which Quill does handle better. However, it just isn’t right.

There have been times – like now – when I think I should just attempt to create one Micropub client focused primarily on long form posts. My needs are simple – a clean, distraction less interface to write. Support local drafts. But then had to stop myself and wonder, may be there does exist such option out there which I just am not aware of?

Blotpub bundles a Media Endpoint now

There was one (last?) missing piece in the quest of mine to simplify posting to my blog – and that was photos. Most of my posts originate on micropub clients, mainly Micro.blog. But photos couldn’t without a media endpoint. Not any more. Blotpub now has one in-built.

Blotpub now supports syndication to Mastodon

With all the recent discussions around Mastodon and how it is different, possibly better, I thought there is no way to judge that without using the platform first, be a native resident”.

But I have come to realise one fact, I just can’t post actively at multiple places. Especially important, none of those places can not be my blog. It has to be posted on my blog first and may then flow into other systems. POSSE.

Micro.blog was covered, via feeds. It had also got me covered for Twitter. Mastodon didn’t look to be an easy case. There is no easy way to push updates from feeds to Mastodon. Web hooks may be the only feasible way. I thought I had to get a more seamless solution than that.

And what better may to do that than syndicating right while posting. So I have updated Blotpub to support syndication to Mastodon. I can now indicate the Micropub clients to syndicate current posts to Mastodon. Nice!

Blotpub update: Endpoint now supports uploading photos, however just as multipart data. So you would not be able to upload the images from Micro.blog official apps yet. But you should be able to do so via Quill, as I did my last photo post.

Blotpub Now Supports Likes and Replies

Since I introduced blotpub a couple of days back, I have been continuously posting to the site from different Micropub clients. And I am happy that the system worked well. Added satisfaction was provided by the community by expressing interest and openness to try the endpoint out.

As I had mentioned in that post, handling “the creation of like and reply post types” was next on the list. I just couldn’t live with the fact that the endpoint didn’t handle these simple post types. So, it had to be addressed. And it is addressed now — the latest version of blotpub handles replies and like posts.

The information is added as properties in-reply-to and like-of to the post metadata.

In addition, support has been added to explicitly place the date property as part of the metadata.

Earlier, file creation date was used as the post date. The enhancement was discussed with @jack as part of this git issue. With this version, if the published date is provided, it would be set in the metadata. Else date-time for post creation request would be used. To enable this, just set SET_DATE environment variable to true. Additionally, you can also set the TZ variable to override default timezones for the server hosting your endpoint. Refer to the README for more details.

I have also fixed some minor issues in handling the post creation via different clients, mainly Micro.blog iOS client.

What’s next? Handling of image files.

Blotpub – Micropub Endpoint for Blot

Continuing my experiments with Blot, and as a next step in Indiewebifying it, I had recently sorted out the webmentions setup and display.

There was one final piece of puzzle missing, one that I had posted in a recent update on the theme refresh.

Why not make this the primary homepage? Well, I am still on the journey of indiewebifying this place. I still post to my site using other apps, mainly Quill and Micro.blog. Until I get the micropub endpoint that I am working on done, I will keep this place booked for my excursions, my experiments.

Well, I finally managed to get a basic version of one worked out. Basic, but a workable version. Introducing Blotpub.

It is a self-hosteable Micropub endpoint for blot.im and Dropbox. It accepts Micropub requests, creates a simple Blot posts and saves them to a configured Dropbox folder. This enables updating a Blot blog through a Micropub client.

I have tested creation of both long and short posts via Quill. It supports creation of posts with or without titles. For me, the former are my micro posts while later are more of the long form articles.

It also supports metadata creation for tags and slugs as part of the post documents.

With this, I have my basic needs covered. Most of the time, I am posting text posts; the current version should be able to handle that.

Next, I need to handle the creation of like and reply post types and also handle the image files. It may so happen that I end up getting these done soon. However, I wanted to put the bare bones version out there.

How do I use this?

Well, as I said earlier the source is open. It is a Node application which you can self-host as your own micropub endpoint. I have covered some of the details as part of the project readme.

However, before you use blotpub, there is one essential step from IndieWeb that needs to be addressed – to make your website your identity online. It involves declaring openly your social network profiles as rel-me links and link those profiles back to your site. This allows you to login to any IndieAuth enabled services using your website’s homepage – no need to create an account or maintain passwords.

You can refer to the Essential IndiWeb” section in this post on how to display webmentions on your site. That step applies to using a micropub too.

This is an early alpha release of the application. Things may be a bit unstable. Please use it with caution. Also, I will continue to work on this and improve it, so, you may have to refresh your deployment regularly. However, I would be happy if you choose to join me on this bumpy ride – this will only get better with more people using it.
  1. Install: Just install this as a normal Node.js application. A better way would be to deploy directly to Heroku.

  2. Grant Dropbox Access: Generate a Dropbox access token from the Dropbox App Console to grant the application access to your Dropbox folder. Just create a new app in the console, chose API as Dropbox API, select the type of access as Full Dropbox” and finally, name your application. You will need this generated token while configuring your application. Just to reiterate the point, the Permission type” for the app that you create for blotpub in dropbox needs to be set to Full Dropbox”
  3. Configure: Add the required configuration values via environment variables or the Heroku app deploy dashboard. You will need the token generated above.

  4. Endpoint Discovery: Once you have deployed the application, your Micropub endpoint will be available at /micropub (e.g. https://deployed-blotpub-app.com/micropub). Note that the endpoint url is different from your website url. It would be the url for the blotpub application that your installed in the 1st step.

    For Heroku deployment, it would be something like https://*****.herokuapp.com/micropub (exact url will be available at Heroku dashboard). To enable automatic discovery for your Micropub endpoint and token endpoint, you will need to add the following values to your Blot site’s <head> – usually available in the head.html file in your theme/template.

<link rel="micropub" href="https://deployed-blotpub-app.com/micropub"> <link rel="token_endpoint" href="https://tokens.indieauth.com/token">
  1. Media Endpoint: Most of the micropub clients, like quill, can send the media files as multipart data. So, you can attach image while creating a new post. However, some clients like Micro.blog require a Media Endpoint to handle the media files (primarily the image files). Blotpub comes with an inbuilt media endpoint. To use it, just configure the MEDIA_ENDPOINT variable in your blotpub deployment to https://deployed-blotpub-app.com/micropub/media (for Heroku, something like https://*****.herokuapp.com/micropub/media). This will allow you to post image from such clients too.

  2. Note that file uploads via blotpub media endpoint will only add the image file at the location configured at PHOTO_PATH and the URL to the image will be added to the post metadata as photo: <url-to-image>. To render this in the post, you can add the below code block in entries.html and entry.html in your Blot theme either before or after {{{html}}} as per your preference.

{{#metadata.photo} } <img src="{{metadata.photo} }"> {{/metadata.photo} }

You should now be able to post to your Blot site from external Micropub clients (like Micro.blog iOS App, Quill etc). If you do use this, ping me. All your feedback is welcome.

Micropub endpoint from the ground up

The recent experiments with blot.im has given the perfect opportunity to explore if I can get a Micropub endpoint created specifically for my needs. Till now, I have been using a custom fork of a endpoint from Pelle Wessman for my Hugo site. It has served me well.

However, I always wished if I could get one written specifically for my simple needs. One that I know and understand every part of. Given that I have no endpoint yet for the blot site, this is clear opportunity to create one geared for making this site micropub enabled. Hugo site will address my third-party-posting needs till then. So here’s the start. I will capture this journey, of course, here and will keep this updated with progress (I hope). Below are the things at this point that I need to get started.

I want to explore python first as an option to get this implemented. I have come to realise that I do not like Javascript as a language. I can get work with it, but at times the inconsistencies and the constructs get in my hair.