pixel avatar This is Paul Straw's unblog. To learn more, read the announcement post.

So, here's my new blog.

A couple weeks ago, I read Alex Kras' follow-up post from his meeting with the Google AMP team. In that post, he defends the URL as the "cornerstone of the web". I completely agree with that sentiment, and tonight had the idea to take it to a (somewhat absurd) extreme.

All that added up means this "blog" doesn't have an index page, or an RSS feed, or anything other than a permanent URL for every post. But in the end, I think the permanent URL is the only bit I really care about.

The Tech

Since I'm sure you're dying to know, here's a breakdown of the technology powering this blog. The first piece of the puzzle is Dropshare. I've been using it for around half a year, and it's quickly become one of my favorite tools. It also happens to be perfect for this silly experiment.

To post something to this blog, I just hit ⌃⌥⌘R to pull up Dropshare's "compose note" window, then write some Markdown and hit upload. Dropshare then converts the Markdown to HTML using a predefined template, uploads it to Amazon S3, and copies the post's permalink to my clipboard.

Since there isn't an index page or any way to view all posts on the site, something I "publish" on this blog might be shared by posting the link to Twitter, or Facebook, or maybe just sending it directly to a few people. I really like that flexibility. There's no "draft mode" or anything; I just post something, check it out, and distribute the link if I'm happy. If I catch a mistake or want to make a change, all I have to do is publish the post again when I'm done. When something inevitably slips past me until after I've shared a post publicly, all I have to do is go to S3 and change its HTML.

Potential Downsides

UPDATE: I ended up solving these issues using an AWS Lambda function. Check out my post on that setup!

I'm honestly not sure how this will interact with SEO, especially since there's no way for me to set a dynamic value for title or other meta tags. I'm pretty curious to see if any patterns emerge around the impact of that. I did add a bit of simple JS to automatically set a title with the text of the first h1, but of course that will only have a chance of impacting SEO if Google actually executes the JavaScript.

(function() {
  var title = document.createElement('title'),
      firstHeader = document.querySelector('h1');

  if (firstHeader) {
    title.innerText = firstHeader.innerText;
    document.head.appendChild(title);
  }
})();

Unfortunately, the lack of dynamic values also means there's no way to provide nice unfurls for Slack, Facebook, Twitter, etc. One solution would be to use something like https://prerender.io/, but I haven't been able to figure out any way to do that for content served from S3. This is an issue I'm going to keep thinking about.

A Few Final Thoughts

My paul.st domain is running through Cloudflare, which means these posts get HTTPS and CDN backing for free. Pretty neat!

The styles and scripts for the page all point to external resources, so down the road I'll still have the ability to make style or behavior changes retroactively as they're needed.

That's pretty much it! We'll see if this turns out to be a cool idea or not, but for now at least it's a fun experiment. If you think this is interesting, remember to follow me on Twitter for updates.