Wagtail cookiecutter Foundation

Parbhat Puri

2012ecs17

Colloquium

Introduction

A comprehensive starter template for the Django based Wagtail Content Management System. A cookiecutter template with a comprehensive suite of apps to use for building your site. The project uses Foundation Sass, Bower for package management, Deployment and provisioning using Ansible and Vagrant for easy setup of development environment.

Why this Project?

Let's pretend you want to create a Wagtail CMS project. Rather than using wagtail start and then editing the results to include your name, email, and various configuration issues that always get forgotten until the worst possible moment, get cookiecutter to do all the work.

Features

  • Open Source
  • It provides a comprehensive suite of apps to use for building your site. The apps provided are pages, blog, contact, events, photo gallery, documents, products, feeds, people, faqs and utils.
  • Create awesome UI with Foundation Sass already setup for you to work on.

  • Frontend dependency management with Bower.

  • Image compression with Grunt.

  • Server provisioning and deployment using Ansible that has been extensively tested on Digital Ocean and Linode VPS. You can drive the Ansible playbooks using a set of make commands.

  • Vagrant for easy setup of development environment.

Wagtail

+

Cookiecutter

+

Foundation

Wagtail

A Django content management system focused on flexibility and user experience

Cookiecutter

A command-line utility that creates projects from cookiecutters (project templates).

Foundation

The most advanced responsive front-end framework in the world.

Usage

$ pip install cookiecutter

$ cookiecutter https://github.com/chrisdev/wagtail-cookiecutter-foundation.git
Cloning into 'wagtail-cookiecutter-foundation'...
remote: Counting objects: 611, done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 611 (delta 3), reused 0 (delta 0), pack-reused 598
Receiving objects: 100% (611/611), 423.98 KiB | 0 bytes/s, done.
Resolving deltas: 100% (264/264), done.
Checking connectivity... done.
project_name (default is "Wagtail Project")?
repo_name (default is "wagtail_project")?
version_control_system (default is "hg")?,
vcs_host (default is "bitbucket")?,
author_name (default is "Your Name")?
email (default is "Your email")?
description (default is "A short description of the project.")?
timezone (default is "UTC")?
now (default is "2015/04/16")?
year (default is "2015")?
production_host_name (default is  example.org)?
use_ssl_in_production (default is true)?
staging_host_name (default is staging.example.org)?
use_vagrant_staging (default is true)?
deploy_user_name (default is django)
django_admin_user (default is my_admin_user)

You can change the default values with your project specific details.

Setup for local development

Using Make

$ make all

Using Vagrant

$ vagrant up
$ vagrant ssh

This command will create your project's virtual environment, install all pip dependencies, create the development database, run migrations and load initial data to database, install front-end dependencies and finally start the development server for you.

Now you have a solid foundation to build your project upon.

Provisioning and Deployment

You project comes with a suite of Ansible playbooks to support the provisioning your servers and deploying changes to production and staging. The detailed process is present in project docs.

Development Graph

Is it being used anywhere?

ChrisDev have developed various solutions for its clients with this cookiecutter. Website of the Ministry of Foreign and CARICOM Affairs of Trinidad and Tobago is being redeveloped with this cookiecutter. Various companies working with Django and Wagtail CMS are using it to start their project. The projects generated with it are highly customizable and developers can customize them according to their needs.

Thank You

Any Questions?

Colloquium

By Parbhat Puri

Colloquium

Wagtail Cookiecutter Foundation

  • 1,563