Well here’s something you don’t see very often – a mid-year website update from me. And it’s not just any website update: it’s a decently big one, mostly because I’m …
Introducing Notekins
Visit the main Notekins Instance on chrisoft.org.
Notekins is a minimal note sharing system that allows the user to publish notes that resemble “Tweets” on Twitter, or posts on Mastodon. The main difference is it explicitly has no support for social interaction.
The slogan of Notekins is “Micro-blogging without the social media nonsense”.
The idea of Notekins crossed my mind when I first saw Richard Stallman’s Political Notes page [1] in 2013. Of course, like many of my ideas back then, it went nowhere. I kept using the horrendous platform from Tencent, and later Twitter, as the place to make my shitposts.
Throughout my (mis)adventures on Twitter, I noticed that the “social” aspect of social media irritates me. Watching a peer’s post go viral often induced inexplicable downheartedness and anxiety in me. Sometimes my posts getting too much attention caused me to panic. In other cases not getting the numbers I craved made me sleepless. The idea of Notekins came back again, only to be driven off by me because “it didn’t go out of control”.
In 2022, a middle-aged man with way too much money [2] and too little wit decided to purchase Twitter, provoking mass immigration out of the website. It was the best time to start Notekins, but I decided I could settle with Mastodon for now. And thus I set up my somewhat short-lived Mastodon account on c.im.
Later, dismayed by the lack of more friends on Mastodon, I realized I no longer care about interaction from random users. With some inspiration from some other person’s website that roughly has the same idea, my quest to craft Notekins finally sprang into action in late June 2024.
In the internal design documentation I had the following:
Required features
- A command / script that, when invoked, brings up a text editor to start a new note.
- A command / script that, when invoked, brings up a text editor to edit an existing note.
- Basic elements of each note: content, time posted, last updated.
- Basic markdown formatting in notes.
- Attach images to notes (doesn't have to be inline).
- Image thumbnail generation like the SBS.
- An archive of notes as the user typed them.
- Automatically import twitter/mstodn user archive.
- Atom feed generation.
- Inline custom emoji support.
Non-features
- Any user interaction: reply, "like", or quotation.
- No ActivityPub support.
- View statistics / visitor identification.
- Continuous scrolling. God I hate continuous scrolling.
You will see that, in its essence, Notekins is basically SBS with a slightly different mode of content delivery. The only other major difference is how the posts are created and stored – of course I have to make shitposting relatively easy. Originally I wanted to give it the slogan “Micro-blogging for the autistic”, but I reckon since people with autism is such a big category, that slogan probably wouldn’t fit a lot of people in the community, and would even be an insult to some of them. Therefore the current slogan was adopted.
Anyway, I feel like my ability to write a large amount of code in a relatively short period of time has drastically diminished. Notekins was mostly feature complete by July 23rd, nearly one month into its development and with about 60 KiB of source code written. That amount of code seems to be what I could have written within a week when I was in high school. That said, maybe I am just exaggerating the productivity of a younger me too much, or the code I wrote back then was utter garbage (not to say that the code I write now isn’t utter garbage), or both.
Once the main code base is largely finished, I spent some time writing scripts that convert archives downloaded from Twitter and Mastodon, as well as the aforementioned Tencent platform, into Notekin’s format. These archives were made public [3] and can be accessed by following their respective links in the main instance.
The frontend of Notekins can be pretty flexible. For the instances running on my website I chose the minimalistic route, in the style of the rest of my website. The frontend barely uses any JavaScript, and those scripts aren’t responsible for the content anyway. Sure, this means the browsing experience probably won’t be up to the modern web standards. But much of the so-called modern web has become my pet peeve, so it’s better to keep it out of my website.
The source code of Notekins is availble here.
SBS and Atom feed
Take back the control of what I read.
Tired of being fed information that I have no interest in by recommendation algorithms controlled by mega corporations [4], I finally took one of my friend’s advice and started using an RSS reader. It sure feels good when I took back full control of what I read for the first time in almost a decade [5]. Although I had to say that I was kind of shocked when I found out the first few results returned by a simple web search of “RSS reader” were all paid subscription services. It is sad to see a feature once commonly found in web browsers become this way [6].
To return the favor, I decided to add Atom feed generation to SBS. You can now subscribe to my blog using the Atom feed linked in the post listing pages, if you’re interested in reading my nonsense as soon as it’s posted. Notekins was released with Atom feed generation support built in, so if you want a dose of that as well, you may do it with this link.
As a side note, I realized that among my friends that own a dedicated personal blog at least once in their lifetime, I am currently the one who’s posting the most. And I’m saying that as someone who barely posts twice a year… I noticed that I sometimes actually enjoy writing random stuff, despite my constant issue of verbal constipation still being present. Maybe unlike me, all my friends have a legit job that does actual work [7], and don’t have time to write about random crap.
More QoL improvements
You can now close the panel on pages that may have a lot of texts. This includes blog posts, Notekins, and the music player. Again a feature that’s been long wished for.
Theming CSS files have gone through a full restructuring. How they are loaded are also slightly changed so that now you shouldn’t see the winter dark theme briefly before it switching to the chosen theme every time. This serves as the prep work for a future change where theme loading won’t require client-side JavaScript any more.
A new favicon made in 30 seconds was introduced, replacing the previous one that was also made in 30 seconds but barely legible for people using a dark browser theme.
And … that’s all?
Yes! Ah right, I also made some clarifications to the site-wide privacy policy and guestbook moderation rules. Honestly I’m kinda shocked that people are still leaving messages in the guestbook of my website.
See you in the next website update … hopefully soon.