Last time on the Reboot, after multiple entries about typography I had just finished getting a sensible type scale set up.
A year ago as I began rebooting my site I also launched a new section called “Notes”.
One of the goals of the reboot is to own my data.
Notes was a Twitter-like proof-of-concept for that.
Back then I said that it would need to go through the same process as everything else to see if it has purpose enough to keep it or if I simply need to let it go and consider it a successful failure.
A year seems like a decent amount of time and perspective to make this judgement, so here we are.
It’s important to understand that I’m not leaving Twitter even if I decide to keep Notes—the goal is to own my data and change the terms of my relationship with Twitter Inc, not to build a clone of it.
What is Twitter?
I’m sure you already know what Twitter is, this is to put my thoughts in their appropriate context.
Twitter is a “microblogging” system that allows you to send and receive short posts called tweets. Tweets can be up to 280 characters long and can include links to relevant websites and resources. Tweets are posted to your profile, sent to your followers, and are searchable on Twitter search.
Notably, you can’t edit a tweet once it’s been published.
Since I’m looking at also replacing Instagram, I’ll be removing the ability to post photos and videos to Notes.
Aside from these features, there are also the interactions I can have with other people. Activity metrics—as Twitter calls them—such as replies, retweets, likes, impressions and total engagements.
Between all of these, replies—which range from profound conversations to reply guys—and retweets—reaching beyond my local influence—are the two interactions I find most valuable, so consequently the ones I want to support.
So, that’s my Twitter, but what about everyone else’s Twitter?
Ultimately, the most important content for me isn’t my content, it’s everyone else’s content.
And just because I’m changing my relationship with Twitter Inc doesn’t mean anyone else is. Or that I can even expect them to.
I also have to apply the principle of data-ownership to everyone.
So, how do I build a system with interactions which lets me own my data whilst also letting everyone else own theirs?
I hadn’t really thought about this before.
For now, let’s move on to Notes.
What is Notes?
Notes is a “microblogging” system that allows you to publish short texts called notes. Notes can be up to 255 characters long.
Notably, I can edit notes after they’ve been published.
And that’s a problem.
Because whilst it’s easy enough for me to say, “oh, but I’ve only ever edited two notes and that was to fix misspellings,” you can’t trust that.
By not allowing tweets to be edited, people can be held accountable for their past and possibly present ignorance.
Also notably, some people don’t like being held accountable which is why I think they have started auto-deleting their old tweets, often using third-party services.
Unfortunately, Notes is my code, even if I removed the ability to edit notes by removing the View and Controller for it, I still have access to the database and could edit it manually—even though it would be a bit of a pain in the ass to do so.
So, how do I build a system which holds me accountable for my present and future ignorance?
Two very good questions so far, and no answer in sight.
None of this matters though, if it turns out that I haven’t actually been using Notes in the last year.
So to answer that right away, let’s look at the usage statistics.
Tweets vs Notes
In the last year, I’ve written 125 tweets of quasi-original thoughts. I’ve @-ing someone directly 282 times. And 80 times I’ve retweeted someone else, for a total of ~487 tweets.
During that same time, I’ve written 69 notes.
Based on data from February 2020.
So despite introducing Notes, I’ve still used Twitter about seven times more frequently.
For a proof-of-concept with no specifications, that’s not horrible.
But it’s not great either.
So, I’m thinking, let’s write a decent specification and see if I can build it. And if I can, then we’ll run this experiment for another year.
Specifications for Notes
Notes is a “microblogging” system that allows you to publish short texts called notes. Notes can be up to 280 characters long, support Markdown formatting, and can be systemically classified under Topic terms.
Adding support for Markdown formatting will let me include links and quotes should I need to—a year of note writing suggest I will need both of these things.
I already have Topics, so should be able to systemically classify Notes under Topic terms. But this means I’ll need to hook them up to the existing Topics or change how they work—they’re currently coming from Journal Markdown files so that’s a whole investigation in itself.
When I actually write a note, a few things should happen:
- The note is published in a newest-to-oldest list
- The note is published to the RSS feed
- Using the RSS feed and IFTTT, the note is syndicated to my Twitter account
The first two already exist so that’s fine, as for the 3rd one, well, I’ll have to investigate how to do that.
Using the same approach to Information Architecture (IA) as I did on the Blog section, I’m changing the existing URL structure to the following:
- /notes/ – notes landing and listing page
- /notes/{year}/ – notes sublisting page
- /notes/{year}/{title} – note entry
- /notes/feed/ – notes RSS feed
Most of this already exists in a form similar to this anyway, so that’s fine. Except for the actual Note entry, which is currently created using the ID as the URL, i.e. /notes/{ID}
Twitter also uses the numerical ID of the status for its URLs so I could just leave it at that, blame Twitter and call it a day but I’m not going to.
Instead, I’m going to add two new fields to the Notes model; Title and Slug.
I should probably make a note-to-future-self to always consider adding Titles and Slugs to Models.
That takes care of the URLs which means we now have a thing you can visit from a computer.
This brings us to the lingering questions;
One, how do I build a system with interactions which lets me own my data whilst also letting everyone else own theirs?
I’m curious about Webmention, though I’m not sure if it’s what I’m looking for—so mark that as another investigation needed.
Webmention is a standardised protocol that enables one website address (URL) to notify another website address that the former contains a reference to the latter.
Two, how do I build a system which holds me accountable for my present and future ignorance?
Honestly, I’m not sure.
My current thinking is to keep the editing option as is because it then becomes the path of least resistance and add some sort of editing history—
—oh wait, the syndication!
Notes will be syndicated to Twitter and I can’t edit tweets so that could serve as an audit trail.
Right, so in terms of actually building all this, I think I have a fairly decent todo-list now.
-
Add Title and Slug field -
Update URLs -
Add Twitter syndication using RSS feed -
Add Markdown support -
Add Topics field(Reboot: Deprecation Notice) -
Investigate Webmention
Let’s get to work.