Skip to content
CLI-Driven CMS for Blogging πŸ˜³πŸ˜³πŸ€–πŸ˜³
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Warning: This doc is for Blog-o-Matic > v4.0.0, and is experimental. Use at your own risk.

npm Dependency Status devDependency Status

Blog-o-Matic πŸ˜³πŸ˜³πŸ€–πŸ˜³

Blog Content Management System for your Command-Line Interface

Blog-o-Matic is meant to connect your Markdown-editing software to your chosen method of blog distribution with as little friction as possible. I made this so that I can have this process:

  1. Write blog post with a Text Editor
  2. Have that blog post sync between my devices via Dropbox
  3. Have a 1-step publish process from my computer to my blog

Blog-o-Matic fills the 3rd step of that process. It takes my blog posts as source, optimizes images into multiple sizes for speed and progressive loading, parses markdown into various formats, minifies and compresses where useful, and uploads the results to S3. I currently use Blog-o-Matic to power my blog, running on

Getting Started

You'll want to download Blog-o-Matic as a global dependency. They we can initialize a blog, where you'll be prompted by a few options:

npm install -g blog-o-matic # Installs our `blog` bin
blog init                   # Generate a blog

Blog Generator

Now there are a few different commands we can use:

Command Description
blog post Generate Markdown for a blog post
blog preview Serve the blog, and open it as a local website
blog publish Publish the blog, using the selected publisher

Currently, only the basics of these commands work. As more options are added, more docs will be added.

Publisher Guides


We use Yarn to handle dependencies

npm install -g yarn
yarn install
yarn start

Blog-o-Matic should now be linked as a global npm binary

blog init

Blog-o-Matic is a monorepo, managed via Lerna. The main blog-o-matic CLI tool export is essentially just an alias of: @blog-o-matic/cli. So most work is done in that cli package.

I'm mostly focusing on the cli tool at the moment, but if you want to contribute, let me know what piece of Blog-o-Matic you're interested in, and I can start making issues that are a little more organized that you can tackle.

You can’t perform that action at this time.