Over the past few years, I’ve tried to get serious on producing content on and off. I admit I’ve been seriously inconsistent when it comes to it, but I also know that other priorities generally take over so I dont beat myself up too much about it. Nevertheless, when I first got into making videos & writing articles, I had a decent system setup and this series is all about trying to get back to that place and increase the frequency of writing & recording.

Where Im Coming From

I want to start a little about what I had setup before and was able to get working so it makes more sense as this series goes on (and also to reframe in my mind what I want to get out of this.) Back in May 2022 right after everything locked down, I wanted to try recording videos for YouTube with some of the spare time I had. I recorded my first series on Coding Discord Bots in JavaScript, and it was received EXTREMELY well. I knew that the process I went through to build that series could be iterated on. The main gist goes like this:

  • Brainstorm a series of content (both written & video versions)
  • Write the written versions first, while fixing any code issues as I went.
  • Publish the working code as a private GitHub repository (one per series entry).
  • Record the videos based off the article & code, essentially using the article as my script of sorts.
  • Coordinate the publishing of the Article, Video, and private repo all at the same time.

I mostly did this manually for the first series but I wanted to make it more streamlined. I wrote some Node code that would help automate some of it like this:

  • Use an Excel Spreadsheet to create my series outline, along with formulas to automatically come up with the article slug, GitHub repo name, and some other metadata info.
  • I wrote a Node script that would analyze that spreadsheet using the Office Graph API (I’m an Office 365 user) to create blank entries of the articles in my CMS, create a number of cards with checklists in Trello to work the pipeline, and create private repos based for each entry.
  • I also wrote a Node script that was run in a Docker container to poll my CMS for when an article was published and use the GitHub API to make that private repo public.

Honestly I’ve fallen away from this process for quite some time, but as stated in the intro of this article, I want to start getting more consistent and automating a bunch of this process will be super helpful in removing much of the friction that comes along with planning & creating content. Overkill? Maybe, but welcome to how my mind works!

The Plan

My general plan is to take this old system and iterate on it with new tools & techniques. First off, I plan to use Notion for tracking most of this. I’ll also be creating a program with Go that will monitor Notion databases and trigger actions based on the data. These actions may be creating those blank articles in my CMS, perhaps migrating the draft from Notion into my CMS, creating the repositories I want to use, or setting up video/media templates in my OneDrive account.

Setting Up a New Pipeline in Notion

Notion has become my tool of choice for tracking most of my life. While I’m always on the look out for new tools to help track things, I often come back to Notion for its wide feature offering and relatively low cost (yes, I pay for premium). So here’s a rundown of the work I’ve done so far.

Content Collections

A Content Collection is my new term for a series of content, and if I am putting together any content that requires more that one article/video/whatever, this is where I start. It is really more for the planning phase. This series will be a bit different than others I plan to create since I’m building it out as I go.

Simplicity is key when starting a new process in my opinion, and I took that approach with this board.

Any column I define in my systems need to have a meaning associated with them. Here is how I’ve broken these down:

  • Planning - Collections I’m actively planning, meaning I’m working on defining the metadata associated with the content items (I’ll show that in a moment)
  • In Progress - The Collection moves here when I am done planning and want to start drafting articles or video outlines and such.
  • Scheduled - All of the content items are completed and scheduled to be released. Meaning entered into my CMS, uploaded to YouTube, and all code published to the associated GitHub repos.
  • Backlogged - Collections I may want to start at some point in the future. This will ideally be reviewed once per week.
  • Released - Its all done and out there.
  • Cancelled - I’m a bit of a data hoarder and dont like deleting things, so if I make the decision to NOT work on a collection, I’ll drop it here.

Opening up the card thats on there shows the following. This is actually a Linked Database to the Content Items database which I’ll show in the next section. I like the table view as it gives me a good outline of every entry in the series I want to create. The Slug field is a formula based on the title which I can use to predict the URL that will be used for this article. GitHub URL is where the associated repo will be so my system can create it and publish it when the content goes live.

This brings me to my first automation point. When a series moves from Planning to In Progress, I will create any repos, drafts, and media templates and link them back to Notion for tracking. I also want to change the status of the content items to Selected to indicate the are ready to start on.

Content Items

A Content Item represents an article, video, or (maybe sometime soon) live stream I want to produce. Opening the first item from the database above shows the following. You’ll notice there are a few new fields here. Status is to track it from drafting to publishing, there is also a Type here to indicate what kind of item this is (I may use it to perform additional actions in that Go program), and some dates to help me plan.

I also have a checklist here that I can use to make sure that everything about this item lines up the way I want it to. These checklists are added automatically for me using Notion Templates (I’ll showcase my templates in the next article of this series).

Now I primarily use the Content Collections boards for planning, but I also have a Content Items board to track the progress of individual pieces of content through my system.

Again, I like defining my statuses, so here are what each of these mean:

  • Selected - Planning is done and I’m ready to start drafting these items.
  • Draft In Progress - Actively working on this item.
  • Ready to Publish - The draft is done and ready to be published.
I plan to monitor this column to automatically migrate the draft into my CMS and setup the publish dates there.
  • Idea - Ideas I have for individual articles/videos.
  • Published - Done and out there.
  • Rejected - Again, I dont like deleting things.

Whats Next

My next entry in this series will outline the templates I’m using within Notion to define an article, video, both, or something else. I’ll also be publishing the code to my tool as I build it and documenting that process here!