title: Write a Blog Post
What to write about
You can write about anything that generally intersects with CC and technology. Some examples:
- a new CC or copyright related tool you've built
- your use of CC's official tools or services
- a contribution you've made to a CC project
- ideas or analysis of CC related technology projects
- guides to best practices of working with technologies in the context of a CC-related project
- your idea here
It is a good idea to float what you're going to write about with the CC tech team ahead of time so that we can give you feedback before you put in the work of writing it.
Structuring posts about your project
If you're writing about a project you're working on, here are a few ways you could structure your post:
- Talk about the process of building it from when you first started and what decisions you had to make (examples: post 1, post 2)
- Talk about the technical decisions you made and challenges you faced (examples: post 1, post 2)
- Announce your project and ask for contributions (example: CC Vocabulary announcement)
- Write an overview of how your project works without as much narrative (example: this post about the CC Catalog)
If you have more tips, submit an edit to this page.
How to post
Once you have written your post, you can either send it to us (Markdown is easiest for us, but we're happy to work with other formats) or directly create a pull request for your post as detailed below.
Pull requests should be submitted to the creativecommons.github.io-source repository. The CC Open Source site is built using the static site generator Lektor and your blog post must follow the specific format documented below to appear correctly on the site. For example, please see this commit adding a post.
- Each blog entry lives in its own subdirectory of the content/blog/entries folder. Create a new subdirectory with a slugified version of your blog post title.
- Create a file named
contents.lrin the subdirectory you just created. This is the file that will contain your blog post content.
- If your post uses images or other files, put them in the same subdirectory as the
- Fill in
contents.lrin the following format (see example post):
title: Replace this text with the title of your blog post --- categories: Replace this text with category names as shown below. Each category name should be on its own line and the name should not contain spaces. example-category-name-1 example-category-name-2 --- author: Replace this text with author's GitHub username. There should be no spaces in the name. --- pub_date: Replace this text with the publication date in YYYY-MM-DD format. --- body: Replace this text with your post's content (minus the title). This field accepts Markdown for formatting. If you're including images, you can use the Markdown image syntax i.e. ![image-title](image-file-name.jpg). You don't need to specify the path to the image since you have uploaded it to the same folder in Step 3.
Read more about Markdown formatting here.
- Create category pages for any new categories that you've assigned to your post. Each category has its own subdirectory in the content/blog/categories directory.
- Create a folder that uses the the exact category name as the blog post with its own
- The new
contents.lrfile within should follow the same format as the other categories. Here's an example category content file.
- Similarly, if this is your first post, you'll need to create a file with author information. Each author has a subdirectory in the content/blog/authors directory.
- Your author folder must have the exact username as the author field of the blog post and have a
usernamefield in the
contents.lrfile should also use the same exact username.
- The author's
contents.lrfile within should follow the same format as the other authors. Here's an example author content file.
- If your blog is part of a connected series, you'll need to make a file with series information. Each series has a subdirectory in the content/blog/series directory.
- Create a folder that uses the the exact series name as the blog post with its own
- The new
contents.lrfile within should follow the same format as the other series. Here's an example series content file.
- Build the
creativecommons.github.io-sourceproject locally (instructions are in the
READMEin the repository) and ensure your blog post shows up correctly locally. If you have not created the appropriate category or author files, you will see a build error in this step.
- Push your code and make a pull request.
- Wait for a member of CC's fulltime staff to merge the post into the
Once merged, your new post will automatically be pushed to the production site and a notification containing your post URL will be sent to the
#cc-developers channel on Slack.