Rolling My Own Twitter

TL;DR: I created my own microblog, Twitter-like thing: Notes.

Social Media has been prominent in the American news cycle for a few years now. Most of the reporting has been pretty negative. And for good reason.

Those who know me probably got tired of my constant railing against Facebook years ago. I can’t help but feel a little guilty about the bad taste all that ranting inspired in the people around me.

A lot of my rhetoric on the subject had an air of pretentious elitism that painted social media users as thoughtless drones who were too stupid to consider much outside of their own instant gratification. While, at the time, I did want to drive that perspective home into peoples’ minds, I did not give much consideration back then to the possibility of people identifying personally with that idea. Looking back, it is common sense that if a person uses a thing like Facebook, and someone comes along and says, “Facebook is stupid and all the people who use it are idiots,” that person is probably going to be offended on some level. She or he might ask, “Does this guy think I’m an idiot because I have a Facebook account?”

That is not a productive way to convince people that social media companies don’t have the best interests of individuals or their communities at heart. To put it mildly.

This mistake in perspective and angle of attack brought consequences on a scale I did not fully consider at the time. When social media platforms are so deeply embedded into social clusters as the primary mode of sharing and communication, leaving them behind silently will make you invisible to those you weren’t close with before those platforms took hold. If your account doesn’t appear in the feed, then you don’t exist.

Pair that with a toxic oratory habit and the people that still use those platforms are less likely to associate with you in the real world. That is not rocket science. It is just what happens when you talk like a jerk.

At one point in the last few years I did create an Instagram account. I did not use it a lot but it was a great way to share photos with friends and also connect with other adventurers and artists around the world through our documented adventures. I was okay with that app being on my phone for the most part. I’m generally very disciplined and rarely ever scrolled the feed. I only saw the images that appeared at the top of the feed when I opened the app to share one of my own.

I started to become disatisfied with the platform when I went to post a picture and found that the app had updated to move the share button elsewhere in the UI and placed a different action-button in its place. That wasn’t an accident. This made it a requirement that I pay more attention inside the app. That is something I never want to do: give my attention to a social media application on my device. But I adapted and continued sharing.

The breaking point for me with Instagram is their new Terms of Service. In short, agreeing to these terms give Facebook/Instagram the consent to use the microphone and camera(s) on any device the app is installed on at any given time. Even when the app is not running. Another non-starter for me is that all the content users post now belongs to Facebook/Instagram and can be used for profit by the platform without the consent of the users.

I shared some pictures and videos that I worked hard to make, adjust, and render. I’m not okay with a multi-billion dollar corporation using my content to make more money while also restricting me from getting any of it.

The third huge problem with those new terms is the part where users agree to make Instagram exempt from any and all liability. That means I can’t bring a lawsuit against them for any reason.

These terms, and many others, are mandatory in order to use the service. So I uninstalled the app from my phone.

But I still want to be able to contribute to an online record of self-expression in a convenient way and I didn’t have a way to do that after deleting Instagram. One option is to simply contribute more often to this blog. But that’s not convenient. I would have to pull images from whatever device, compress them for the web, move them to my webserver, and then create a post page for them as well. That can’t be done from my phone, and I’m not keen on setting a routine of sitting down every day at my computer to do this.

So I made my own version of Twitter/Instagram

Enter Notes.

This idea was partly inspired by Nadia Eghbal. She has her own notes page which appears to be a feed of the notes she takes daily. I don’t know what technology she uses to post those to her website. Perhaps she made her own custom app to get the job done. Or maybe she created automation that posts them from her note-taking app of choice. There are many possibilities. But she still uses Twitter and generally reaches a large audience. In fact, I only still have a Twitter account to follow people like Nadia. But I rarely tweet and when I do, no one sees it.

So, I figured that if I’m going to be posting things and no one is going to be seeing them, then I might as well host it myself where the content and my behavior can’t be monetized by some mega corporation.

Let’s get technical

I have come a long way with Node Js in the last year and a half. Several years ago I only used it to automate build tasks for webpages. Tasks like image optimization, stylesheet compilation, and file minification were made instantaneous with Node libraries like Gulp.

But I stopped doing a lot of static website development since then. For my job I have had to get creative to solve problems of all kinds. The more I looked at some of those problems and thought how best to solve them, the more I found that Node Js could settle them most swiftly and easily.

I learned how to use Express.js to create dynamic web apps. I learned how to make API’s in Node Js without having to install 3rd party libraries and code. I made a chatbot to allow people to accomplish many business tasks from their team-messaging platform.

I am far from expert but I have certainly gained a lot of understanding and skill with Node over the last two years.

Another platform I have come to know well in that time is Telnyx. Using their API, I have setup pipelines to allow people to interact with various services through SMS and MMS. I already have my own VOIP server running at home with Telnyx providing SIP service to it. But that VOIP system doesn’t do text messaging.

I have already setup a service with my phone number from Telnyx that allows me to send SMS to that number in order to automate tasks on my home network. So I thought I could automate posting things to my own personal feed through that same pipeline.

So I did.

Notes runs on Node Js and dynamically updates with the latest posts. Posts are created by sending text and/or images to my Telnyx phone number. If I send a message with a certain keyword, then my SMS API at home relays that information to my Notes API. The Notes API then organizes and inserts the data into a database.

So far, I have support for images but I have not tried to work in Videos yet. I’m not sure if I will or not but it could be fun.

Right now the design is very basic but I’m still hashing that out.

I don’t expect to get much traffic. As I don’t expect much to arrive here. But, it’ll be a spot where I can throw images and thoughts up at a moment’s notice. It can act as a sort of archive I guess.