I am an Open Source enthusiast who loves the Internet. I love to create things for the web which are interesting and fun.
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.
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.
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.
$ 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.
$ make all
$ 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.
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.
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.
By Parbhat Puri
Wagtail Cookiecutter Foundation