Panel subclass, and the frontend will automatically render the page for the fields, page layout etc. you have described. I borrowed the idea from the Django admin, but the Django admin itself isn't fitting our needs anymore so we want to rewrite our system with a similar DX but with a much easier way to add interactivity.