This article is very useful.
I use DRF but not serializers and write validations by hand because it is too abstract for me.
My views just call services and return the result.
https://github.com/dj-bolt/django-bolt
I upgraded to M5 air and use both daily and the M2 holds its own.
I have had need for active cooling once so far to get full performance.
Can you add an indicator to show whether the tool is currently running or not running (due to - no prompt, API error, waiting for permission etc)