Django 5.0 Is Released

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • litestar

    Production-ready, Light, Flexible and Extensible ASGI API framework | Effortlessly Build Performant APIs

  • What's the preferred Python Web Framework these days?

    I've read a lot of love for Litestar (formerly Starlite), since it seems people prefer it over FastAPI, Flask, etc.

    https://litestar.dev

  • django-vite

    Integration of ViteJS in a Django project.

  • I'll preface all of this with a couple esoteric design goals that I had in mind:

    1. I actually _want_ an SPA. You might not need an SPA, if you don't need one then Vue/React/etc are overkill, etc.

    2. I want to power as much of the SPA as I can using the same REST API as my core product, both for dogfooding reasons and for consolidation. Many people might argue that this is a bad idea.

    ---

    With that in mind, some specific packages that I highly recommend:

    1. Django-vite (https://github.com/MrBin99/django-vite). This makes it very easy to serve an SPA from the actual django response/request model

    2. Some sort of way to get type information (if you're using TypeScript) into the frontend. I use a frankensteined system of the OpenAPI spec that django-ninja generates + openapi-typescript (https://github.com/drwpow/openapi-typescript). This means when I add, say, a new field to a response in Django, I immediately get typechecking for it in Vue ā€” which has been _tremendously_ useful.

    3. Django-typescript-routes (a package I extracted and open-sourced!: https://github.com/buttondown-email/django-typescript-routes) which gives your front-end routing information based on the Django router.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • openapi-typescript

    Generate TypeScript types from OpenAPI 3 specs

  • I'll preface all of this with a couple esoteric design goals that I had in mind:

    1. I actually _want_ an SPA. You might not need an SPA, if you don't need one then Vue/React/etc are overkill, etc.

    2. I want to power as much of the SPA as I can using the same REST API as my core product, both for dogfooding reasons and for consolidation. Many people might argue that this is a bad idea.

    ---

    With that in mind, some specific packages that I highly recommend:

    1. Django-vite (https://github.com/MrBin99/django-vite). This makes it very easy to serve an SPA from the actual django response/request model

    2. Some sort of way to get type information (if you're using TypeScript) into the frontend. I use a frankensteined system of the OpenAPI spec that django-ninja generates + openapi-typescript (https://github.com/drwpow/openapi-typescript). This means when I add, say, a new field to a response in Django, I immediately get typechecking for it in Vue ā€” which has been _tremendously_ useful.

    3. Django-typescript-routes (a package I extracted and open-sourced!: https://github.com/buttondown-email/django-typescript-routes) which gives your front-end routing information based on the Django router.

  • django-typescript-routes

    Generate Typescript routes from a Django URLconf

  • I'll preface all of this with a couple esoteric design goals that I had in mind:

    1. I actually _want_ an SPA. You might not need an SPA, if you don't need one then Vue/React/etc are overkill, etc.

    2. I want to power as much of the SPA as I can using the same REST API as my core product, both for dogfooding reasons and for consolidation. Many people might argue that this is a bad idea.

    ---

    With that in mind, some specific packages that I highly recommend:

    1. Django-vite (https://github.com/MrBin99/django-vite). This makes it very easy to serve an SPA from the actual django response/request model

    2. Some sort of way to get type information (if you're using TypeScript) into the frontend. I use a frankensteined system of the OpenAPI spec that django-ninja generates + openapi-typescript (https://github.com/drwpow/openapi-typescript). This means when I add, say, a new field to a response in Django, I immediately get typechecking for it in Vue ā€” which has been _tremendously_ useful.

    3. Django-typescript-routes (a package I extracted and open-sourced!: https://github.com/buttondown-email/django-typescript-routes) which gives your front-end routing information based on the Django router.

  • fx-private-relay

    Keep your email safe from hackers and trackers. Make an email alias with 1 click, and keep your address to yourself.

  • In case you're interested, Firefox Relay uses that stack and is open source: https://github.com/mozilla/fx-private-relay/

  • docker-django-example

    A production ready example Django app that's using Docker and Docker Compose.

  • Congrats on the release to the Django community!

    If anyone is curious, I updated my Django / Docker starter kit app to use Django 5.0 at: https://github.com/nickjj/docker-django-example

    It pulls together gunicorn, Celery, Redis, Postgres, esbuild and Tailwind with Docker Compose. It's set up to run in both development and production.

  • pellet

    Pellet helps improve your Django app performance by discovering N+1 queries. (by har777)

  • Simple middleware can warn you about lazy loading/N+1 queries. Most of the time people just forget it happens.

    Try using: https://github.com/har777/pellet

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • deps

    Django Enhancement Proposals

  • No, as I understand it, Django project's stance on type hints is that they aren't going to be added any time soon, but they are willing to accept small PRs that are needed by external type-checkers on a case by case basis. Details here: https://github.com/django/deps/pull/65

  • django-template-partials

    Reusable named inline partials for the Django Template Language.

  • There is a package, https://github.com/carltongibson/django-template-partials, that is basically like server-side hex-select, when there is some performance concern. Overall, I agree with you though, hx-select is going to be fine most the time.

  • kaffy

    Powerfully simple admin package for phoenix applications

  • I haven't used Elixir yet and mostly using flask in Python for work but I started with Django (and still think it's better than flask for most apps). If stuff like https://github.com/aesmail/kaffy (first thing I've found on google, never heard of it before) is on par with the Django admin, would you still use Django or Elixir and never look back?

  • openapi-typescript-codegen

    NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification

  • Iā€™d also add that if you use Typescript with an OpenAPI client generator (https://github.com/ferdikoomen/openapi-typescript-codegen) it can immensely alleviate some of the biggest pain points of seperate backend and front-end. It always used to be a major pain in the ass with the amount of overhead an API change would incur - updating documentation, postman, constant communication between backend and front-end devs, etc. Now I just npm run generate, I see new API changes in my Git client and Typescript errors for code that needs updating.

    Also, using a library like Tanstack Query or Rdtk Query can almost completely eliminate manual state management, and kinda makes the whole development experience feel almost like SSR.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts