Skip to content

Repository files navigation

djangorocket

Django version Latest Release License

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.

Features

  • 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

Installation

Install the CLI with pip:

$ pip install djrocket

NOTE: The package is published as djrocket; the command it installs is djangorocket.

Generating and running a project needs:

  • Python 3.10 - 3.14
  • Docker, to run the Postgres and Redis services the generated project comes with

Usage

To create a new Django Rocket project, run the following command in your terminal:

$ djangorocket init

You 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 runserver

Each generated project ships a README covering its layout, every make target, the Tailwind workflow and what to set when deploying.

Adding UI templates

To add a UI component to an existing Django Rocket project, run add from the project root:

$ djangorocket add accordion

Each 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 button

Components 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.

Using cookiecutter directly

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.

Releases

Packages

Used by

Contributors

Languages