By Jenn Turner

September 18, 2023

Bringing fresh fun to the fediverse: A Q&A with Casey Kolderup, Postmarks creator

Think about the first time you heard a song that sampled another, and thought “whoa.” For me, it was hearing the Four Season’s “Beggin” revived by French DJ Pilooski. The art of taking something known and making it anew for a brand new audience is one that we keep coming back to, like with Casey Kolderup’s Postmarks project. A fresh take on social bookmarking, but built for the fediverse, and more importantly—the individual user—which definitely made me say “Whoa.” Thankfully Casey is a staff software engineer for Glitch, **and **Glitch is all about remixing, so I was lucky to be able to chat with them amid the buzz Postmarks has been generating.

Jenn: You’re no stranger to Glitch, but how did you first learn about it?

Casey: I’ve followed along with its launch under previous names but was in my “writing Ruby in vim” era at that point, so I hadn’t used the platform all that much. I started using it in earnest in early 2021 when the new React starter launched—I had been working exclusively on backend development for a while and wanted to catch up a bit with frontend trends. Three months later, by some weird twists of fate, I found myself applying that knowledge to Glitch.com as a contractor, helping out with updates to the site itself.

What is your favorite thing about the internet?

For me it’s the opportunity to broaden your horizons, learn about the things that are important to other people, and decide what those things mean to you. On the internet I’ve made lifelong friends, learned about entire branches of political and philosophical thought (for better AND worse), become a fan of bands who only had a few dozen supporters, and discovered the joy of both 6-second Vines about road signs and 6-hour Youtube video essays about Japanese video games.

How is making an app that’s designed to be remixed by others different from making an app just for yourself?

There’s a lot more pressure to make it work before you tell anyone about it, that’s for sure! I found myself having to think more about the specifics of how Glitch (cleverly– I can say that because I wasn’t there when they thought this stuff up) uses things like the .env file and the .data directory to make each remix different. I had never made it this far before on a project that was designed as a remixable object first, but now that I’ve done it I want to think of more.

We haven’t seen new bookmarking apps in several years, what made you want to revisit the idea?

I’ve been using online bookmarking platforms since the days of del.icio.us; a couple years ago I had an idea for something I wanted to do with the solution I was using at the time and found that their API felt really difficult to use, to the extent that I started thinking about how I could probably build the solution I wanted from scratch more easily.

I got busy with other things and shelved the idea for a bit, then started working on a new Rails app that was built around having small-group conversations with specific URLs as the subject, a sort of “URL book club”. As I built things like User Accounts, Login, Privacy Controls, etc. it all felt sort of tedious, to be building another closed platform and having to spend time on all of these things I’ve written a dozen times with slight variations. Some programmers would take that as a cue to design their own framework; instead I just went back to playing Nintendo Switch. Despite that, though, both apps kind of remained stuck in the back of my mind.

What were your community inspirations for building on the fediverse in this way?

I had been trying out various ways of being a user on Mastodon ever since its first big migration in 2017; some public, some private. It had never occurred to me that the ActivityPub protocol was something I could build a working server on until Darius Kazemi started re-promoting some work he had done to make exactly that process more approachable, and I was particularly interested in apps that weren’t just different microblogging implementations– I’m glad people are building those, but it wasn’t for me.

I thought “maybe I should make my URL book club work on the fediverse?”, and in the process of thinking through the implications of that, I landed on this simpler idea.

If you were to have one, what’s your ActivityPub wishlist?

I’m still learning more about ActivityPub and its associated specs, but I will say that I’ve felt challenged from the start to provide good interoperability with dominant platforms like Mastodon–figuring out how to make Postmarks “play nice” with other implementations seems like a tricky line to walk, and I’d love to learn more about how true that is for everyone versus my own lack of understanding.

What makes Glitch a great platform for building Activity Pub apps?

When I first set up Postmarks and wanted to test that it could publish Notes that something like Mastodon could read, it occurred to me that there would be no way to do the handshake of requests that go in both directions to make many ActivityPub operations work successfully if I was running the app on my own computer.

Building on Glitch gives you a unique hostname that’s publicly accessible from the rest of the internet immediately. There are other tools that would let me do that by creating a tunnel from my computer, but getting new names for each remix is easier than any that I’ve seen.

As a fellow not-frontend-engineer, what were the challenges in building a light-weight, responsive site with minimal JS? How did building on Glitch make that easier or harder, and what can we do better to support or encourage that sort of work?

I take a pretty critical eye to a lot of the Glitch platform but I think the Glitch Editor is currently a good place to build a node.js app with Express and Handlebars that accesses sqlite files on disk: not the newest, flashiest architecture; but one that’s certainly well-worn and familiar to a lot of people.

The biggest difficulty I found was related to syncing my changes back and forth between Glitch and the Github repo I set up, especially once I had multiple remixes of my own, so I guess I’d say that regardless of your framework choices it would be great if we could find some time to revisit that workflow and think about how to improve it.

What’s your dream pull request to get from the community of people who are now exploring Postmarks?

The response I’ve already had from the open-source community has been beyond my wildest dreams. In the first two weeks I’ve had so many PRs I’ve barely been able to keep up, and they range from bug fixes in my handling of ActivityPub details to implementing entire features like adding the ability to search your bookmarks. Everyone has been helpful, kind, and barely said anything about some of my more embarrassing lines of code.

I try to keep the GitHub Issues up to date with things that indicate the general direction I’m hoping to take the project (as well as all the known bugs that I or other people have noticed), so taking a look there and speaking up about something that looks interesting is certainly a good place to start.

What’s next for you?

More Postmarks, hopefully! When I was working on the project by myself I was happy with a number of ways things were designed to be easy for fellow coders, but the response to the launch has made it clear that people from a lot of different backgrounds and skill sets are interested in this already.

While I’m proud of how easy the initial setup process by remixing on Glitch and walking through the README, getting updated versions into your remix while safely preserving your data is something that still has a ways to go, and I hope to feel like I’m supporting people who don’t want to do things that I take for granted like manually managing SQLite databases soon.

Where can we find you online?

I try to put all my projects on https://casey.kolderup.org, but I also blog about them on https://motd.co and socialize with people on Mastodon at https://sharetron.com/@casey!