Skip to content

Setting Up Decap CMS with Jekyll: A Real-World Example

A Technical Guide to Leaving a Legacy

B♾️

n the quiet hours between classes and deadlines, I’ve spent countless evenings with VS Code open, manually adding new stories and poems into Write Club’s digital website and archive. For three years, this ritual has been mine—a founder’s labour of love, transforming raw text files into published works, one git commit at a time. Each new submission, each event announcement, passed through my hands like river stones being placed in a garden.

But time flows forward, and with my final semester approaching, I find myself contemplating legacy. How do you prepare to let go of something you’ve nurtured from seed? The answer, I’ve learned, lies not in holding tighter, but in building bridges—creating pathways for others to tend this digital garden long after I’ve moved on.

This piece departs from my usual meandering through memory and meaning. Instead, it’s a map I’m drawing for those who’ll come after, a technical guide born from the necessity of transition. In discovering Decap CMS, I found a tool and a way to transform Write Club’s website from a developer’s project into a true community platform.

What follows is both documentation and gift—a step-by-step guide to implementing Decap CMS with Jekyll. While more technical than my typical writing, it carries the same care and attention to detail that has marked my journey with Write Club.

[Decap CMS](https://decapcms.org) (formerly Netlify CMS) is a powerful open-source content management system that works seamlessly with static site generators like Jekyll. In this tutorial, I’ll walk you through setting up Decap CMS using a real-world example: [**Write Club**](https://writeclub.ca), a university creative writing club’s website.

## What We’ll Cover 1. Basic Decap CMS setup with Jekyll

2. Configuring collections for blog posts

3. Managing authors with a relation widget

4. Handling static pages

5. Complete working configuration

## Basic Setup First, let’s cover the basic backend configuration. Create a `config.yml` file in the `admin` directory of your Jekyll site:

```yaml backend: name: git-gateway branch: main identity_url: "https://writeclub.ca/.netlify/identity" gateway_url: "https://writeclub.ca/.netlify/git" login: true roles: ["admin", "editor"] media_folder: "assets/images/uploads" public_folder: "/assets/images/uploads" ```

This configuration:

* Uses Git Gateway for authentication

* Sets up media handling directories

* Defines admin and editor roles

## Blog Posts Collection

For blog posts, we’ll create a collection that matches Jekyll’s `_posts` directory structure:

```yaml collections: - name: "posts" label: "Posts" folder: "_posts" create: true slug: "{{year}}-{{month}}-{{day}}-{{slug}}" fields: - { label: "Title", name: "title", wid

Did you enjoy this article?

Recommend it — Standard Reader surfaces well-loved writing to more readers across the network.

Across the AtmosphereDiscussions