Releasing Structur on the Salesforce AppExchange marketplace has been a long journey. I (as sole entrepreneur) have spent 2 years developing it as a side project while working full time on Salesforce projects as an architect and dev lead. I garnered many tips, thoughts, experiences, skills that I thought could be useful for anybody considering it.

There is no particular order in this article. It will be updated times to times.

Don’t underestimate Security Review

Yes… it’s written everywhere and everyone who released an app will say so. Failing the security review happens. It can also be avoided. …

Learn the importance of preparing your DevOps teams when migrating to DX packages

In part 1 we learned the importance of designing DX packages before creating them. The advantage of adopting a modular architecture seems clear: it’s easier to understand, easier to maintain and easier to update. With this pattern in place, the “lead time” — time for a single line of code to go to production — will decrease.

Every time? No ! Dividing our Salesforce “happy soup” into independent packages is not trivial. We realized that if not done properly, the opposite will happen. Developers will spend more time managing package dependencies than building features.

A meticulous preparation is needed to…

Learn the importance of designing scalable DX packages before they become a true burden for your teams

From Ant to SFDX Packages

If you have been working with Salesforce for a while you may have been used to deploying your metadata across your environments with change sets or Ant. If it is still viable, Salesforce DX definitely brought a more modern way to build your applications. Among the several powerful tools it provides are Second Generation packages (2GP). For simplicity, I will call them SFDX packages.

If you are thinking of adopting packages it’s likely because your company has multiple Salesforce environments and you either want to share some frameworks (trigger, test etc.) and features or you want to migrate metadata.


Example with Google Calendar API

I wanted to share my experience implementing Salesforce “Named Credentials”. I add the chance to explore this feature and was amazed by how useful it is for Salesforce developers working with Apex Callouts. You will find below an example of their usage calling the Google Calendar API.

For those who don’t know, Named Credentials allow you to define the URL of an endpoint callout and the required authentication in a single configuration.

After specifying the Named Credentials you want to use in your Apex Callout, there is absolutely no need to create an authentication handler…

SLDS Icons

The way SLDS invites you to use their icons pack has always disappointed me. First, you have to use a complex combination of paths and classes to get the right shape, color and size for your icons. Then, the SVG tag became forbidden with Locker Service and you add to use their lightning:icon component with which you lose total control and rely on the attributes available for you.

<span class="slds-icon_container slds-icon-utility-announcement" title="Description of icon when needed">
<svg class="slds-icon slds-icon-text-default" aria-hidden="true">
<use xlink:href="/assets/icons/utility-sprite/svg/symbols.svg#announcement"></use>
<span class="slds-assistive-text">Description of icon when needed</span>

Use a font instead of SVG

I was looking for a better and easier to includes…

In the first part of this story, we created a Vue JS application using Webpack and a Progressive Web App template. Then we displayed this application within Salesforce thanks to the Lightning component lightning:container.

Now that our template application is loading fine in Salesforce, we are going to improve it so we can load real data (accounts) from Salesforce.

In order to achieve that we’ll :

1. Build the application locally with :

  • Vue Router to map our components to the routes
  • Vuex, a “State Management Pattern”
  • API file that will handle calls from the client and have two different…

Since Salesforce has released the Lightning Component Framework, the need to use third party frameworks decreased drastically. Indeed, by using a “stateful client and stateless server architecture that relies on JavaScript on the client side to manage UI component metadata and application data”, they provided a faster and modern way to build beautiful user interfaces.

However, building an entire application on Lightning may still be painful for several reasons :

  • Navigation. Let’s say you have dozen of screens in your application with multiple paths between them. One of the solutions I prefer is to have a top “Navigator” component that…

Lucas Ennouchi

Globe-trotter and tech-addict before all. Salesforce System and Application Architect. Preparing for Salesforce CTA. Creator of Structur for Salesforce

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store