I've built the web app as an interactive mockup using placeholder data using VueJS and TailwindCSS.
Tailwind is actually great. My html looked chaotic to begin with, but as I progressed to breaking the app into components, the tailwind approach started to make a lot of sense. Tailwind offers a lot of flexibility in design whilst keeping everything organised and sane.
I've begun some early plans for the data model. Building the UX first has been pretty helpful; some design choices which might have been ambiguous have become obvious by doing it this way round.