Reflections on Two Years of #Indieweb

Today marks two years of #indieweb for me. I've been reflecting on my experience joining the community and my plans for the future.

hello, world.

On this day two years ago, I wrote the first post on my site.

At the time, this site was far simpler---I had the ability to write posts with micro-formats and was working my way to syndicating on other sites, adding geolocation, and adding micropub endpoints. A lot has changed since then.

The indieweb has been a lot of things for me: a neat hobby, a place for me to preserve the things that matter to me, a way of consolidating the ever-expanding number of social-media services I use, and a reason for me to meet up with interesting people in the local community.

Indieweb Then

Back when I started this project, I wrote a post after two-ish months of indieweb going over my experience trying to integrate into the community and build something that worked for me from scratch. One of the greatest challenges I remember was trying to figure out how web-systems worked.

Up until this point, the entirety of my focus outside of university was on machine intelligence and adaptive robotics. This was an entirely new space with a completely different set of requisite skills. While I was trying to decide how to structure my posts to maximise longevity, I was also picking up on how requests work, how to structure html, how to setup my own server, how to make my site secure, and how to beat style sheets into submission.

Apparently I was a late-bloomer; most people seemed to have done web-dev by that point in their computer science career. It felt like a lot at the time.

I originally picked up bear's example flask app, and it's still largely the skeleton around which my site is built.

Lessons learned from a solitary summer

I started this project because I was itching for a long-term project, and enough people on the University of Edinburgh's IRC channel suggested I do it. It had the appeal of being both completely different from the work that I usually do and a way for me to preserve my online content.

While learning all of the requisite skills was challenging, the real struggle in joining the indieweb was piecing all the components together to hold a mental image in my head of what an indiewebsite should be. I spent a great deal of time trawling through the wiki and absorbing all of the ideas on disparate pages. At the time, there were many pages which would all have slightly different variations of the similar information.

It was difficult to figure out what a 'core' set of requirements would be. Although I can't find it now, I remember a page which outlined 'levels' of indiewebness---a hierarchy which you could ascend by implementing features.

So I started implementing these features.

I probably shouldn't have. In retrospect, you were kind of advised not to. #ux and #ui first---that's the key suggestion for newcomers.

Of course, I ran head-on into features.

Things like micro-formats, micropub end-points, and POSSE are immediately helpful to new sites. Micro-formats help you think about how to structure your posts and make them consumable. Micropub endpoints enable you to use existing tools, rather than designing your own posting UI and framework. POSSE posting to other sites enables what you've built to be a hub which you control. These are concrete things that gave me most of the functionality I use today.

Not all of the features I added were helpful. in-reply-to functionality has rarely been used by people to interact with me. The one occasion where new people have sent me reply-tos was a discussion that started on IRC, if I remember correctly. That's not entirely surprising, as I only know a handful of indieweb people in real life. Most people who look at posts here are people who are using facebook or twitter.

These sorts of features---additions to my site which were indieweb-ish, but not exactly useful to me---led to feature fatigue. I refined my site added new features, but many of these new additions never really got used. The development of social features meant to facilitate interaction ended up feeling purposeless; I was an island of indieweb on my own in canada.

It can be kind-of isolating trying to join the indieweb outside of the major indie-hubs. For a lot of the federation-like features to be viable, you need a critical mass of people who not only have an interest of indie sites, but also are in your personal social group.

I wanted to have this social group, but it just wasn't the reality of my situation at the time. I was in Edmonton when I started the project---a city which I'm only just now starting a homebrew website club for. As a result, the entirety of my community was based off of IRC. The IRC folks were willing to help me out, even with really rudimentary problems. I even remotely attended another city's homebrew website club. However, I found these distant interactions weren't a perfect replacement for local community.

Lessons learned from focusing on design

Back in Edinburgh, I had a local group of friends whom I met up with on a weekly basis for HWC. Together, we all worked on our own projects in a local pub. I found this local, unstructured meetup gave me the time, space, and motivation to keep pressing on things that mattered to me---to keep working on indieprojects even when under pressure from external commitments.

I learnt about encrypting my own site. I tinkered with my server to optimize how it delivered pages--speeding it up a fair amount. I went back through my old code and refactored the posting interface---abandoning markdown as my primary form of storage for jsons.

With a fully functional site up and running, I focused on my own needs and developed features to support how I wanted to use my site. In hind-sight, that's probably the most indie thing I could've done, and how I should've started my indieweb adventure.

One of the motivating features for joining the indieweb was the ability to keep and curate the content I create over time. A substantial portion of this to me is images. For the site to be a long-term success, I needed a way to automatically upload photos from a variety of devices in a painless way, I needed to be able to store those photos both at a low-resolution with my blog-posts and in permanent storage, I needed to self-host my images, and I needed to be able to automatically generate collections of images for presentation. The key to this was finding a way to do this in a way that would be effortless for me to use. I finally settled on writing an extension to achieve this.

This was a big step for me, as it created one major strength on my site that was absent from any service that I used. My site was now not only a tool for sharing photos, but preserving and curating them in the long-run.

Along the way I made a conscious effort to start thinking about the visual design of the site---something that still needs a lot of work. I created more extensions which added small features to the site; features which were almost trivial. By focusing on things like resolving geo-coordinates to place-names and adding links to hashtags in text I made the site slightly more usable for me.

In doing this, I discovered that if I my system wasn't simpler than existing social-media sites, I wouldn't use it. If I was worried about it breaking, I was less likely to post things. If I wasn't sure if it would look nice on sites I syndicated to, I would hesitate. By focusing on myself, I built a better site and a site I'm more inclined to use.

Some of the most important additions---additions which encouraged me to use my site more---were features which no one would see. Changes to the posting interface had the most dramatic impact on the usability of my site. Simplifying syndication, adding tag recommendation systems, refining the layout: these were the things that I should have focused on from the start.

Results in the long-run

Syndication is something I still internally struggle with. I want to be able to ignore the fact that my posts are mostly being consumed on other sites---I want to forget that people are going to be largely seeing things on twitter and facebook. At the same time, I want to feel less reluctant posting throw-away comments and responses on twitter. Finding the balance between digital hoarding and wasteful posting has been difficult for me.

I've mostly decided that this is a struggle to perfect two things that are necessarily working against each other: to have the best formatted post on one platform, it will end up looking poorer on the other. Sometimes it's easier to write a one-off response to a chain on twitter; those posts are often things I don't really want to keep in the long-run. In addition, I should be writing for me locally first and worrying about presentation on other sites as an after-thought.

Where to go from here

Now that I'm back in Edmonton, I'm reflecting back on my past two years. I'm analysing my own mistakes in trying to join the indieweb so that I can support people interested in joining in Edmonton.

Right now, I've started our club by helping people get static university pages up. All students have space allocated to them to have their own personal web-page. By helping them learn how to format and mark-up their own little resume page, I hope to both give people the skills to work on other web-projects and help get them inspired to make their own indieweb blogs in the future.

Taking lessons from my own mistakes, I'll try to guide people with the principles, but encourage them to focus on things which feel right. I'm thinking of curating a little how to indie page which contains the lessons I've learned and a list of my favourite services like bridgy and own your gram

Personally, I'm going to continue my own work by focusing on testing and continuing to refine the design of my site. My current priority is continuing to polish my posting interface. Specifically, I'm interested in creating preview systems and tools which attempt to depict how a post will look when syndicated. After stabilizing on something that feels right to use, I'll go back and tackle more individual indieweb features---features which add to my experience without the need of people immediately interacting with my site. I've been toying with the idea of an auto-checkin tracker and a map which depicts all the places I've travelled. I'm also thinking of re-visiting features like RSVPing to see if I can find a nice way of tracking events that I'm attending.

Here's to two more years.