Skip to content

matagus/django-app-starter

Repository files navigation

django-app-starter

Demo.gif

Python Compatibility Django Compatibility License We use Hatch linting - Ruff code style - black Test Template Docs Build & Deployment

Generate a new Django app with all the goodies you need to start developing, testing and publishing your app to PyPI and Github.

👉 Try it as a github template repository: matagus/django-app-template-repository.

Features

  • Compatibility with Python 3.10 to 3.14 and Django 5.x to 6.x
  • Package management and dynamic versioning using Hatch.
  • Testing with hatch for all possible combinations of Python and Django versions.
  • Code coverage reporting to using Coverage.py.
  • Ready to use GitHub Actions pipelines for:
    • CI + reporting code coverage to codecov.io
    • Building and publishing to Pypi when a new tag is pushed
    • Creating a draft release
  • pre-commit configuration with:
    • black for code formatting
    • Linting and formatting with ruff
    • codespell, pyupgrade and several standard checks.
  • Consistent coding styles for multiple editors and IDEs via .editorconfig file.
  • Configuration using pyproject.toml file.
  • README.md file with instructions on how to start developing, testing and publishing your app.
  • An example_project fully configured to try you app from the start.
  • Dependency updates with Dependabot.
  • Issues templates for bugs and features, a Code of conduct file referencing Django's CoC, and a Security Policy config.
  • Sync updates from newest versions of this template with Copier.
  • Standardised list of GitHub labels synchronised on push to main branch using the labels CLI.
  • Documentation with Material for MkDocs and docstring reference support with mkdocstrings.
  • Latest stable documentation published to GitHub/GitLab Pages.

Coming Soon

Usage

Prerequisites

You need to have copier and hatch installed:

pip install copier
pip install hatch

Generate a new app

copier copy https://github.com/matagus/django-app-starter <app-name>

You'll be prompted for your project name, description, and GitHub username. A new directory is created with your app ready to develop.

After generating, follow the Post-Generation Setup Guide to activate GitHub Pages, Codecov, and PyPI publishing.

See the full documentation for running tests, the example project, and the release process.

Contributing

Contributions are welcome! ❤️

License

django-app-starter is released under an MIT License - see the LICENSE file for more information.

Webliography

About

A copier template for generating a Django app. Python 3.10-3.14 and Django 6.x compatible, pre-commit, test matrix + coverage, Github actions for CI, publish to Pypi & create release, github issues config + templates, docs with MkDocs + Material, and more!

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors