What is the difference between Moudle and Doctype in customapp and frappe?

Why do I need to create a custom app when I can create tables and other tasks through doctype?

You don’t need to, but you can.

For instance, you can put an app on a github repo and install it in another bench or site. So an app can serve to bundle several assets.

Also, you can do more things in an app, like adding functionalities (for instance using python modules) which are not available in doctypes or server scripting.

So it’s a layered system from no-code to low-code to full-code with many possibilities which differ from one layer to the next and need somewhat different skillsets to use, kind of from easy to expert.

Thank You For Answering