Poonkawin.dev - create-django-inertia — Poonkawin Saravanan — poonkawin.dev
Open sourceCLI · actively maintained

create-django-inertia

One command scaffolds a production-ready Django + Inertia.js project — React or Vue, JavaScript or TypeScript, Tailwind and Vite already wired together.

terminal
$npm create django-inertia@latest
Why I built it

Django and Inertia work beautifully together. Getting them to that point does not.

Every new Django + Inertia project starts with the same hour of work that has nothing to do with the product: wiring the adapter, configuring Vite, choosing and installing a frontend framework, setting up Tailwind, getting the template and asset pipeline to agree, then laying out apps so the thing is still navigable at month six.

None of it is hard. All of it is repetitive, easy to get subtly wrong, and completely uninteresting — which is exactly the kind of work that should be automated once and never done by hand again.

So I built the CLI I wanted to exist. It asks a few questions, then hands back a project that is already structured the way a production application should be.

The problem

Setup, before and after.

By hand~1 hour
01django-admin startproject
02install + wire the Inertia adapter
03pick and install React or Vue
04configure Vite and the dev server
05set up Tailwind and its build step
06make templates and assets agree
07lay out apps so it scales later
With the CLIseconds
$ npm create django-inertia@latest
? FrameworkReact
? LanguageTypeScript
? TailwindYes
✓ Project ready

Same result, every time — and structured the way it should be rather than the way the tutorial happened to be written.

How it works

Four questions, then a working project.

1Runone command2ChooseReact or Vue · JS or TS3ScaffoldDjango · Vite · Tailwind4Buildfeatures, not setup
What it gives you

Everything already agreeing with everything else.

DJ
Django + Inertia, wired

The adapter, middleware and template plumbing already connected and working.

UI
React or Vue

Pick your frontend at scaffold time. Both paths are set up the same way.

TS
JavaScript or TypeScript

TypeScript configured properly if you want it, out of the way if you don't.

TW
Tailwind CSS

Installed and hooked into the asset pipeline, not bolted on afterwards.

VT
Vite configured

Dev server, HMR and production build already talking to Django.

AP
Django app structure

Apps laid out so the project is still navigable once it grows.

PR
Production-ready layout

Settings, static files and structure arranged for deployment, not just a demo.

Roadmap

Where it goes next.

shipped
React and Vue templates

Both frontends supported, with JavaScript and TypeScript variants.

shipped
Tailwind and Vite integration

Styling and bundling configured as part of the scaffold.

next
Auth scaffolding

Optional login, registration and session pages wired through Inertia.

next
Docker setup

An optional compose file so a new project runs the same on every machine.

exploring
Deployment presets

Opinionated starting points for common hosts, instead of a blank settings file.

exploring
Multi-tenant starter

A schema-per-tenant variant, based on what I run in production.

Why I keep going

Because the setup problem does not go away — it just moves.

Django ships new versions, Vite changes its config, frontend frameworks move, and the combination that worked last year quietly stops working. Maintaining this is how I keep the answer current — for the next project I start, and for anyone else who would otherwise spend an hour rediscovering it.