Salesforce is Legos & Heroku is a 3D Printer
- #heroku
- #software
- #salesforce

Intro
When I was a kid, I enjoyed building Legos pretty much more than anything. The flexibility between a structured do-this-then-that journey and throwing the manual out the window to build whatever was on my mind was exhilarating, regardless of what state of mind I was in.
I loved the composability of it all, and still do. A disparate clump of shapes soon turn into an impressive landscape, Harry Potter scene, or Star Wars ship. The best part of all? You can take the final product, chop off a random part, and reconstruct something that fits just right for what you are looking for in the moment.
Fast forward to today and I still play with Legos 😀. Sometimes literal Legos, but more often the passion that it evolved into: software. Lots of parallels naturally fall out here, from principles like the following:
- [S] There's beauty in simplicity. Build pieces for a specific purpose and new pieces for evolving purposes.
- [O] If you need a slightly difference piece for something new, prefer to make a slightly different version instead of changing the original.
- [L] You should be able to swap a brick for another of the same shape, regardless of its color or print, and have the overall structure still fit together.
- [I] If aspects about pieces change that are unrelated to how they expect to connect, the pieces should still connect perfectly, period.
- [D] Creating something amazing from simple parts should not depend on any single part, but on the universal standard that allows the parts to connect to each other.
That being said, Lego marched forward in my absence as I went through college and my twenties. I spent my time with computers, audio, and math so abstract I needed to touch grass every now and then just to ground myself in what I was learning. Meanwhile, Lego came out with wild sets I came full circle to see, comprised of 3D-printed parts! Simple idea, for sure -- print whatever shape you can design in a CAD program and boom there's your nice angular, bespoke piece that has no place on a mass production assembly line.

Power in Extensibility
Imagine Salesforce as a fantastic, deluxe LEGO castle set. It comes with an ample amount of pre-made pieces (like towers, walls, and knights) and a notable set of extra instructions (like Salesforce Flow and Apex) that let you assemble almost anything you need, as long as you follow the castle's rules. This is perfect for 90% of what you need to do.
But what happens when you want to add something to the set that it didn't come with and you don't otherwise have?
The House vs. The Workshop🔗
Think of Heroku as a workshop inside of a house. The house already has most things, but not all. With the workshop at your disposal, you can add and improve parts of the house without even leaving.
The workshop has the foundation and tools you need: 3D printers, laser cutters, etc...Heroku is similar, but for software. You can use whatever programming language you want (Python, Java, Node, .NET, etc) and add things like databases and monitoring tools like they're tools off of a pegboard.
You go to the Heroku workshop when you need things like the following:
- Build a Custom Part: You want a unique, curved piece for a drawbridge chain to really make the appearance pop. So, you go to the workshop and print that thing out. Crucially, that new custom part snaps right into place in the LEGO set. This is like building a chiseled user interface on Heroku that has full brand alignment and flexibility for modifications, all still powering Salesforce under the hood. It didn't come of the box, but you could quickly add it and plug it in without any pain.
- Do Something Fundamentally New: You want to have the drawbridge automatically open and close every minute. Fun idea, easy to imagine at a high level, but how would you get LEGOs to do that? Do you keep yourself in the box of mechnical-parts-only and create a LEGO clock to trigger the drawbridge every minute? Or do you bring a simple hobby electronics kit into the mix that triggers the drawbridge every minute via software? Definitely the latter, especially for tomorrow when the requirements change from 90 seconds instead of 60. Similarly, you don't need to require your Salesforce admins to be contortionists of Flows and Apex to satisfy all business requirements. In fact, you shouldn't. Things like long-running background jobs, heavy data processing, and flexibly scaling up and down all while avoiding Salesforce limits should leverage Heroku to ease the burden. You didn't turn to Salesforce to be buried in platform complexity. Use the right tool for the job.
- Leverage Your Team's Existing Proficiency: Your team might be world-class experts at building with wood (Java) instead of plastic bricks (Apex). Heroku enables them to use those tools and skills they already have to do the same thing in Salesforce, without forcing them to learn a new system from scratch. This means lower time to market and less maintenance burden.
- Bridge the Gap: Just as you wouldn't pretend that shims, couplers, and extenders are never needed for a non-software project, you can only get so far connecting different software systems without some bespoke work. Heroku was built to make this part as quick and painless as possible.
How the Easy Button Works
At its core, Heroku is still a Platform as a Service -- a workshop for software developers to show up and quickly create and operate applications. Vibe coding works wonders, but maintaining a software application with high integrity doesn't run off of vibes. That's where the platform pieces comes into play. There's a world of operational complexity involved in maintaining your app over time, and Heroku does the heavy lifting for you. By taking an opinionated approach based on best practices, the platform abstracts the hard parts away and leaves you with the fun part: evolving your purpose-built application.
Even still, that's only half the battle solved. What about all the complexity of integrating your application with Salesforce? You've invested countless amounts of time and capital into the data model, security setup, and overall structure of your Salesforce foundation. Do you want to also shoulder the burden of credential management, security loopholes, API limits, etc to get these customizations operational? Of course not. That's why there's a plethora of Salesforce-oriented capabilities available to further grease the skids for you.

Data Simplicity🔗
Traditionally, companies have kept their core software developers and Salesforce admins/developers separate. Many aspects of Salesforce amount to configuration and mouse clicks instead of code. When coding is involved, it's typically still a more technical Salesforce admin, one-off team member, or outside partner that implements code related to Salesforce.
The complexity bar for writing code has been dropping for many years now. With Ai, the barrier to entry is on the floor. There's still a lot of art and science to quality software engineering, but the landscape is drastically different than circa 2021.
Combine the easier on-ramp to software development with a revamped PaaS focused on making your Salesforce development life easier and you get your more traditional developers wanting to operate Salesforce like they expect to: code and standard databases.
💡 Like Trailhead? It runs on Heroku.
To make that happen, start designing the data sync pipelines grab Heroku Connect and operate the Salesforce data via a PostgreSQL database. Bi-directional data mirroring. Updates on one side means updates on the other (that goes for creating and deleting, also).

This way, you're developers keep moving quickly by avoiding any learning curves and context switching. Use your preferred programming languages and Postgres 🤝.
Integration Simplicity🔗
Integrating external applications with Salesforce can be a minefield of opaque errors, unexpected failures, and contradictory documentation. None of this means anything good for your project timelines. Also, how do you marry the wealth of Flows and Apex you've already built up with the new developer-oriented setup on Heroku? Two main options:
- Use External Services and Connected Apps, read a lot of documentation, iterate for a while until it's working, and deal with every breaking change yourself.
- Use Heroku AppLink to go from your API specification to Flow steps, Agent Actions, and Apex code.
Security Abstraction🔗
In case you're not already sold on AppLink (by the way, it's free and you can use it in your Salesforce org right now), consider all of the security risk and exposure you already have to deal with. You don't want to also manage rotating credentials and authenticating with Salesforce for every single callout you do, right? To each his own, but I've got a hunch...
By leveraging AppLink, you get an SDK that works with a proxy it places in from of your Heroku apps. This setup does many things for you:
- Locks down your app, allowing only your Salesforce components to communicate with it (also configurable when needed)
- Enables flexible usage of your existing Salesforce security setup: from integration users to named users to custom specifications.
- Automatically initializes Salesforce and/or Data Cloud API clients for you, with fresh, short-lived credentials.

This trifecta leaves your application developers with simply managing the business logic you want them to focus on, not auth complexity and security risks.
You can't get this from anywhere else in the ecosystem unless you re-create it yourself. Remind me...what's your core business?
Your Customer Thanks You
You got Salesforce CRM in the first place to better serve your customers while growing the business. It works wonderfully for most things, and exposes ways to bolt on additions and customizations that make it perfect for you. Heroku is the workshop within Salesforce that makes it simple and painless to have your Salesforce work wonderfully for 100% of your use cases. Adding Heroku to your Salesforce strategy will make your bottom line sing while leveling up the speed at which you continue to provide value to your customers.
Take at look at your current roadmap and consider where Heroku can turn complexity into simplicity!