Bookmarks in the Fediverse

Last week, there was a flurry of interest in a new addition to the #Fediverse: Postmarks. It’s social bookmarking (like Digg, del.icio.us, or more recently, Pinboard), now with ActivityPub support. Neat!

Organising stuff, “back in the day”

Back in the 2000s I was a huge fan of a site called del.icio.us, and the original iteration of our weekly podcast – currently called Games at Work dot Biz – was named Dogear Nation. Back when Michael and Michael kicked off that show, there was a podcast called Digg Nation which tried to round up the interesting community links and trends from the week on Digg. IBM at the time had an internal version of a social bookmarking / folksonomical platform similar to del.icio.us called “dogear” (like, folding the page of a book to mark it), so Dogear Nation encouraged listeners to tag links on del.icio.us for us to discuss each week… del.icio.us was bought by Yahoo! in 2005, and eventually, went away.

Fast forward 15 years to our current podcast, and we still love it when listeners share links for us to discuss, but there’s less of an organised way to do it!

Join the Federation

A brief diversion, because I’ve not written too much about this on my blog up until now.

Unlike the centralised “Web 2.0”-based, largely corporate-owned sites that dominate the current web, the Fediverse is a set of related services that share some common protocols (ActivityPub is one, but there are others involved) and are loosely-connected. As well as each service usually having some form of “flagship” instance, it is is also very common to encourage diversity by location and interests, and often self-hosting, so it won’t be possible for an unsavoury billionaire to buy the things you use, or misuse and steal the data that you’ve put into them. Your network and your data are your own.

I’m very active across a range of sites and services that are analogous to those you might be familiar with. On Mastodon, for instance, I currently do some work with Mastodon gGmbH, the non-profit behind the project and host of two of the larger service instances; and although my original account was on one of those instances, at the end of last year I moved my account (taking the related network of connections with me) to a much smaller server run by a former coworker, mostly populated by other former coworkers, but I’m still connected with users across the rest of the Fediverse.

You can also find me on PixelFed (Instagram-like photo sharing), on Lemmy (Reddit-like groups and communities), on PeerTube (YouTube-like video channels) where I live on the diode.zone instance for makers and electronics enthusiasts, on Bookwyrm (GoodReads-like community), and so on. Basically there are a number of slices of “me” out there, in spaces where it makes sense. Essentially, if you’re on Mastodon and you’re interested in my videos, you can follow my PeerTube account from Mastodon without having to sign up for PeerTube. It’s pretty cool.

I strongly believe that federated services are the best opportunity for us to maintain a free and open Web.

– me, 2023

So, Postmarks?

Yes! Postmarks is a single-user, super small and simple server for managing your own bookmarks. When I add a bookmark on my own Postmarks server, my Postmarks account effectively publishes the new entry to the rest of the Fediverse as an activity. So, if you’re interested in what I’m bookmarking and you have a Mastodon account, you can follow @andypiper@pipesmarks.glitch.me and you’ll see the new entries as they get added. If you’re not interested, don’t follow my account, and we’re all good. Oh, and it supports Atom feeds for different tags (categories), too.

Postmarks runs on Glitch – or, anywhere else you can stand up a Node.js / Express app. Personally I love Glitch, and I’ve been using it for many years now for hosting demos and trying out different projects – in fact, my main links page runs on Glitch. The Postmarks developer Casey Kolderup works there, and Casey has made it really straightforward to remix directly on Glitch, or import from GitHub there or to another service of your choice – it has very few dependencies.

Getting involved

My usual pattern for reading and saving content is whilst mobile. There’s a bookmarklet that’s part of the project, but no easy way to add it to my system for links to end up on Postmarks from my phone or tablet. I turned to Apple Shortcuts to help out.

A screenshot of Apple Shortcuts on iPadOS 17 beta, showing the sequence of steps to send a link to Postmarks

This does not do too much – it takes a link from the share sheet or clipboard, and opens the add bookmark page popup in a browser tab. At the moment there’s no full API for Postmarks, so this is a bit of a stopgap or workaround. Annoyingly, it will also leave you with an empty browser tab you’ll need to close, but it works.

If you’d like to try the automation, you can get it via RoutineHub, which links to the Shortcut in iCloud. You’ll be prompted to add the hostname of your Postmarks instance, and you will already need to have signed in to that site in your web browser of choice.

Beyond that, Glitch makes it easy to hack on features, because everything runs in the browser, including a code editor. So far I’ve been adding small features such as support for the nodeinfo endpoint used by other Fediverse servers, and a slightly improved Atom feed. There’s lots I can think of to add, but not so much time to play – this is giving me a chance to learn a bit more about ActivityPub internals, as well as “scratching an itch”.

I’m also playing with another single-user ActivityPub server, Shuttlecraft, but that’s a post for another day.

Running a 3D print catalogue with VanDAM

There’s only one way out of my ongoing writer’s / blogger’s block, and that’s to post stuff. Even if it is all out of sequence. Thus, a post about stuff (3D printing) I haven’t yet written other things about, on this blog.

One of the projects I’ve been quietly observing on GitHub for the past few months is VanDAM, by my old friend James Smith aka floppy. I think I picked up on it by being connected to James on GitHub, and spotting the releases from his repository. James has been a proponent of self-hosting and a more personal ownership of data for a very long time, something that I’ve always admired.

I’ve fallen down a rabbit hole of 3D printing in the past ~8 months, and as a result I have a lot of downloaded models, from sites such as Thingiverse, Cults3D and Printables (among many others!). I mostly try to keep them all together in a network folder, but I have to rely on good habits to organise them, and then inevitably, I forget what I’ve downloaded but not printed, or where the original model came from…

Enter VanDAM – a self-hosted database and UI for organising and managing your 3D model assets.

I’m now running this on my Synology NAS, and using the wonderful Tailscale to access it from wherever I am.

Very briefly, here’s what I needed to do to get things up-and-running.

  • background: I have DSM 7.2 on my Synology, and I have a space on my storage where I drop model files (STL, FCstd and the like). DSM 7.2 replaces the Docker app with Container Manager, which is broadly very similar in look-and-feel. This needs to be installed from the Synology Package Manager.
    • Important note – neither the Docker app, nor the Container Manager app, support installing Docker images from GitHub’s binary content repository aka ghcr.io (shaking my head), so you also need SSH access and the ability to run things at the CLI as the superuser / via sudo.
  • SSH to the Synology and clone the repo: git clone https://github.com/Floppy/van_dam/
  • Copy docker-compose.example.yml to docker-compose.yml and edit the DB passwords and so forth. Importantly, also edit the line containing library mappings – in my case I needed to map the some storage on volume2, to the /libraries location in the Docker container:
volumes:

- /volume2/TheLibrary/3DPrinting:/libraries
  • Run sudo docker-compose up -d to cause the container images to be downloaded and initialised.
    • as an aside, even though Container Manager will not let us install from the GitHub registry, once the container(s) are running, you can control them in the GUI.
  • We should now have VanDAM ready on port 3214 on the NAS, but we will find that opening a browser window will lead to a login screen requiring an email and password, and we haven’t signed up yet! (note: this may actually be a bug). I used the Rails console (VanDAM is a Ruby on Rails app) to get this sorted out:
$ sudo docker exec -it van_dam-app-1 sh
$ bin/rails console

[then, in console]

user=User.create!(:username=>'andypiper',:email=>'youruser@example.com',:password=>'a-cunning-passw0rd%',:admin=>true)

Good to go! Now we can login to VanDAM and configure a library. From here, this is an exercise for the reader.

Keep an eye on VanDAM on GitHub, or follow the project on Mastodon.