{"id":13532498,"url":"https://github.com/engineervix/cookiecutter-wagtail-vix","last_synced_at":"2025-04-12T00:20:45.845Z","repository":{"id":38819560,"uuid":"252283306","full_name":"engineervix/cookiecutter-wagtail-vix","owner":"engineervix","description":"a minimal, batteries-included, reusable project skeleton to serve as a starting point for a Wagtail project.","archived":false,"fork":false,"pushed_at":"2025-04-05T16:54:47.000Z","size":5453,"stargazers_count":35,"open_issues_count":14,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T17:33:22.000Z","etag":null,"topics":["cookiecutter","cookiecutter-template","django","python","wagtail"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/engineervix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-01T20:47:09.000Z","updated_at":"2024-12-02T19:51:04.000Z","dependencies_parsed_at":"2023-09-26T20:40:50.409Z","dependency_job_id":"5729c5b7-53db-4c31-b959-2732f3e892c0","html_url":"https://github.com/engineervix/cookiecutter-wagtail-vix","commit_stats":null,"previous_names":[],"tags_count":11,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fcookiecutter-wagtail-vix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fcookiecutter-wagtail-vix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fcookiecutter-wagtail-vix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/engineervix%2Fcookiecutter-wagtail-vix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/engineervix","download_url":"https://codeload.github.com/engineervix/cookiecutter-wagtail-vix/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248498082,"owners_count":21114033,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cookiecutter","cookiecutter-template","django","python","wagtail"],"created_at":"2024-08-01T07:01:11.366Z","updated_at":"2025-04-12T00:20:45.823Z","avatar_url":"https://github.com/engineervix.png","language":"Python","funding_links":[],"categories":["Tools"],"sub_categories":["Templates \u0026 Starter Kits"],"readme":"# Welcome to cookiecutter-wagtail-vix 👋\n\n\u003e a minimal, batteries-included, reusable project skeleton to serve as a starting point for a Wagtail project.\n\n[![Continuous Integration](https://github.com/engineervix/cookiecutter-wagtail-vix/actions/workflows/main.yml/badge.svg)](https://github.com/engineervix/cookiecutter-wagtail-vix/actions/workflows/main.yml)\n[![Coverage Status](https://codecov.io/gh/engineervix/cookiecutter-wagtail-vix/branch/main/graph/badge.svg)](https://codecov.io/gh/engineervix/cookiecutter-wagtail-vix)\n[![Updates](https://pyup.io/repos/github/engineervix/cookiecutter-wagtail-vix/shield.svg)](https://pyup.io/repos/github/engineervix/cookiecutter-wagtail-vix/)\n[![python 3.12](https://img.shields.io/badge/python-3.12-brightgreen.svg)](https://python.org)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\n[![License: MIT](https://img.shields.io/github/license/engineervix/cookiecutter-wagtail-vix)](https://github.com/engineervix/cookiecutter-wagtail-vix/LICENSE)\n![GitHub commits since latest release (by SemVer including pre-releases)](https://img.shields.io/github/commits-since/engineervix/cookiecutter-wagtail-vix/latest)\n![GitHub last commit (branch)](https://img.shields.io/github/last-commit/engineervix/cookiecutter-wagtail-vix/main)\n\n[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-blue.svg)](https://conventionalcommits.org)\n[![Conventional Changelog](https://img.shields.io/badge/changelog-conventional-brightgreen.svg)](https://github.com/conventional-changelog)\n\n\u003c!-- START doctoc generated TOC please keep comment here to allow auto update --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n\n**Contents** _generated with [DocToc](https://github.com/thlorenz/doctoc)_\n\n- [Introduction](#introduction)\n- [Features ✨](#features-)\n- [Getting Started 🚀](#getting-started-)\n  - [A note regarding django-rq](#a-note-regarding-django-rq)\n- [Contributing 🤝](#contributing-)\n- [Show your support 🙌](#show-your-support-)\n- [Credits 👏](#credits-)\n- [Author 🧑‍💻](#author-)\n- [License 📝](#license-)\n\n\u003c!-- END doctoc generated TOC please keep comment here to allow auto update --\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/engineervix/cookiecutter-wagtail-vix/blob/main/docs/img/screenshot.png\" alt=\"Screenshot\"\u003e\n\u003c/p\u003e\n\n## Introduction\n\nEmbarking on any project \"from scratch\" is a formidable undertaking, entailing intricate configurations and setup that can quickly become overwhelming. Whether it's the time-consuming task of handling dependencies, structuring the project, or setting up a cohesive development environment – the challenges are universal.\n\nEnter `cookiecutter-wagtail-vix` – a template crafted to simplify the kick-off of [Wagtail](https://wagtail.org/) projects. This template is designed to streamline the setup process, sparing you from the headaches that often accompany the early stages of a project. By starting your new [Wagtail](https://wagtail.org/) project using `cookiecutter-wagtail-vix`, you leapfrog the tedious setup tasks, allowing you to focus on what truly matters – crafting your project's unique functionality with ease.\n\n## Features ✨\n\nHere are some key highlights:\n\n- Tech stack\n  - Docker\n  - Python 3.12, with Poetry for dependency management, and [Black](https://black.readthedocs.io/) + [ruff](https://github.com/astral-sh/ruff) for formatting and linting.\n  - Django 5.0\n  - Wagtail 6.1\n  - Node.js 22, with [Webpack](https://webpack.js.org/) 5 to bundle frontend assets\n- A good starting point for any Wagtail project, with essential batteries included and very minimal assumptions on what you are building.\n- Production-ready setup, so you don't waste time going from development to production.\n- Includes 3 Django apps to start with:\n  - `home`: Has a `HomePage` model which just extends the Wagtail `Page` model and does nothing else. This gives you freedom to set it up as you please.\n  - `core`: has **search** functionality and [wagtail-font-awesome-svg](https://github.com/wagtail-nest/wagtail-font-awesome-svg) configuration. The idea is to use this app for global functions, utilities, etc. Feel free to rename it to `utils` or `utilities` if you like!\n  - `users`: Custom User model as [recommended in the Django docs](https://docs.djangoproject.com/en/5.0/topics/auth/customizing/#using-a-custom-user-model-when-starting-a-project). The model just extends `AbstractUser` and does nothing else, so you can customise it as you please.\n- Ready to run background tasks via [Django-RQ](https://github.com/rq/django-rq):\n  - The [`django-rq`](https://github.com/rq/django-rq) package is installed, and all the configuration available, though commented out. Please see [note below](#a-note-regarding-django-rq).\n- Custom [Bootstrap 5](https://getbootstrap.com/) Compilation using Sass. No other frontend dependencies.\n- Configured to work with [pytest](https://docs.pytest.org/en/latest/) in conjunction with [pytest-django](https://pytest-django.readthedocs.io/en/latest/) (plus other pytest plugins), [factory_boy](https://factoryboy.readthedocs.io/en/latest/) and [wagtail-factories](https://github.com/wagtail/wagtail-factories). You have a starting test coverage of 100%! Ain't that great?\n- Task execution and automation using [`invoke`](http://www.pyinvoke.org/).\n- Includes some useful packages to boost your DX and productivity, for instance:\n  - [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) + [crispy-bootstrap5](https://github.com/django-crispy-forms/crispy-bootstrap5)\n  - [django-debug-toolbar](https://github.com/jazzband/django-debug-toolbar) for use during development\n  - [django-environ](https://github.com/joke2k/django-environ) — allows you to utilize 12factor inspired environment variables to configure your Django application.\n  - [django-extensions](https://github.com/django-extensions/django-extensions) — global custom management extensions for the Django Framework. I especially like [`shell_plus`](https://django-extensions.readthedocs.io/en/latest/shell_plus.html) (Django shell with autoloading of the apps database models and subclasses of user-defined classes).\n  - [django-widget-tweaks](https://github.com/jazzband/django-widget-tweaks), which allows you to tweak the form field rendering in templates, not in python-level form definitions.\n  - [django-storages](https://github.com/jschneier/django-storages) — provides a variety of storage backends\n  - [whitenoise](https://github.com/evansd/whitenoise) — simplified static file serving for Python web apps\n- Linting and formatting:\n  - _python_: [Black](https://black.readthedocs.io/) and [ruff](https://github.com/astral-sh/ruff)\n  - _frontend_: [ESLint](https://eslint.org/), [Stylelint](https://stylelint.io/), [prettier](https://prettier.io/) and [djLint](https://www.djlint.com/).\n- Detailed documentation via [MkDocs](https://www.mkdocs.org/)\n- A minimal, ready to use VSCode configuration, just update the path to your python executable in the generated `.vscode/settings.json`.\n- [Continuous integration (CI)](https://www.atlassian.com/continuous-delivery/continuous-integration) via [Github Actions](https://github.com/features/actions) / [Gitlab CI/CD](https://docs.gitlab.com/ee/ci/).\n- Automatic dependency management via [Renovate](https://github.com/marketplace/renovate) (for Github repos only).\n\n## Getting Started 🚀\n\nIn order to generate a new project from this cookiecutter template:\n\n1. ensure that you have [cookiecutter](https://github.com/audreyr/cookiecutter) installed on your computer\n2. run `cookiecutter https://github.com/engineervix/cookiecutter-wagtail-vix.git` in your favourite shell. You’ll be prompted for some values, such as **project_name**, **project_slug**, **email** etc. A new wagtail project will be created in a folder named according to the **project_slug** at your current location.\n3. Thereafter, `cd` into the project folder created above and follow the instructions in your shiny new project's README.\n\n### A note regarding django-rq\n\nIf you would like to run background tasks via [`django-rq`](https://github.com/rq/django-rq), you'll need to make the following changes:\n\n1. in `settings/base.py`\n\n   - uncomment the entry in the `THIRD_PARTY_APPS` list\n   - uncomment `RQ_QUEUES`\n\n2. in `settings/production.py`\n\n   - uncomment `RQ_QUEUES`\n   - uncomment the commented out items in the `LOGGING` dict\n\n3. in `Procfile`\n\n   - uncomment the `worker` entry\n\n4. in `.env`\n\n   - uncomment the line `RQ_QUEUE=redis://redis:6379/0`\n\n5. in `urls.py`\n\n   - uncomment the line with `path(\"dj-rq/\", include(\"django_rq.urls\")),`\n\n6. in `docker-compose.yml`\n   - uncomment the `redis` service entry\n   - uncomment the `worker` service entry\n\n## Contributing 🤝\n\n\u003c!-- Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions, issues and feature requests are most welcome!\n\nFeel free to check the [issues page](https://github.com/engineervix/cookiecutter-wagtail-vix/issues) and take a look at the [contributing guide](https://github.com/engineervix/cookiecutter-wagtail-vix/blob/main/CONTRIBUTING.md) before you get started.\n\nTo maintain code quality and formatting consistency, we utilize pre-commit hooks. These hooks automatically check and format your code before each commit. This helps ensure that the codebase remains clean and consistent throughout the development process. Set up the Git pre-commit hooks by running the following\n\n```bash\npre-commit install \u0026\u0026 pre-commit install --hook-type commit-msg\n```\n\nSee `pre-commit-config.yaml` for more details. In addition, please note the following:\n\n- if you're making code contributions, please try and write some tests to accompany your code, and ensure that the tests pass. Also, were necessary, update the docs so that they reflect your changes.\n- your commit messages should follow the conventions described [here](https://www.conventionalcommits.org/). Write your commit message in the imperative: \"Fix bug\" and not \"Fixed bug\" or \"Fixes bug\".\n\nOnce you are done, please create a [pull request](https://github.com/engineervix/cookiecutter-wagtail-vix/pulls).\n\n## Show your support 🙌\n\nPlease give a ⭐️ if this project helped you!\n\n## Credits 👏\n\n- `.gitignore` generated using \u003chttps://www.gitignore.io/\u003e\n- favicon created using \u003chttps://favicon.io/\u003e\n- Images courtesy of [Unsplash](https://unsplash.com/) and [Pixabay](https://pixabay.com/)\n- Placeholder logo courtesy of \u003chttps://github.com/pigment/fake-logos\u003e\n- \u003chttps://loremipsum.io/\u003e for placeholder text\n\n## Author 🧑‍💻\n\n👤 **Victor Miti**\n\n- Blog: \u003chttps://blog.victor.co.zm\u003e\n- [![X: engineervix](https://img.shields.io/twitter/follow/engineervix.svg?style=social)](https://twitter.com/engineervix)\n- Github: [@engineervix](https://github.com/engineervix)\n\n## License 📝\n\nCopyright © 2020 - 2024 [Victor Miti](https://github.com/engineervix).\n\nThis project is licensed under the terms of the [MIT](https://github.com/engineervix/engineervix/blob/main/LICENSE) license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fcookiecutter-wagtail-vix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineervix%2Fcookiecutter-wagtail-vix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineervix%2Fcookiecutter-wagtail-vix/lists"}