Open hoangquochung1110 opened 3 months ago
The lack of static typing made refactoring challenging at times, requiring extensive testing to ensure everything worked correctly.
Django Rest Framework, which lacks native async support, which can be problematic. If you need async functionality, you might consider Django Ninja. However, like many projects in the Django ecosystem, it is maintained by a single individual.
a tool called Django Cookiecutter, which allows you to generate a Django project from scratch to contain much of the boilerplate code that would go into a project. It's very useful and already incorporates some of the best practices in file/folder structure
Tech for the stack, I'd look at django-ninja these days. Valkey is the new caching service instead of redis, you can use that as a celery broker and a cache backend. Avoid a javascript frontend unless you've got a dedicated team for it. Django's templates with HTMX are a great choice for a small team.
Security
Django handles most security concern's itself as long as you turn on the right settings. Give this a read https://docs.djangoproject.com/en/5.1/topics/security/ There maybe some extra apps you could install, to get a CSP perhaps. Then you can scan your site to get an idea of areas for improvement; https://securityheaders.com/