11. Htmx
Date: 2024-08-20
Status
Accepted
Context
For an interactive user interface in the web, Javascript is inevitable. As this is a very small project, for now mainly written and supported by a single person, we want to aim for the maximum of technical simplicity.
Decision
We will use the library “htmx” to provide an interactive user interface for the user.
Consequences
Django urls, views and templates will be tightly coupled with htmx so there is a strong dependency to htmx
the dependency to htmx could be reduced by implementing a fall-back (e.g. when javascript is deactivated in the user’s browser)
the whole project-code stays in one single repository (compared to a separate front-end)
using hypermedia as the engine of application state (HATEOAS) as central concept of the (internal) structure
the project will stay a standard Django “multi-page application” (MPA) instead of a JSON-Data-Provider coupled with a SPA-Frontend