Wagtail is amazing! It did everything we needed and more. My primary frustration was in building reusable server-side rendered components and "interactive islands" (as popularized by Astro). The Django/Jinja templating language can be pretty verbose and difficult to parameterize reusable functionality. I found myself constantly doing this:
``` {% with field|contact_label as label %} <div class="relative mt-5 my-3 md:my-5"> <label class="{% if placeholders %}hidden{% endif %} bg-white absolute -top-[9px] block ml-2 px-2 text-black text-sm rounded" for="{{ form_name }}_{{ field }}" id="{{ form_name }}_{{ field }}_label"> {{ label }} </label> ```
(the "with" templatetag)
Over time these templates just became very difficult to work with. Part of that is likely also because I've been a full-time React dev for the better part of a decade, and I'm just faster with it.