3

We've to build a customer facing site(non authenticated) with rich/responsive UI. It would be heavily used. Data is stored in Salesforce. We're considering various options. Would like to get view points, is there is any limits etc which we've to keep in mind:

  1. Salesforce communities + lightning: We've used lightning little bit, but we've another team which knows angular/react more. they are not keen on using lightning. Plus we're not sure, everything our UI team will suggest, could be implemented on lightning.

  2. Salesforce communities + Anguler/react using lightning container. Seems pretty new in market. Not sure about support/limitation etc.

  3. Salesforce communities + Angular/react using visualforce. Seems like good option but team knowing angular/react might have to learn something about visualforce. this could be a roadblock and delay the project

  4. Salesforce communities + angular/react + VF + APIs- is this viable option? We're thinking, if we could use remote objects etc to access salesforce. Not explored much.Idea is , if later on if we decide to host our app somewhere else, we should be able to do it.Two questions:

    a. DO we've to host app again within VF to access data via APIs?

    b. Will APIs pose serious limitations for heavily used site? Not able to find anywhere limits for APIs for GUEST users(i.e.Non authenticated).

    1. Hosting Site say on Heroku/AWS + Accessing Salesforce data using APIs. this seems like most acceptable to everyone but again two questions :

    a. Heroku/AWS: which will be better ?

    b. APIs( REST etc..) will again pose a challenge for heavily use site?

    c. not able to find any discussion/link/ good write up about such architecture.

    d. What I read, Heroku is costly. Do we know, any kind of cost comparison.

    1. Hosting on Heroku/AWS + Heroku connect +Salesforce backened.

    a. Pretty much like point 5, except heroku connect which as per my understanding, would fetch data from salesforce using asynchronous operations. So there will be a lag to show latest data but advantage is API Limits are not applicable. Question is, would it further increase cost(is there any license for heroku connect?)

    b. Any other limitation to consider ?

Any help/suggestions, would be extremely useful!!

5

You have asked many questions making your question too broad for our forum's typical Q&A style. I would recommend you break these up into separate questions and repost them. With that said, I will attempt to address your questions surrounding Lightning vs combinations of Angular and React.

  • Lighting, Angular and React all have their advantages and are essentially JS platforms of their own. If you are going to use them in a Salesforce Community, there is no advantage to using Angular or React in combination with Lightning. The easiest way to build a Community will be using Lightning Templates. You'll want to use Lightning styling components and Lightning CSS so you can easily and quickly make changes to your styling declaratively. An Admin can do this. No developer will be required. With Angular or React that will not be the case.

  • If you use React or Angular, it will need to be containerized, losing most of it's benefits that you would otherwise gain from it. You'll have two different CSS systems competing with each other. Frankly, you'll waste a lot of energy on this that could be better spent elsewhere. If you already had an application built in React or Angular that you wanted to use, it would be a different consideration, but as it appears you do not, I recommend you do not go down this path.

  • I worked with a team about 2-1/2 years ago when Lightning first came out that did JS remoting with Angular and Visualforce pages. The UI issues with Angular were a PITA for them. JS remoting of course worked well, but that was when Lightning was in it's infancy. I can tell you that now, it would be a poor choice to try and maintain that paradigm and I told them at that time they should drop the Angular in favor of what Lightning could for them in terms of the CSS that was then being released. You will not gain anything from using remoting with Lightning.

  • Visualforce is old technology that is still server based. It is not created in the browser "on the fly" like the rest of your component. It will also be served from a different server and have a different user context than your component. You can wrap visualforce within a lightning component, but one only does that when there's something they cannot do with lightning mark-up in a component. The most common use that comes to mind is rendering a PDF to file. In other words, don't go there.

My recommendation would be to use Lighting with your community. Since Lightning Web Components are now generally available for Communities, that is the actual way to go. You will have the most recent web standards and ES6 available to you for creating real Objects and many other advantages to them. They are much quicker to develop than Aura based Lightning Components. That would be my recommendation.

ALL Communities are hosted on Salesforce if it is a "Salesforce Community" where you are accessing Salesforce Objects. Depending on what objects you need access to, you may be able to get away with a Sites licence. Again, it will be hosted on Salesforce but will be transparent with your main web site. As for volume of users, trust me when I say there are some HUGE communities and sites that are hosted on Salesforce whose owners I'm not at liberty to reveal. There are many licensing options available depending on the objects you need to access. Contact your Account Representative for more details.

  • 1
    + Lightning Community templates get periodically updated so Community UX will improve for 'free' over time – cropredy Feb 3 at 20:15
  • @cropredy That's one of the many reasons why I recommended using templates. Not to mention that development time is greatly accelerated compared to a visualforce or totally custom site! – crmprogdev Feb 4 at 8:58
2

Salesforce platform is a great platform to build applications on. Force.com sites and Community clouds are great and mature products which serves different type of applications to high volume traffic. Whether to use salesforce ecosystem, I believe it depends on requirements and how tightly coupled solution you are looking for i.e. if solution is suppose to communicate with Salesforce real time and too often then communities with lightning web components would be the best option long term.

benefits of SF hosted solution: - less API usage. - easy native features access as compare to API based. like apex etc.

Drawbacks: - page view limits for force.com site. extendable. - concurrent transaction limits in high traffic sites. this is critical. but can be avoided by good architecture and coding best practices.

List can go longer for both.

if that's not the case an external hosted solution on AWS or Azure or any other cloud would be better because if there is no requirement to leverage SF features then external hosted solution would be more cost/time efficient and make SF API calls keeping in mind daily limits.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.