Introduction

django-unicorn is a magical full-stack framework for Django. Instead of building additional API endpoints to provide website interactivity, django-unicorn provides the pieces of a modern website experience without moving away from all of the benefits of Django.

django-unicorn seamlessly extends Django past its server-side framework roots without giving up all of its niceties or re-building your website.

django-unicorn stands on the shoulders of giants, in particular morphdom which is integral for merging DOM changes.

A few inspirational projects in other languages and frameworks.

  • Livewire, a full-stack framework for the PHP web framework, Laravel.
  • LiveView, a library for the Elixir web framework, Phoenix that uses websockets.
  • StimulusReflex, a library for the Ruby web framework, Ruby on Rails that uses websockets.

Some Django packages which aim to solve similar problems as django-unicorn.

  • Reactor, a port of Elixir's LiveView to Django. Especially interesting for more complicated use-cases than django-unicorn can handle like chat rooms, keeping multiple browsers in sync, etc. Uses Django channels and websockets to work its magic.
  • Sockpuppet, a port of Ruby on Rail's StimulusReflex. Requires Django channels and websockets.
  • Django inertia.js adapter, which allows Django to use inertia.js to build an SPA without building an API.
  • django-page-components, a minimalistic framework for creating page components and using them in your Django views and templates.