It’s been more than a year since Elon Musk bought Twitter. It got demonstrably worse this January when third-party apps were cut off, and the gradual decline has continued since then. The (many) ads I see are almost all from newly-created accounts for dropshipping companies, whether under their AI-generated storefront names, or AI-generated “real people” and their testimonials. Many of the actual real people I followed have left, most of the media sources I followed are still there and it’s still the most reliable and quick way for me to follow them, so I’m still on Twitter. I’m also on Mastodon, Bluesky, and Posts. I made a Threads account to reserve my handle. Too much, right?

Too much! So I also made a one-person Twitter app for myself. Yes, another Twitter clone, the worst one possible, to add to a roster of feeds of small text posts to refresh compulsively. The goal is for it to be the place where I post tweet-sized updates that are actually meaningful to me, and I will try to reduce my use of all the other places to only reading or not at all. And this new one is broadcast only, no replies or likes or other engagement — great for mental health! Followers can either go to my website to read the latest (and only the latest) tweet, or subscribe to an RSS feed of every tweet to automatically get new ones and go through the old ones.

I call it Postecard because it reuses the backend from Pastecard, but, you know, it makes posts.1 Of course, there were a few hiccups along the way. For example, it literally uses the Pastecard backend, at the Pastecard domain, but I want it to display on my personal domain. So the actual tweet text is an iframe within the little tweet embed, to avoid cross-domain restrictions. Otherwise, the base functionality is the same: a little PHP script that takes my tweet input and writes it to a text file, and a little Javascript that reads the text from that text file when the page loads. There’s a little extra Javascript in that iframe to parse out and hyperlink URLs, making sure to load them in the parent frame. And, naturally, a little extra PHP to add the new tweet to the RSS feed file. I have a simple Shortcut saved as an “app” to both my phone and laptop that prompts for the new tweet text and sends it to the PHP script.

One thing to come out of the downfall of Twitter has been a resurgence in the mindset of owning or controlling your content online. A blog at your own domain name, a social media presence that you can decouple from the provider and take your follows, followers, and archives with you. This simple little project is a combination of both those things. I may not stick with it for as long as I have with these other things, but I do admit it feels pretty cool here at the start.