From IndieWeb
Jump to: navigation, search

Sean O'Connell


Linux geek, networking nerd, free culture hippie, and old-school hack developer.

Chat Nickname: sdoconnell

Contact: (smtp/xmpp)

About Me

I've been a computer user since 1979, getting started on the venerable Apple II. I've been an Internet netizen since 1995 when I left the walled garden of CompuServe and got my first real dialup ISP connection - a service provided by two guys in a one-room Texas strip mall office with a modem bank and a homebuilt BSD server. It was slow and unreliable, but that service came with a shell account, email, USENET access, and 5MB of homedir quota. And importantly, the server had this experimental software called "Apache" that was configured to serve user content from ~/public_html on this new thing called the World Wide Web. About a week after signing up, I was learning HTML and making my first webpage to share with friends.

It was awesome (the service, not my webpage). And I've had a webpage in one form or another ever since.


I've been a Linux nerd since I did my first Slackware install in late 1995, and GNU/Linux has been my OS platform of choice since 1997. I've been in the IT industry since 1996 when I finished my tour in the US Army. I'm a decent programmer in a few languages. Mainly PHP, Python, Javascript, Lua, shell, and Lisp these days. Obviously, I also do HTML and CSS. I know enough C to be dangerous, and I've been dipping my toe into Golang recently. Development has always been one of my interests, though it's seldom been a primary occupation. I've spent the last two decades in mainly architecture, engineering, sysadmin, and security roles.

How I came to the IndieWeb

I have been aware of IndieWeb for some time and I've sort of monitored the movement from the sidelines, seeing in it a lot of commonality with my own values. In mid-2019, I finally shutdown my Mastodon server in disgust, thus ending my latest (and final) foray into federated social networking. It was around that time I decided to go all in on IndieWeb and see where that takes me.

I see IndieWeb as sort of a movement in the direction of what I consider the halcyon days of the world wide web, when the Internet was still a wide open territory with seemingly endless possibilities. A space that had not yet succumb to corporate interests, pervasive advertising, surveillance capitalism, and Balkanization along national, political, and corporate boundaries. That's a Web I would very much like to revisit, one where users are peer creators sharing their work with others from a position of ownership and control.

I'm probably a little atypical from the usual IndieWeb crowd. For one, I don't use proprietary social media - at all. No Twitter, Facebook, Instagram, any of that. About the closest thing was Reddit, and I finally kicked that habit in 2019. I've tried a plethora of open-source, federated social networks (GNUSocial, Mastodon, Diaspora, Friendica, et al), but frankly - they all kind of suck (for various reasons). I favor open protocols over closed systems, and because I want to control and safeguard my own content, communications, and other data, I self-host all of my own services. For me, IndieWeb is more about controlling my publishing platform while allowing some interconnectivity with other like-minded persons, and less (not at all) about syndicating social content to and from silo services.

About my website

My homepage is my primary/only publishing platform. I use the POSTAB methodology (Publish on Own Site and That's All, Buddy).

My site is a "homebrew" creation of bespoke code. Never a big fan of Wordpress or complex frameworks, the backend of my website is a self-built, API-driven frankenCMS written in PHP. It may not be the most elegant of engines, but I have the benefit of familiarity with every line of code - because I wrote it. When something breaks I know exactly where to look to fix it. Usually, that's because it was something I did that broke it.

I have organized my site's textual content along the note/article model, implemented h-card support, applied microformats to my posts, and enabled send and receive webmention support for the following classes:

  • mentions
  • replies
  • reposts
  • likes
  • bookmarks
  • rsvps

I've leveraged a few very useful PHP libraries for collecting, parsing, and sanitizing webmentions:

Thanks very much to the developers of those libraries, because they saved me many hours of writing code.

Because I don't use any social media or other proprietary silos, I didn't have to concern myself with POSSE/PESOS issues and my IndieWeb scaffolding was probably a little simpler to build because of that.

I finished a UX overhaul of my site's front end in late 2019, ditching a lot of float hackery for CSS Flexbox layouts and changing the overall look and feel quite a bit.

It's prettier now but the site is also still perfectly usable in a text-mode browser or screen reader (which is a design goal I maintain).

In addition to note/article posts, my homepage is my personal photo sharing service with a few albums I make publicly available. My site also incorporates a personal pastebin, a personal link shortener, Libravatar service, and an IndieAuth server endpoint.

IndieWeb-related projects

Both of these tools are designed to be "stupid simple" or "bare bones". The code is intentionally stripped down so that it can be modified and incorporated into an existing website or API. The apps are meant to be used as backend tools, accessed via CLI/scripts/self-hosted webform/etc. There are no fancy UIs or management interfaces.

In fact, it might be better to consider them toolkits rather than applications. Reference clients (bash and Emacs) are also included.


  • Network with other DIY/scratch-build webdevs and sysadmins.


  • Write a couple articles about IndieWeb and implementation details.
    • This item is stalled. I've started several times, but at this point I really don't know who my target audience is so it's been very difficult to proceed.

Working On

  • Several non-IndieWeb projects consuming a lot of my time.

Just Finished

  • Fixed some Blink rendering issues that didn't appear in Gecko (apparently I need to do more thorough cross-browser testing on changes).
  • Font changes/optimizations for less-than-current browsers.
  • Server-side compression changes to improve page load times (now <1s on average).
  • Fixed server-side header settings that were preventing proper search engine indexing.