Feature Idea: Native JSX support in Django templates for a modern full-stack harmony

Hello Django Community,

First of all, thank you for this incredible framework. Django’s backend, ORM, security features, authentication, and admin system are absolutely amazing and work extremely well.

However, when building modern user interfaces, traditional HTML templates can sometimes feel limited compared to technologies like JSX. Many developers today want to combine Python for the backend with React/JSX for the frontend. Currently, connecting these technologies often requires additional configuration such as Django REST Framework, CORS setup, separate development servers, and extra tooling.

I am not asking Django to replace React or change its philosophy. Django is already excellent at what it does: backend development, data management, security, authentication, and APIs.

The idea is simply to make the connection between Django and modern frontend technologies like React, JSX, and Vite easier and more accessible.

Just like Django simplified many aspects of web development with features like the admin interface, ORM, forms, and security tools, an official integration option or a smoother workflow for JSX/Vite/React could help developers build full-stack applications with less configuration.

The goal would not be to remove Django templates, but to give developers more flexibility:

  • Python for backend logic

  • Django for databases, authentication, permissions, and APIs

  • JSX/React for modern and dynamic user interfaces

A smoother Django + React workflow could help many developers create beautiful applications faster while keeping all of Django’s strengths.

It would be wonderful if Django could provide better native support or an official integration path for JSX within its project structure. A more unified ecosystem where Django can seamlessly work with modern frontend components would bring a new level of harmony to full-stack Python development.

Are there any plans, discussions, or ideas around improving React/JSX integration in future Django releases?

Thank you for your time, your hard work, and for listening to the community.

Best regards,
Laura Lord


Hi Laura.

Couldn’t find much discussion or any proposals for Django to adopt one particular framework.

Some documentation is definitely under development to help ease using JS frameworks in general. This howto - #30296 (Add how-to guide for JavaScript frameworks integration) – Django - includes a matrix of 3rd party integration tools (mainly at the bundler level) which mentions django-vite. That might be worth checking out.

Overall though I think native support of JSX (let alone all of React) would a massive undertaking, both philosophically and effort wise. For example if we’re integrating JSX, are we obligated to support Vue and Angular as well? Would we need to include and maintain React server components and server side rendering too?

We certainly do still want to smooth co-utilisation of frameworks. Hence the howto. Are you finding most of the pain points occur during coding and development? Or is it primarily about production and deployment complexity?

Cheers
James

Hi Dear Laura,

How’re you?

Really thoughtful post you’ve described a pain point a lot of us have felt. A couple of thoughts to add to the discussion.

You’re right that the Django + React setup involves real friction today (DRF, CORS, separate dev servers, extra tooling). But it’s worth knowing that a lot of this space is already moving, even if not officially inside Django core:

django-vite handles the Vite integration cleanly it manages the manifest, dev server, and HMR so you don’t wire it up by hand.

Inertia.js (with inertia-django) is probably the closest thing to what you’re describing: it lets you use React/Vue components as your “templates” while keeping Django’s routing, auth, and controllers no separate API layer or CORS needed.

For sending data to the frontend without a full DRF setup, packages like djangorestframework are still the standard, but lighter options exist too.

On the native support in core idea specifically: historically the Django team has kept frontend concerns out of core on purpose, so the framework stays unopinionated about your JS stack. That philosophy makes an official JSX integration unlikely to land in core but the ecosystem packages above are exactly where this kind of innovation tends to happen, and they move faster than core ever could.

So I’d frame it less as Django should add JSX and more as the JSX/Vite integration story is already pretty good if you know which packages to reach for.

Might be worth the community documenting these patterns more visibly.

Have you tried Inertia yet? Curious whether it covers your use case.

Thank you so much

New feature suggestions are best raised on the new-features repo:

With that said, the template system is intentionally pluggable. The best path forward would be to implement this as a 3rd-party package.

Tools need traction and wide appeal before they’ll be included in Django, which I (personally) don’t see this getting. However, a 3rd-party package sounds ideal for the people who need this functionality.

FYI, there is one request that appears similar already → Officially Supported Server-Driven Frontend Framework · Issue #26 · django/new-features · GitHub