Releases / Developers

8 Salesforce Summer ‘25 Updates Developers Need to Know

By Paul Battisson

Although the weather may not feel like it yet, for those of us in the Salesforce community, Summer is now officially on its way with the Summer ‘25 release notes dropping.

As a PDF, the release notes are only 701 pages long, but fear not! To save you the hassle of reading through everything, I’ve pored over the release notes to bring you the highlights for Salesforce developers coming in Summer ‘25. Grab a coffee and let’s see what is in store.

1. Local Development for a Single Lightning Web Component (Beta)

In the Spring release, Salesforce made Lightning Web Component local development possible for several situations; however, in Summer, we now have the ability to run local development for a single component available as well. 

Starting in Summer ‘25, if you install the local development plugin, you can run the sf lightning dev component command from your console and choose the component that you wish to preview, and Salesforce will render this in the new browser page they have defined specifically for previewing a single component. 

I know this will save me countless hours when developing components for different experiences and use cases – it is a big step forward overall for the Salesforce development experience.

2. TypeScript Availability for Lighting Base Components

TypeScript is a typed superset of the JavaScript programming language that, since its release in 2012, has quickly become a popular alternative for developers working with JavaScript. 

TypeScript adds type checking as well as several other features to JavaScript to help make it more robust, particularly in larger-scale applications. 

In Summer ‘25, Salesforce has released the type definitions for the Lightning Base Components, meaning that as developers, we can now import these definitions into our components to provide more robust type checking and handling. 

To add the typings to your component, import the types as follows at the top of your JavaScript file, converted to TypeScript:

import { LightningElement } from 'lwc';
import '@salesforce/lightning-types';
import type LightningButton from 'lightning/button';

export default class ComponentExample extends LightningElement {
submitLabel: string = 'Submit';
}

Here we have imported the generic types and then specifically retrieved the type information for the Lightning Button base component. 

3. SLDS Linter (Beta) and SLDS 2

In Spring, Salesforce made the 2nd version of the Lightning Design System, Cosmos, available as a beta for organizations to test and review in their org. For many organizations, there will be some nervousness about moving to a new version of the Lightning Design System due to customizations that have been made in existing components that may not be compatible.

With Summer ‘25, Salesforce has updated the SLDS Linter, a CLI tool, to help developers identify issues within their HTML and CSS files for Lightning Web Components, or in the CSS and CMP files for Aura components. 

The tool gives an output of all the issues discovered, and also features a fix option that allows you to fix the issues in bulk using the suggested updates. This tool is extremely helpful for ISVs who are looking to ensure that their components and custom user experiences will not break with the updated design system, but all developers should be running and reviewing the outputs to make sure that they are planning on fixing any issues ahead of time. 

4. Dynamic Formula Evaluation in Template Mode

The FormulaBuilder class enables developers to build and evaluate formulas in real-time within their Apex code, saving unnecessary DML statements and round-trip to the database to retrieve data. It is also an extremely powerful way of having Salesforce generate output strings for you to use in your UI through simplified logic. In Summer ‘25, Salesforce has enhanced the FormulaBuilder class to include the parseAsTemplate() method that allows you to use merge field syntax to access field values.

As an example, if we wanted to output a Contact’s name in last name, first name format, as is common on identity cards (e.g.,Scout, Mark), you can now do this in Apex as follows:

FormulaEval.FormulaInstance contactNameFormula = Formula.builder()
.withType(Schema.Contact.class)
.withReturnType(FormulaEval.FormulaReturnType.STRING)
.withFormula('{!lastname}, {!firstname}')
.parseAsTemplate(true)
.build();

Having values interpolated in this way is much simpler than the expression lastname & “, “ & firstname, and it is easier for other developers to read and understand. 

5. ApexGuru Code Optimization

If you have an Unlimited Edition environment with a Full Sandbox, or are a Signature or Scale Test customer, Salesforce has made enhancements to the ApexGuru solution to provide better insights on potential code optimizations within your environment.

ApexGuru is designed to review your existing code for antipatterns, including SOQL queries in loops, inefficient query filters, and other expensive operations that can be improved. Whilst not everyone will have access to this tool, I wanted  to highlight for those that do, as many people are unaware that they are eligible through having a Full Copy Unlimited Edition sandbox. 

If you can utilize the tool, it’s a really good idea to do so to run and validate your codebase.

6. Outbound Messages Timeout Updates

Outbound Messages are one of the older automation features on the platform and allow you to quickly and easily integrate with SOAP-based APIs through a point-and-click tool. Whilst SOAP APIs and Outbound Messages are not as common or as trendy as they were many years ago, they are still very widespread throughout the ecosystem. 

When I first started working with Salesforce around 15 years ago, they were the standard for integrating solutions, and as such, exist in many environments without people being aware.

In Summer ‘25, Salesforce is lowering the timeout value for Outbound Messages to 20 seconds, down from the 60 seconds it currently is. In the release notes, Salesforce states:

“With the lower timeout value, the system makes better use of resources and can process more messages. Also, the lower timeout value prevents long-running messages from delaying the processing of other messages in the queue.”

I wanted to ensure this update was called out to ensure that people check their orgs and customers’ environments for Outbound Messages that are running away, and validate that they will not have any issues from this update. 

Whilst 20 seconds should be more than long enough, these messages are often used in slower legacy integrations, and as such, there may be many customers caught off guard by this, so make sure you go and check.

7. Streaming API Disconnect Events

Last year, Salesforce completed the migration of sandbox and production environments across to the new Hyperforce infrastructure. There are many reasons to be excited about the fact that the Hyperforce migration is now completed, and one of the primary benefits of Salesforce migrating to Hyperforce was to enable a better scaling infrastructure. 

As part of this rollout and auto-scaling, Salesforce has identified that some clients connected to the Streaming API may disconnect more frequently as resources are scaled during busy and quiet windows. To help manage this, they have added a new channel, called /meta/disconnect, which will emit an event if a client disconnects. If you are using the Streaming API in any integrations, it is recommended that you review your integration and add a listener for this channel to ensure that if your client disconnects, it reconnects again to handle any new events.

8. New LWC Targets for Agentforce

As more and more organizations begin to work with Agentforce and more ISVs and partners release custom agent actions, the need for a customized user interface to engage with these actions will grow. 

Thankfully, in Summer ‘25, Salesforce has announced two new targets for Lightning Web Components. 

The first target is lightning__AgentforceInput, which allows a component to be used to collect data from a user to be used as input to an Agentforce action. The second target is lightning__AgentforceOutput, which allows you to take data from an agent action and display it in a custom format. 

Whilst these are only small notes in the release notes, one of the big areas I think AI agents can be improved in is how they display information to ensure users are presented with graphics and visuals that make the output more useful than text alone. If you are working with Agentforce agent actions, I recommend trying out these new targets.

Additional Items

Some other smaller items you may want to be aware of as well:

Final Thoughts 

With lots of incremental improvements in this release, Salesforce has ensured that developers have some new tools to get to grips with and some nice quality of life enhancements to help in developing Lightning Web Components and migrating to SLDS 2.

What are you most looking forward to playing with? We would love to hear what has you excited for the Summer ’25 release. Let us know in the comments below.

Read More


The Author

Paul Battisson

Salesforce MVP, 2x Published Author, Developer Group Leader, Speaker.

Comments:

    John Collins
    April 24, 2025 4:00 pm
    That formula builder code is not easier to read or understand than a simple concatenation.

Leave a Reply