Desk vs portal vs web form vs page vs report vs doctype

what is the diff between them
desk vs portal vs web form vs page in hook
page vs report vs doctype in frappe

Okay there’s a lot to unpack here. In business applications there are backend views and frontend views. Backend views are for internal users and internal processes. Frontend views can be public or behind an authentication for a certain role and deal with external users and their processes.

Desk is a backend view where internal users navigate internal system and processes and access the data and reports. Portals are for external users that are not a part of your organization, that can be customers, vendors, etc and web forms are a way for them to interact with the system. When you login to any shopping website and go to your orders page, that’s a portal view with just your orders information and your data, an internal employee may have their own internal ‘desk’ like system to view all the orders not just yours. Similarly vendors may have their own portal view and webforms to list their products on such a system.

Page in frappe is a mechanism to present data inside the desk for internal users, you can customize it however you want. Hooks is a file where you define your custom implementation, it could be a page, function, javascript, etc.

1 Like

okey thanks for all these information @Adeel_Siddiqui
but i did not get the meaning of page and web form in deep
could you explain them more deep with example?

In simple terms, web form is just a mechanism for external users to send data to your system. Every website has a contact us form, in frappe’s terms that is a web form.

Page is a frappe ui component. Frappe’s custom reports are rendered on a page, their internal doctype forms and report views and dashboard views, as per my knowledge, are all built on top of the page component. You can access that component yourself in your own app, and customize it however you want and put any ui component on top of it.

web form mean the tag form with all its component like input tag in html