Some OSS Projects: • Lightning Web Components • Salesforce Extensions for VS Code • Salesforce Lightning Design System • oclif • … Not something new, Aura was already open source. What’s Open Sourced at Salesforce
application locally, hosted wherever you want: • Lightning Web Runtime • Lightning Web Components • Salesforce Lightning Design System • Lightning Base Components What can be done
application locally, hosted wherever you want: • Lightning Web Runtime • Lightning Web Components • Salesforce Lightning Design System • Lightning Base Components • Custom @wire api What can be done
application locally, hosted wherever you want: • Lightning Web Runtime • Lightning Web Components • Salesforce Lightning Design System • Lightning Base Components • Custom @wire api • Use Lightning Navigation Service What can be done
application locally, hosted wherever you want: • Lightning Web Runtime • Lightning Web Components • Salesforce Lightning Design System • Lightning Base Components • Custom @wire api • Use Lightning Navigation Service • Use OSS first/only features (Light DOM, dynamic component creation) What can be done
application locally, hosted wherever you want: • Lightning Web Runtime • Lightning Web Components • Salesforce Lightning Design System • Lightning Base Components • Custom @wire api • Use Lightning Navigation Service • Use OSS first/only features (Light DOM, dynamic component creation) • Any tool of your choice (Rollup, webpack, TypeScript…) What can be done
• Loads modules/services, like routing • Used by the latest Experience Cloud templates • Configurable via lwr.config.json Easy to start with: npm init lwr https://developer.salesforce.com/docs/platform/lwr/overview Let’s build something with Lightning Web Runtime
just add files to src/assets folder ◦ Platform: import myResource from '@salesforce/resourceUrl/resourceReference'; • Custom @wire → not allowed on Platform, replaced by Apex Class ◦ OSS: import { getUser } from 'c/usersWireApi'; ◦ Platform: import getUser from '@salesforce/apex/Namespace.UsersWireApi.getUser'; Differences between OSS & Platform
like (eg. “namedPage”) ◦ Platform: page names expected by Salesforce (ex: comm__namedPage) • Metadata file (myComponent.js-meta.xml) ◦ OSS: No need, but won’t complain if the file is there ◦ Platform: expected by Salesforce, Differences between OSS & Platform
is OK • Was designed to work everywhere from the start ◦ Use Salesforce expected page names • Won’t fit for all components Components suited to use everywhere