Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

bpkg is a lightweight bash package manager. This repository contains the source code of it's homepage.


bpkg Commands

To assist in working with this project, A bpkg.json file has been included with commonly used project commands. The provided commands can be executed using the following format:

$ bpkg run [COMMAND]

In the remainder of this document, if there is a accompanying bpkg command it will be listed as follows:


Docker Environment

This environment is not necessary to use if you'd rather run everything directly on your host system. This environment is provided however, to facilitate all the required components for building and development of bpkg site.

A docker-composer.yml file exists in the root directory of the project to specify the Docker services

  • jekyll – Perform Jekyll and Rake processes

    NOTE: A custom Dockerfile exists to generate the image for this service, in the dev/jekyll directory

  • lessc – Implements LESS preprocessing
  • sitediff – Host SiteDiff for performing site comparison

There are associated bpkg commands to interact with the Docker environments, accompanying Docker commands will be listed like the other bpkg commands.


This website was made with the Jekyll engine, so it depends on a few Ruby Gems. To install them, run the following command:

$ gem install jekyll

It might take a while to finish, but once it does you're ready to go.

Edit Site Pages

To make changes to the page or run it locally, clone this GitHub repository and make sure you have installed the dependencies above.

Then, it's a matter of editing pages and running rake tasks. Here's a rundown of possible commands (thanks to this great quickstart on Jekyll).

Preview Site

$ rake preview

BPKG: preview
BPKG: docker-preview

Builds the entire site to a local folder _site and launches a webserver to preview it.

To see the full site, point your browser to localhost:4000.

If you make any changes on any files, it will regenerate the website automatically.

Create Post

$ rake post title="Hello, World!"

BPKG: post title="Hello, World!"
BPKG: docker-post title="Hello, World!"

Creates a new post. It will create a file _posts/, where the date is the current, by default.

No further changes are required, the post will get automatically inserted on the site.

Create Page

$ rake page name="about"

BPKG: page name="about"
BPKG: docker-page name="about"

Creates a new page. It will create the file ./about/index.html.

$ rake page name="about.html"

BPKG: page name="about.html"
BPKG: docker-page name="about.html"

Alternative way to create a new page, on this case it will be ./about.html.

Update Style Sheets

This project uses LESS (Leaner Style Sheets) files to generate the CSS for this site. When modifying the site style sheets under the /assets directory, update the LESS files (ie: *.less). To update the CSS file after making changes to any of the LESS files, run the following command (from the root of the project):

$ lessc ./assets/themes/the-program/css/style.less ./assets/themes/the-program/css/style.css

BPKG: lessc
BPKG: docker-lessc

View Site Changes

When working on the site, sometimes it's helpful to see changes between the production copy and the output of local changes. A report of changes can be generated with the SiteDiff tool, to simplify this process a Docker service has been included with a few bpkg commands. This is a multi-step process (each step has an associated 'bpkg' command), but a single command can be used to run all the steps. Before performing these steps the local version needs to be in preview mode.

SiteDiff - Crawl Sites

The SiteDiff utility will crawl the production and the preview versions of the site prior to performing the comparison:

BPKG: site-crawl

SiteDiff - Diff Crawled Sites

After crawling the versions of the sites, SiteDiff will compare the preview against the production version and generate a change report:

BPKG: site-diff

SiteDiff - Serve Report

The generated report can be served for viewing by SiteDiff:

BPKG: site-serve

To see the report, point your browser to localhost:13080.


The preceding command performs the following steps (which can be run individually):

BPKG: sitediff


  • When producing content (writing pages/posts) keep in mind this useful guide. It tells how to include images, display post excerpts and highlight code snippets.
  • If you plan on further customizing the blog, it's highly recommended to read this 10-minute introduction to Jekyll.
  • If you change settings on the file _config.yml, automatic regeneration won't work - you'll have to run the command rake preview again.


This site uses Jekyll Bootstrap with a heavily customized version of the_program theme, originally made by Yuya Saito.