I have been programming in FF (Frappe Framework) for quite a few years now. But there are still a few things that I have not been able to understand.
I am planning to build a multi tenant app where users can come and create their account → active their account → login and use the app where the user only see his/her data.
For this I will have to build public facing pages in the www or `frontend` folder.
But I am confused and want to understand how I will be able to do this. And how I should go about doing this.
In the context of Frappe, “multi tenant” is usually referring to multiple sites on a single bench. Here, I’m not sure if that’s what you mean. Allowing users to create new sites is complicated and comes with some important security considerations.
Alternately, you might be talking about a single site with multiple user accounts. On a single site, you can separate user data in a variety of ways. If you want people to be able to access the Desk, you could use a combination of Role and User Permissions to limit what they can see to their own data. Additionally, you could create a custom front end that limited what data is presented.
For a custom front end, you also have a few different options. The simplest would be something like Frappe Builder. For more control, you could create a custom web app that accesses your frappe data via API calls or with Frappe UI. Building your own web app with a framework like Vue or React can be complicated. If you’re looking to get started, I can highly recommend Hussain’s tutorial series: https://buildwithhussain.com/
I want to allow a user to Sign Up (create account) in one site. I am not looking to create multiple sites.
I don’t want to allow people to access Desk.
Will I be able to manage user login and logout as well as present users with input form to enter data, validate entered data and save the same? The last time I checked Frappe Builder there was no support for Form, forget about form validation.
Thank you for mentioning these front end frameworks. I have got an idea , I should explore free and opensource front end builders that are available in the market like Fluxscape, Salt Corn, etc.
What do you feel.? Should I explore this route or it is better to keep with Frappe Builder?
Unfortunately, I don’t have any experience with the tools you’ve listed. I’ve always found GUI builders pretty frustrating and limited. If you’re looking to avoid writing code, though, they might be your only option.
I haven’t had a chance to dig into Frappe Builder much either, and what I do know is probably now outdated since it’s under very active development. I’m not sure what it can or can’t do with regards to forms. Hopefully somebody else will chime in. Frappe Studio might also be an option, but again here I can’t say much specifically.
i have experimented a little with builder - what i suggest you create a form on the frontend, write the validation with a js client script then call a server script that will create the necessary permissions in the background
also try asking ChatGPT.. it might give you some good ideas
I don’t get what you are trying to build, but it sounds like some SaaS? People would subscribe on your website then access a frontend (not desk) to do different stuff. That’s pretty much doable as long as you handle safety and permissions properly. You would need to enable* the “only if owner” permission check on all your doctypes. If your subscription model allows teams then also look into document assignment.