Modern apps require embracing a combination of low-code and pro-code. Salesforce developers have the challenging task of delivering scalable solutions faster than ever, as organizations look to speed up their digital transformation.

In December 2020, we published a blog post that explains various patterns combining low-code and pro-code. These patterns show that by combining Heroku’s elastic runtime and Salesforce core’s multi-tenant architecture, one can deliver solutions that can not only scale, but are flexible and require less time to build and deploy.

We looked into the skills required by developers to implement the patterns highlighted in that December blog post, and we concluded that Salesforce Developers would enjoy learning more about the Heroku platform. With Heroku, Salesforce developers can offload complex operations and take advantage of open-source libraries. Similarly, Heroku developers can benefit from learning about the low-code capabilities of the Salesforce Platform. Combining the power of low-code and Heroku allows apps to be delivered faster .

The “Modern App Development on Salesforce” video series is a set of thirteen videos on the Salesforce Developers YouTube channel. These videos teach you how to design, build, test and deploy apps using Salesforce and Heroku.

Who should watch these videos?

  • Experienced Salesforce developers who want to enhance their skills beyond Apex and Visualforce. Those who want to understand modern developer tools that include Salesforce CLI, Salesforce Extension Pack for VSCode, scratch orgs, the latest enhancements to Salesforce Flows, building custom components using LWC, event-driven architecture using Platform Events and Change Data Capture, plus much more.
  • Heroku developers who wish to understand how to combine low-code and pro-code to build powerful apps.
  • New developers who want an overview of technologies that Salesforce Developers use in their day-to-day job.
  • Developers coming from other technologies that want to explore becoming a Salesforce developer“ as a career.

What topics do we cover?

We cover the full spectrum of application lifecycle in this video series: designing, building, testing, and deploying. We have leveraged eCars, one of our Sample Gallery apps, to explain various concepts in a hands-on approach, with code.

Developer tooling

These sessions introduce Salesforce and Heroku. We also show you how to use the Salesforce CLI and Heroku CLI. Both of them use the common open-source framework oclif.

The below slide provides an overview of Salesforce CLI tools and their functions.

Salesforce CLI and Heroku CLI are built using the common CLI framework OCLIF
We also explain how to sign up for free Salesforce developer playgrounds and the Heroku platform in these sessions. Having access to developer environments right at your fingertips means you can experiment and learn at your own pace.

Episode 1: Developer Tooling
Episode 2: Heroku Developer Experience

Data model design

We explain the importance of data model design for a Salesforce application and how the other metadata has a dependency on the object metadata.

The below visual gives an overview of Salesforce metadata dependencies of various metadata to object metadata.

Slide to show object metadata dependency on other application metadata

We also take a deep dive into Heroku add-ons and Data Services. We had some exciting conversations by comparing and contrasting data model design on Salesforce Core vs. Heroku.

Episode 3: Data Model Design on Salesforce and Heroku Data Services

Front end application design

Front end application design is a bit of an art in Salesforce. It requires knowledge of the capabilities of various low-code tools. Developers need to know how much they can customize the experience and what it takes to build and design Lightning Web Components.

This image provides some guiding principles on how to approach app design and prototyping for building front-end applications on Salesforce

The Slide shows how to approach app design in Salesforce

Episode 4: Build Custom Experiences Using LWC and SLDS
Episode 5: Build Custom Experiences Using LWC and SLDS (part 2)
Episode 6: Communicate Between LWC Components Using Events

Automate your business process

In this session, we look into Salesforce Flows and Apex.

The screenshot below shows an example of a ‘before update record-triggered automation flow’. Salesforce Flow is a low-code tool that allows developers to build automation using clicks.

An example implementation of record-triggered automation using Salesforce Flows
We also cover when to use Flows vs. Apex and how pro-code developers with Apex and JavaScript skills can tap into Flows and build actions and screens that admins can embed in Flows.

Episode 7: Automate Your Business Processes Using Flows and Apex

Scale Salesforce apps with Node.js microservices on Heroku

These sessions demystify the application architecture and code behind the eCars sample app. We teach developers how to build Node.js microservices on Heroku, connect these services to Salesforce, and build Progressive Web Apps on Heroku.

This image shows example architecture on how to build a real time service on Heroku using Node.js. The service uses MQTT protocol for sending real time signals to Salesforce apps using websockets.

Shows an example architecture to implement a real-time Node.js service implementation for MQTT protocol

Episode 8: Scale Apps Using Node.js Microservices on Heroku
Episode 9: Scale Apps Using Node.js Microservices on Heroku (part 2)

Unit testing

Unit testing your application code is a habit that’s hard to adopt, but it’s important that developers test their code before shipping their app to production.

The below image explains the AAA pattern for Unit testing.

Slide showing principles of AAA(Arrange, Act and Assert) pattern for Unit Testing Apex and JavaScript
We also have a session for JavaScript and Apex unit testing to help developers embrace unit testing.

Episode 10: JavaScript Unit Testing
Episode 11: Apex Testing

Packaging and deployments

In the final episodes, we explore how to package and deploy Salesforce and Heroku applications.

With Salesforce CLI, git, and CI/CD tooling (like Github actions or Continuous Integration server), developers can collaborate better and automate releases of their Salesforce apps.

This visual shows how source-driven development can help automate deployments.

Slide showing how source driven development can help automate deployments

We also cover how to do CI/CD and DevOps for Salesforce and Heroku apps.

Episode 12: Deploying Salesforce and Heroku Apps with Ease
Episode 13: Automate Developer Workflow and Deployment

What’s next?

Do you prefer reading over watching? I hear you. You can catch blog write-ups on each of the episodes from community member Michael Bogan on dev.to.

Blog Series: Modern App Development on Salesforce

Each of these topics has significant depth. We’ve only scratched the surface in this video series. To dive deeper into any of the topics, download the slide deck for the episode from the Trailblazer Community. The ‘helpful references’ slide has links to various Trailhead modules and extra reading.

If you have feedback please use the Trailblazer community group mentioned in the “Additional References‘ section or connect with me via twitter: @msrivastav13

Special thanks and shout out to Julián Duque for his collaboration on Heroku content. Julián is also on a mission to help Salesforce developers learn Node.js. Keep an eye out for future blog posts and Trailhead Live sessions from him!

About the author

Mohith Shrivastava works as a Lead Developer Advocate at Salesforce. He is currently focusing on Salesforce CLI, Heroku, and Lightning Web Components. You can follow him on Twitter @msrivastav13

Additional resources

Get the latest Salesforce Developer blog posts and podcast episodes via Slack or RSS.

Add to Slack Subscribe to RSS