Front Matter CMS

With the relaunch of Finley, I am. a couple of weeks ago I shifted from using a CMS to everything-is-code. My blogging days stretch back to the mid-2000’s and my having built my own blogging tool called Blog Wizard. Various versions of that powered several blogs until I launched Finley, I am. in 2015 on Ghost.

Simply put, I am used to having a CMS. Code is great, but certain things are nicer with a CMS. Managing data things, specifically. The week with the relaunch I had imported all the articles from Ghost 1-to-1. Same tags and everything else. Last Sunday I started refactoring the tags. Because everything-is-code and I realized that I could build something cool if my tags were better. As detailed in the linked article, I merged and deleted a ton of tags. Over 300 tags in over 400 posts.

That brings us to Front Matter CMS. First, it’s a plugin for VS Code. Many CMSs exist for SSGs like Astro that write code. This sits alongside your Markdown post, living in the sidebar of Code. For SEO-minded folks, it provides SEO status info— like title, slug, article length, keyword management, etc. For me, it’s the publishing date, draft status, and very much the tag management for articles I love. Autocomplete on tags will help you remain consistent on your tag use, which I then use for finding similar posts.

And it helps you manage. The Dashboard shows all published posts and easily helps you find and edit your drafts. Taxonomies? Yeah, merging, renaming, deleting, and more. And remember, everything-is-code, so changing merging “video” into “videos” results in 10 changed files that you then commit and push.

If you use Hugo, Jekyll, Astro, or other SSGs that use front matter for metadata around posts, go grab Front Matter CMS and give it a shot.

I added a new type of post called reposts. In my Article component— used to render each article in multiple modes (eg. list, full, snippet)— I already include all tags as classes. I use this in lists to add the icons— look at the Ramblin’ section of the homepage.

<article data-mode={mode} data-draft={draft} class={`b--post ${ => `tag-${tag}`).join(' ')}`}>

So adding a new post type is just a tag. With the class tag-repost, I can now add the icon. But I also wanted to show the original post embedded. To do this, I added an optional string called originalPostSlug to my Content Collection. And this gets added to the Article component.

let originalPost: CollectionEntry<'posts'> | undefined = undefined
if (originalPostSlug) {
	originalPost = (await getCollection('posts')).find(post => post.slug === originalPostSlug)

Now I have the original article. So now we display it after the content.

<div class="b--post--content">
  <Content />
    originalPostSlug && originalPostSlug && (
      <div class="b--post--repost">
        <Article post={originalPost} mode="list" />

You can see it in action here.


No posts on Sunday. First day without any posts since the reboot. I was busy. Yeah, I had church— even played with the worship team— and had to get groceries and other errands, but I was also refactoring all the tags. Almost all of them. And what’s great is you’ll likely not notice too many changes with the tags on posts. Yeah, some tags were redundant— podcast and podcasts, for instance— but by and large I left the tags “untouched”.

So major refactor of nearly all tags, but left them “untouched”. How? Well, #ios has now become #tech/apple/ios. And #bluegrass has become #music/genres/bluegrass. I added clarity by nesting tags.

Now this does quite a few things in the long run, but in the short I’m surfacing this in one clear way. Go to #music and you’ll not only see posts from #music, but also all child tags. And you’ll see a list of child tags available to filter further. Click #music/genres and you’ll see a list of genres that I’ve blogged about over the last 8 years, for instance. And what’s really nice there is that #music/genres is never used as a tag. I’m filling in the blanks so Astro is building tag pages for empty tags, since loading posts in #music/genres loads all posts from child tags too. So despite it being empty, it loads all those child tag posts and now isn’t empty. The parent tag is also surfaced, so if you land on #tech/apple/ios, you can click the parent tag above the headline #IOS and see more posts about Apple.

Across ~430 posts I use over 300 tags. Tags are more chaotic than categories. I noodled introducing categories, and still may at some point, but tags allow more specificity. These newly reorganized tags should make it much easier to find content across the site.

I just resisted posting something to Facebook. And then almost tweeted about resisting posting it to Facebook. It was after the third or fourth sentence, after the second rewrite, that I realized that it was better for my blog than Facebook.

Impulse drives us to post the moment something comes to our mind. Take the extra time to sit on something. The world doesn’t need your commentary immediately. Your snark and sarcasm can wait, even if you don’t catch the trending #hashtag. Be more thoughtful. Slow to speak, slow to anger.

Personal sites, our blogs, these were once our playgrounds. My own site was the first place I added rollover images, CSS for fonts, tried out a “table free” design. I wrote about the web, surrounded by my own experiments with the web. We all did, and it was only in reading those words from 1999 that I realised there was more to owning your own content than simply not publishing your words elsewhere.

Rachel Andrew

My first blog was called Cochon d’Vol, butchered French for the Flying Pig. It was on a blogging system I built in PHP called Blog Wizard. I put a lot of work into that blogging system. Even had a logo. Never intended to release it. But it was mine. And the site went through a redesign every few months. Because that’s what we did back then.

That was a lot of work. Sites like MySpace were much easier for publishing content. And MySpace, unlike its predecessors, allowed for custom CSS to be injected by users, making each MySpace profile an experience. Usually a gaudy experience with animated backgrounds and poorly chosen colors. And then came Facebook. More refined, less targetted at children. Just publishing.

We lost sight of the importance of our own domains. Photos went up to Instagram. Every thought that came to mind went up to Twitter. But our oasis, our experimental island, was lost. Over the last year or two many of my favorite writers in web development have returned to their blogs. I have done my best to do the same. The temptation of tweeting is hard. Look at President-Elect Trump. Finding a happy medium— a pattern of what goes to those centralized networks and what goes to my own site— takes time and intentionality.

But here I can play. A refresh of this site will be coming soon, something I started working towards right after New Years. After a tumultuous 2016, I finally updated Ghost to the latest and greatest version, gaining a lot of functionality that I hadn’t had before and started planning around an updated look. Let’s return to writing refined, thoughtful articles instead of spontaneous, haphazard thoughts. Let’s return to our playgrounds.

As previously alluded to, due to a very low point in my career, I got hammered with writer’s block. I couldn’t write anything the way I wanted to. Everything that came out was wrong. It wasn’t long before I stopped writing. So often I have looked to solve my writer’s block, but couldn’t. But I missed something in searching for the answer.

Over the years, I transitioned my writing to social media. Little, short blips of commentary here and there. A bit of sarcasm. Twitter prevented me from ranting. From time to time on Facebook I’d post something more long and bloggy, but mostly kept to a link and something simple.

My expectation, I guess, was that I’d get back to writing full articles more quickly. Like a marathon runner that broke his foot, I didn’t want downtime. So I kept searching for answers to my writer’s block without realizing that I could write myself out of my writer’s block with consistency.

It is said that it takes two weeks of consistency to develop a habit.

So, on it’s fourth week, has seen over 70 posts. Six of those have been “feature” articles, the rest have been links. A habit of writing is forming once more. As I said two weeks ago, for once in my experience blogging, I have a backlog of entries.

As I try to keep my writing consistent, I am keeping my finger off the publish button. Between three and five posts a day is what I want here. So as I find links, they get saved and scheduled out to be posted over days. When something hot comes in, I push colder links back. Holding off on publishing allows things to stew a bit. I can take time to edit my thoughts. I don’t have to be reactive all the time, as my editing is worse when I am.

Writer’s block comes when you give up. The cure to writer’s block is to write. Write something. Write anything. Momentum is only built by objects in motion.

Welcome to Apple World Today. While this is a new website, the roots of it go back ten years to the founding of a site called The Unofficial Apple Weblog (TUAW). That site grew out of Weblogs, Inc., which had a large stable of websites including Engadget, Joystiq, and Autoblog. Weblogs, Inc. was acquired in 2005 by Aol, which regrettably decided to discontinue some of the “smaller” websites in the last week. TUAW was down, but not out.

Welcome to Apple World Today

When I worked at Apple back between 2005 and 2007 I cannot tell you how frequently TUAW was open in the back of the store. Apple didn’t provide us with more information than we needed to sell their products, so sites like TUAW allowed us to do more research, read reviews of accessories, and learn more about the Apple world. Last week, Aol shut down TUAW, which was a major punch to the gut of many in the tech world, but today the team that was let go from TUAW is now launching Apple World Today (AWT).

What makes me happy is this:

Our biggest desire is to avoid the banner ad hell that most websites, especially those owned by our former employer, have become. That’s why we’re looking at doing two things: relying on a few sponsors who are depending on you to go out and buy their product to keep them afloat and supporting AWT, and working that Patreon crowdfunding. Let’s throw the advertisers back into the trash heap and take back our internet; make Apple World Today your “public radio” of Apple news and reviews!

RIP Tech Blogging; Welcome to the Future

Ads on the web are becoming simply rediculous. Sites like MacStories and Beautiful Pixels avoid annoying ads by leveraging sponsorships and their readership. It’s great to see another blog launching with the same intent.

For anyone that has followed TUAW over the years, Apple World Today is definitely one to follow. is a blogging service for writers, journalists, artists, storytellers, and for anyone with something to say. It’s the online writing platform that we’ve been wanting to create and use for years.

I love tools that help people do what they want to do with little thought. It’s one of the things that contributed to my getting back into blogging. All my blogs over the years ran on custom solutions. Finley Home and this site run on Ghost.

Well, the guys at Realmac Software have a new blogging platform coming called Typed. Looks like Ghost, but with better page support. I’ll be interested to see how different it is with theming capabilities and how far beyond blogging it will go. Ghost tries very hard to stick to just blogging.

I am not big on resolutions, but like many of you, I’d sure like to write more this year. Writing was the single biggest factor in helping my career, and it’s led me to start new projects, find new interests, helped solved problems, etc. I’m a horrible note-taker, and far too many thoughts and ideas permanantly live in my mind. Which doesn’t scale—especially for someone at my age.

One of the earliest blogs I followed is making a comeback. Completely agree with the sentiment here: “Writing was the single biggest factor in helping my career, and it’s led me to start new projects, find new interests, helped solved problems, etc.” My first blog was called Cochon d’Vol and lasted from high school through my early years of college. Then I launched a more fiery blog called From the Gates of Hell, covering theology, culture and life. That went on for a few years until I graduated college and then I launched the original with much the same subject matter. That and a development blog called Pixel Faith lived through the end of my job at Community Christian Church in Naperville.

It was the end of that job that snuffed out my voice. From around 2002 to 2011 I blogged a few times a week. It ended abruptly. Part of that was a purposeful choice on my behalf. I was in a bad place leaving Community. After a tumultuous December, coming back in January (the first day back after Christmas) I was one of some 20 employees let go. The way that I was treated that morning scorned me. Relationships I had formed there were burned quickly and I felt at a complete loss. Throw in that I had three months before I was supposed to be getting married and needed a job A.S.A.P., I feel I was just in feeling cynical. Because I couldn’t write my thoughts in a way without rant, I didn’t.

The weeks passed into months without writing, allowing that cynicism to brew. Initially justified by the events that went down, it just became something more. I don’t like what it did to me inside. So much was lost by letting that happen.

When we got married, having luckily gotten a job and sticking to the date we had, I said over and over that we should launch a blog. But I couldn’t write. All designers know what I’m talking about. Redesign the blog a few times a year and not put the effort into the writing. I designed the blog more times than I would like to admit. But finally, in 2013, we launched it. I kept away from the topics that I used to write about, knowing that theology curtailed into that cynicism still, I changed the tone of my writing style to be more family-oriented. Within a couple months we found out we were expecting our first child, providing me more to write about. With the birth of my daughter in August, I was writing more in Day One than I was posting on Finley Home.

Sometimes you just need to write. As an introvert, I do. It’s my way of getting what is in my head out. So I have changed my way of sharing to allow me to write more. Instead of sharing every interesting link I find throughout my day on Twitter and Facebook, I save it as a draft in Ghost. When I have the time (usually in the evening or early morning) I write a small blurb or decide that the link isn’t worth sharing. I’m keeping myself to three to four links a day. I’m also posting less to social media and just journaling my thoughts to see if anything can be developed further.

So far, it’s working. For once in my experience blogging, I have a backlog of entries, keeping to about two days out. It is said that it takes two weeks of consistency to develop a habit. One week in and I’m learning a lot.

In late 2013, my wife and myself launched Finley Home to give us a place to share our adventures, our thoughts, and — come Spring of last yearpregnancy and parenthood things. This came after I took a few years away from blogging. Finley Home allowed me to find my voice again, to get back into the swing of blogging.

As I’ve gotten back into that swing, many of the things I would have loved to write haven’t fit the more family-friendly mold of that site. Between politics, culture, and technology, I have struggled to find a place to voice my thoughts.

So in 2015, I’m launching a new blog for myself. It’s a work in progress. Not sure what all will be posted here. Likely a mix of the above: politics, culture, and technology. So welcome. Subscribe to the RSS and follow me on Twitter.