Metadata-Version: 2.4
Name: modern-django-starter
Version: 0.3.9
Summary: A CLI tool for generating Django 6.1 projects with HTMX, AlpineJS, and more
Author-email: Rian <dev@rianbarriga.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/CasualEngineerZombie/modern-django-starter
Project-URL: Repository, https://github.com/CasualEngineerZombie/modern-django-starter
Project-URL: Documentation, https://mds.rianbarriga.com
Project-URL: Issues, https://github.com/CasualEngineerZombie/modern-django-starter/issues
Keywords: django,htmx,alpine,tailwind,starter,boilerplate
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Framework :: Django
Classifier: Topic :: Software Development :: Code Generators
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: click>=8.1.0
Requires-Dist: jinja2>=3.1.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.0.0

# Modern Django Starter

[![PyPI version](https://img.shields.io/pypi/v/modern-django-starter)](https://pypi.org/project/modern-django-starter/)
[![Python](https://img.shields.io/pypi/pyversions/modern-django-starter)](https://pypi.org/project/modern-django-starter/)
[![CI](https://github.com/CasualEngineerZombie/modern-django-starter/actions/workflows/ci.yml/badge.svg)](https://github.com/CasualEngineerZombie/modern-django-starter/actions/workflows/ci.yml)
[![Docs](https://github.com/CasualEngineerZombie/modern-django-starter/actions/workflows/docs.yml/badge.svg)](https://github.com/CasualEngineerZombie/modern-django-starter/actions/workflows/docs.yml)

A CLI tool that generates Django 6.1 projects with HTMX, AlpineJS, TailwindCSS, and more — with optional Docker, PostgreSQL, DRF, Celery, Sentry, Stripe, and cloud integrations.

**📚 Full documentation: [mds.rianbarriga.com](https://mds.rianbarriga.com)**
**📝 Release history: [CHANGELOG.md](CHANGELOG.md)**

## Installation

Requires Python 3.12+.

```bash
# uv (recommended)
uv tool install modern-django-starter

# pip
pip install modern-django-starter
```

## Usage

```bash
modern-django-starter create my_project
```

To create a project somewhere else:

```bash
modern-django-starter create my_project --output-dir /path/to/projects
```

Project names must be valid Python identifiers because they become the Django package name.

Without extra flags, the CLI asks for your choices interactively:

| Option | Choices |
|---|---|
| Docker | yes / no |
| PostgreSQL | 15, 16, 17, 18 |
| Cloud provider | none, AWS, Azure, GCP, Render, Railway, PythonAnywhere, Fly.io, Dokku, Heroku |
| Storage provider | local, AWS, GCP, Azure, Cloudflare R2 |
| Email provider | none, SendGrid, Mailgun, SES, Postmark |
| Async support | yes / no |
| Django REST Framework | yes / no |
| Celery | yes / no |
| Sentry | yes / no |
| Stripe | yes / no |
| Frontend pipeline | none, webpack, vite, parcel |
| CI tool | none, GitHub Actions, GitLab CI, Travis, CircleCI |

### API-only projects

Pass `--api-only` to skip the frontend and generate a pure DRF backend:

```bash
modern-django-starter create my_api --api-only
```

Includes:

- Django REST Framework
- JWT auth (djangorestframework-simplejwt)
- CORS (django-cors-headers)
- API schema and docs (drf-spectacular)
- Registration/auth endpoints (dj-rest-auth, django-allauth)

## Generated project

- Django 6.1
- HTMX and AlpineJS
- Django-allauth authentication
- TailwindCSS and DaisyUI styling
- Settings split into `base`, `development`, and `production`
- Optional: Docker, PostgreSQL, DRF, Celery, Sentry, Stripe, CI workflow, frontend pipeline

## Development

### Prerequisites

- Python 3.12+
- [uv](https://docs.astral.sh/uv/)
- Node.js and npm (only needed if you test frontend pipeline generation)

### Setup

```bash
git clone https://github.com/CasualEngineerZombie/modern-django-starter.git
cd modern-django-starter
uv sync
```

### Checks

Run the same checks as CI:

```bash
uv run ruff check .
uv run ruff format --check .
uv run mypy
uv run pytest
```

CI runs lint, type checking, and tests on Python 3.12, 3.13, and 3.14.

### Documentation

The docs site ([mds.rianbarriga.com](https://mds.rianbarriga.com)) is built with
MkDocs Material and deployed to GitHub Pages by the `docs.yml` workflow on every push
to `main`. Sources live in `docs/`. Preview locally with:

```bash
uv sync --group docs
uv run mkdocs serve
```

## Contributing

Pull requests are welcome. Run the checks above before submitting.

## License

MIT — see the [LICENSE](LICENSE) file.
