Taha's notes on software crafting
Patterns, lessons and the occasional deep dive from years of building, shipping and teaching software. Home of the SF DeFacto series.
SF DeFacto #3 — Buyer Group Extensibility for Commerce
How to implement Buyer Group Extensibility in Salesforce Commerce (Summer '25 Release) to dynamically assign shoppers to buyer groups based on custom Apex logic.
SF DeFacto #2 — Support RTL Layouts in LWR Sites
Implement a dynamic layout supporting RTL languages (like Arabic) in LWR Sites with Experience Cloud, using a head-markup script and targeted CSS adjustments.
SF DeFacto #1 — Salesforce Headless Commerce Checkout with Saved Payment Method
Implement headless B2B/D2C Commerce checkout (cart-to-order) using a customer's saved payment method, with Salesforce Payments and the Commerce Payments APIs.
Can't Find the Perfect Email Signature? Code Your Own!
Bored of your plain email signature? Build your own with basic HTML and CSS, preview it in the browser, and paste it into any email client.
Manage Process as Code
The fundamentals of process management and the idea behind Process as Code: defining, codifying and executing your processes as programs instead of manual operations.