18 Django Apps To Build And Ship a Product Quickly

Viktor Nagornyy
Powered by Django
Published in
16 min readMar 19, 2023

--

You got an idea for an app you would like to build and profit from using the Django web framework. Where do you start to develop the app quickly?

When building a product, you want to build a Minimum Viable Product (MVP) and ship it as quickly as possible to get your idea validated.

While Django provides the foundation to build your product, the main benefit of using Django is the ecosystem of packages that extend Django with additional functionality to save developers time and effort.

Django Packages

Django packages are collections of free, open-source reusable code and functionality that can be easily incorporated into a Django project to add new features or enhance existing ones.

These packages can be downloaded from the Python Package Index (PyPI) or other sources and typically come as installable modules or apps.

Django packages add functionality such as authentication, database management, forms, search, and more, without writing code from scratch. They save developers time and effort and help improve the overall quality and functionality of Django projects.

DjangoPackages.org is a great place to find and compare Django packages.

If you’re building a product powered by Django, here are the 18 most popular and used Django packages to help you save an enormous amount of time and effort and ship your product in a week:

  1. Django Rest Framework
  2. DRF Spectacular
  3. Django Allauth
  4. Django Allauth 2FA
  5. Django Anymail
  6. Django Waffle
  7. Django Stripe
  8. Django Hijack
  9. Django Honeypot
  10. Celery
  11. Celery Progress Bars for Django
  12. Wagtail CMS
  13. Pydantic
  14. Sentry (Glitchtop)
  15. WhiteNoise
  16. Django Crispy Forms
  17. Django Debug Toolbar
  18. Django Environ
  19. BONUS: Saas Pegasus App Boilerplate

1. Django Rest Framework

Django Rest Framework is a third-party package for Django web framework that allows you to build and serve RESTful APIs. It provides tools and features to help you create APIs quickly and easily, such as serialization, authentication, pagination, filtering, and more.

With Django Rest Framework, you can easily convert your Django models into RESTful resources and expose them as API endpoints that other apps can consume.

It also supports various data formats, including JSON, XML, YAML, etc. Developers widely use Django Rest Framework to create web and mobile apps that consume APIs.

2. DRF Spectacular

DRF Spectacular is a third-party package for Django Rest Framework that provides automatic OpenAPI documentation for your API. It generates documentation based on the serializers, views, and models defined in your Django Rest Framework project.

With DRF Spectacular, you can easily document your API and make it available to others without manually creating the documentation yourself. It also supports customization, so you can fine-tune the documentation to suit your needs.

This package supports the OpenAPI 3.0 specification and provides various features such as response schemas, request examples, and authentication documentation. Developers widely use it to create well-documented APIs quickly and easily.

3. Django Allauth

Django Allauth is a third-party authentication package for the Django web framework that provides a set of views, forms, and templates to handle user authentication and registration and social authentication using providers such as Google, Facebook, Twitter, and GitHub.

Allauth also supports multiple email addresses per user, email verification, password reset, and two-factor authentication. It is highly customizable and can be easily integrated into existing Django projects.

4. Django Allauth 2FA

Django Allauth 2FA is a third-party package for the Django web framework that adds two-factor authentication (2FA) functionality to Django Allauth.

It provides additional security by requiring users to provide a second form of authentication, such as a code sent via SMS or generated by an app, in addition to their username and password. With Django Allauth 2FA, you can easily add 2FA to your Django Allauth-based authentication system, including support for popular 2FA apps like Google Authenticator and Authy and password managers supporting 2FA tokens such as 1Password.

It also allows you to customize the 2FA settings, such as the number of backup codes provided to users and the time a code validates. Additionally, it includes integration with Django’s built-in authentication system, making it easy to add 2FA to your existing authentication system.

Django Allauth 2FA is a powerful tool to help enhance the security of your Django web app.

5. Django Anymail

Django Anymail is a third-party package for the Django web framework that provides a simple way to send emails through various email service providers. It supports multiple email service providers, including Amazon SES, Postmark, SendGrid, and more.

With Django Anymail, you can easily integrate your Django app with an email service provider and take advantage of their features, such as improved deliverability, email tracking, and more.

Additionally, it provides a unified API for sending (and receiving) emails, so you can switch between email service providers without changing your code if you need to. Django Anymail also supports advanced features like attachments, templating, and batch sending.

It is a widely used package by Django developers to simplify their email-sending process and increase the reliability and deliverability of emails.

6. Django Waffle

Django Waffle is a third-party package for the Django web framework that provides a simple way to control feature flags or toggles in your app. It allows you to enable or disable features at runtime without modifying your code or deploying new app versions.

With Django Waffle, you can create feature flags based on conditions like user groups, cookies, or other custom factors. You can also specify the percentage of users who should see a particular feature or use a percentage-based rollout strategy. Plus, it provides an easy-to-use API for checking whether a feature is enabled or disabled in your code.

Django Waffle is a powerful tool to help you gate features based on pricing plans, experiment with new features, and gradually roll them out to your users while minimizing the risk of breaking your app.

7. Django Stripe

Django Stripe is a third-party package for the Django web framework that provides a simple way to integrate Stripe payment processing into your Django app. It lets you easily add payment forms, subscription management, and payment processing to your website.

With Django Stripe, you can create and manage Stripe customers, subscriptions, and payment methods directly from your Django app. It also provides a built-in webhook system that automatically updates your app when events occur on the Stripe side.

Django Stripe is highly customizable and provides a flexible API for handling payments, subscriptions, invoices, and other Stripe features.

Django developers widely use it to build e-commerce websites and other apps that require payment processing functionality.

8. Django Hijack

Django Hijack is a third-party package for the Django web framework that provides a simple way to log in as another user in your Django app.

It allows administrators to access the user’s account and perform actions on their behalf without knowing the user’s password or logging them out.

With Django Hijack, you can easily switch to another user’s account while preserving their session state and activities. It also provides configurable settings that can help to control who can hijack sessions and what actions can be performed.

Django Hijack is a powerful tool that can be used for debugging, customer support, or other use cases where it’s helpful to access a user’s account in your Django app.

9. Django Honeypot

Django Honeypot is a third-party package for the Django web framework that provides a simple way to protect against spambots and automated attacks. It works by adding a hidden field to your forms that is invisible to human users but can be detected and filled in by spambots.

When a bot fills in the honeypot field, Django Honeypot can automatically block or flag the submission as spam. This package is easy to use and can be added to your forms with just a few lines of code.

It can also be customized to fit your needs, such as changing the name of the honeypot field or adding additional measures to protect against spam. Django Honeypot is a useful tool to help prevent spam and protect your website from malicious attacks.

10. Celery

Celery is a third-party package for the Django web framework that provides a way to perform asynchronous and scheduled tasks in your Django app. It allows you to execute time-consuming tasks in the background, freeing up your server to handle other requests.

With Celery, you can easily create tasks that run in parallel and can be scheduled to run at specific times or intervals. It also provides tools for monitoring and managing tasks, including a built-in admin interface and support for remote task execution.

Celery can be easily integrated with other Django packages, such as Django ORM and Django Rest Framework.

Python and Django developers widely use Celery to improve the performance and scalability of their apps by offloading time-consuming tasks to a separate task queue.

11. Celery Progress Bars for Django

Celery Progress Bars is a third-party package for the Django web framework that provides a simple way to display progress bars for long-running tasks executed with Celery. It allows you to provide real-time feedback to your users on the progress of a task and estimate the time remaining until completion.

With Celery Progress Bars, you can easily add progress bars to your Django templates and customize the appearance and behavior of the progress bar. It also provides features like automatic refresh, error handling, and support for multiple concurrent tasks.

It works seamlessly with Celery and can be integrated with other Django packages to create a powerful and user-friendly experience for your users.

Django developers use Celery Progress Bars to improve the user experience of their apps by providing real-time feedback on long-running tasks.

12. Wagtail CMS

Wagtail CMS is a third-party content management system for the Django web framework that provides a simple and intuitive way to create and manage content for your website.

It helps you create pages and content structures, customize the design and layout of your website, and manage user permissions and workflows. With Wagtail CMS, you can easily create rich media content, including images, videos, and documents, and organize them in a hierarchical structure.

It also provides a powerful search engine, version control, and a built-in preview mode for content editing.

Additionally, Wagtail CMS is highly customizable and provides a flexible API for building custom apps and integrating with other Django packages.

Django developers use Wagtail CMS to build complex and scalable websites that require robust content management capabilities.

13. Pydantic

Pydantic is a third-party package for Python that provides a simple way to define and validate data structures using Python type annotations.

It allows you to define data models with automatic data validation and type conversion, making working with data in your Django app easier.

With Pydantic, you can easily define data schemas for input validation, serialization, and deserialization. It also supports data parsing from JSON, YAML, and other formats.

Pydantic integrates seamlessly with Django forms, models, and Django Rest Framework, allowing you to easily validate and serialize data from web forms, database models, and APIs.

Python and Django developers widely use Pydantic to improve their apps' reliability, maintainability, and security by providing a simple and consistent way to handle data structures.

14. Sentry (Glitchtip)

Sentry Python SDK is a third-party package for the Django web framework that provides a simple way to integrate the Sentry error-tracking platform into your Django app.

It allows you to capture and track errors and exceptions in real-time, providing valuable insights into the performance and reliability of your app. With Sentry, you can easily configure error reporting, set up alerts, and monitor error trends.

It also supports debugging, source code integration, and customizable reporting. It’s highly scalable and can monitor errors across multiple apps and environments.

Glitchtip, Open Source Sentry Alternative

Glitchtip is an open-source fork of Sentry that provides a similar set of features and functionality. It allows you to capture and track errors and exceptions in real-time, providing valuable insights into the performance and reliability of your apps.

With a few limitations, Glitchtip uses Sentry SDKs to ingest data. You can use Sentry’s Python SDK to integrate Glitchtip with your Django app. This is what we do.

As an open-source fork of Sentry, Glitchtip provides an alternative for developers who prefer open-source software, want to customize the Sentry experience to fit their needs better, or want to cut their Sentry bill.

15. WhiteNoise

WhiteNoise is a third-party package for the Django web framework that provides a simple way to serve static files for your Django app. It allows you to serve static files directly from your Django app without needing a separate web server or content delivery network.

With WhiteNoise, you can easily configure caching, compression, and other optimizations for static files, improving the performance and reliability of your app.

It also supports serving files from multiple locations, including the local file system, Amazon S3, and other cloud storage providers.

WhiteNoise is highly customizable and can be integrated with other Django packages to create a powerful and flexible static file-serving solution for your app.

Django developers widely use WhiteNoise to improve the performance and reliability of their apps by providing a simple and efficient way to serve static files.

Remember, WhiteNoise is used primarily during the development of your app locally or in a staging environment. Small apps can use it without issues, but to serve static files reliably at scale, you will need to use WhiteNoise with a dedicated CDN provider (such as Bunny) or a web server (such as Nginx).

16. Django Crispy Forms

Django Crispy Forms is a third-party package for the Django web framework that provides a simple way to create and manage DRY (Don’t Repeat Yourself) forms in your Django app.

It allows you to easily define form layouts using Django code or templates, providing a flexible and customizable way to create forms. You can configure form rendering with Django Crispy Forms, including Bootstrap, Foundation, and other CSS frameworks. It also provides support for form validation, error handling, and internationalization.

Django Crispy Forms is highly customizable and can be integrated with other Django packages to create a powerful and flexible form management solution for your app.

Django developers use Django Crispy Forms to reduce the time and effort of developing and handling multiple forms in the app. Use this package if you plan to have many forms.

17. Django Debug Toolbar

Django Debug Toolbar is a must-have third-party package for the Django web framework that provides a set of panels displaying various debug information about the current request/response.

It allows you to quickly and easily view information about SQL queries, cache usage, template rendering, HTTP headers, and more, providing valuable insights into the performance and behavior of your app to help you troubleshoot issues.

With Django Debug Toolbar, you can also easily identify and debug issues with your app, improving the development and debugging process.

The toolbar is highly customizable and can be extended with custom panels, providing a flexible and powerful debugging solution.

Django developers widely use Django Debug Toolbar to improve their apps' performance, reliability, and user experience by providing a simple and efficient way to debug and optimize the code.

18. Django Environ

Django Environ is a third-party package for the Django web framework that simplifies configuring the Django app using environment variables.

It allows storing sensitive information such as passwords, API keys, and database credentials in a separate environment file instead of hard-coding them into your settings file. This is a great option if you follow the Twelve-Factor App methodology.

This package makes managing different settings for different environments easy, such as development, staging, and production.

Django Environ can also load default values for your settings and override them with environment variables. Additionally, it provides a simple interface for accessing the environment variables in your code.

Django developers use Django Environ to simplify their apps’ configuration management and enhance security.

Build Your Product In A Weekend With SaaS Pegasus

A demo subscription app using SaaS Pegasus.

SaaS Pegasus is an app boilerplate for building and launching SaaS (Software as a Service) apps. The platform uses the Django web framework, known for its scalability, security, and versatility.

SaaS Pegasus offers tools and resources to help developers and businesses create, launch, and scale SaaS apps quickly and easily through a combination of the abovementioned packages.

Its features include a boilerplate app, user authentication and management, user hijacking for support, feature flags (feature gating), billing and invoicing, analytics integration, and integrations with popular third-party services such as Stripe, ChatGPT, Dall-E 2, and a dozen of email service providers through the Anymail package.

The platform is designed to be user-friendly and accessible for experienced developers and those new to Django development. This app is especially great for anyone new to Django because Cory Zue, the lead developer, offers support over Slack. So if you’re stuck or have questions, you can get help from the developer and other Pegasus users on Slack.

Out of the box, you can create per-seat or per-unit subscription plans with Stripe integration. You can start taking payments within hours.

In addition, subscriptions are integrated with feature flags (feature-gating) and team management. You can give users access based on their plan and allow them to invite additional users.

If you plan to offer API access to your users, everything is already built-in using Django Rest Framework. This includes API passwords for your users so you can give them API access from day one.

Frontend Options

SaaS Pegasus comes with several frontend options:

CSS Frameworks:

  • Bootstrap 5 — No theme
  • Bootstrap 5 — Material Dashboard
  • Bulma
  • Tailwind

JS Frameworks:

You can customize the frontend as much as you want. If you’re not good with JavaSscript, choose HTMX and Alpine.JS to use HTML markup to create interactive experiences.

To Sum Up

The main work that needs to be done is the core functionality of your app, whatever that may be. SaaS Pegasus gives you a foundation to build a money-making product while you need to add functionality your users will want and pay you for.

For example, if you’re building a contact relationship management (CRM) system, you must create database models to store contact data and frontend UI to allow users to manage contact data.

Saas Pegasus is fairly priced, considering how much time and effort it will save you to ship your product quickly and get paid.

  • A single project/domain costs a $249 one-time fee.
  • Unlimited projects/domains cost a $749 one-time fee.

My team and I have an unlimited plan with SaaS Pegasus and have already built two apps with it, one for internal use and one subscription platform launching soon.

It was an excellent investment, considering how much time it saved us and the support we got from the developer when we got stuck on Slack. I recommend it to everyone looking to build a product quickly.

New To Django?

If you’re new to Django, as I was, you may be looking for good resources to learn how to use Django to build apps. The best resources that helped me learn Django with easy-to-follow instructions and code are the three ebooks written by William S. Vincent (he keeps them up-to-date):

Django for Beginners laid a solid foundation for me to pick up all other Django (and Python) concepts. Start with that ebook. That’s what I did.

If you want to be notified of new stories related to Django, follow Powered by Django here on Medium, or you can follow me to learn more about digital marketing in addition to Django.

Summaries of Django packages are based on ChatGPT-generated summaries, edited by me for clarity and personal experience.

This article includes affiliate links.

--

--

Viktor Nagornyy
Powered by Django

📈 Marketing consultant. 14 years helping biz generate leads & sales. Open source advocate. Sign up for my marketing coaching newsletter ➡️ inboundmethod.com/m