Build public facing Multi Tenant app powered by FF

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.

TIA

Hi @YogiYang,

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/

1 Like

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 :light_bulb:, 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?

TIA

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.

1 Like

Thank you for your insightful advise.

what you mean is multi-user

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

best of luck

1 Like

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.

Check The Commit Company and Build With Hussain (livestreams and videos). They have done many Frappe apps with custom React/Vue frontends.

Yes. Actually I am planning to convert an old PHP web app and rebuilt it.

Once the app is built I will be integrating payment processing using Stripe.

I am already watching the Batwara video series of BWH.