Django Rocket is a powerful Django SaaS boilerplate designed for indie hackers and SaaS companies that need to quickly launch their paywalled software. It leverages the Cookiecutter templating engine to generate a project structure with commonly used features such as authentication and billing, saving you time and effort.
For detailed information on usage and third-party integrations, please refer to the full documentation.
- Custom user model with login, registration, and account, email and security settings pages
- Stripe subscriptions via stripe-python, with checkout, cancel and reactivate flows and a webhook endpoint
- Customizable templates with Tailwind CSS (powered by django-tailwind)
- A REST API with token and API-key authentication, via djangorestframework
- Search backed by OpenSearch, and background work with celery on Redis
- Postgres and Redis defined in
docker-compose.yml, on host ports picked free on your machine - Static file serving with whitenoise
Install the CLI with pip:
$ pip install djrocketNOTE: The package is published as
djrocket; the command it installs isdjangorocket.
Generating and running a project needs:
- Python 3.10 - 3.14
- Docker, to run the Postgres and Redis services the generated project comes with
To create a new Django Rocket project, run the following command in your terminal:
$ djangorocket initYou will be prompted for your project name, after which the project structure will be generated. Scaffolding writes a working .env for you — a fresh SECRET_KEY, throwaway Postgres credentials and free host ports — so there is nothing to fill in before booting locally.
One command then takes the new project to a running app, creating a virtualenv, installing the dependencies, starting Postgres and Redis, and applying the migrations:
$ make bootstrap
$ make runserverEach generated project ships a README covering its layout, every make target, the Tailwind workflow and what to set when deploying.
To add a UI component to an existing Django Rocket project, run add from the project root:
$ djangorocket add accordionEach component lands in the project's templates directory under components/ui/, as a self-contained Django include with its own styles and behaviour and a README covering its props — src/templates/components/ui/accordion/accordion.html for the command above, which makes it includable as:
{% include "components/ui/accordion/accordion.html" with title="Questions" items=faq_items %}
accordion and button ship today; name several at once to install them together:
$ djangorocket add accordion buttonComponents go to the first directory in your settings' TEMPLATES['DIRS']. Pass --templates-dir to name another templates root; they still land under components/ui/ inside it.
Django Rocket is also usable as a plain Cookiecutter template, without installing the CLI:
$ pip install cookiecutter==2.1.1
$ cookiecutter gh:ErnestoFGonzalez/djangorocket --directory="djangorocket/templates/projects/base"NOTE: Although Django Rocket works with other versions of Cookiecutter, we recommend the version mentioned above, as it is the one that's well-tested.
For comprehensive coverage of features and integrations, check out the full documentation.