---
title: "Learning"
url: "https://blog.beyondthecloud.dev/category/learning"
---

# Learning

Expand your Salesforce skills with curated learning resources, tutorials, and courses. From beginners to experts, we’ve got something for everyone.

- [Trigger Lib](https://blog.beyondthecloud.dev/blog/trigger-lib.md): Trigger Lib is an Apex trigger framework that helps you stay within Salesforce limits. It runs queries and DML in bulk for you, and its guardrails stop developers and AI agents from running SOQL or DML for every record. (2026-10-26)
- [Framework-Driven Development](https://blog.beyondthecloud.dev/blog/framework-driven-development.md): Framework-Driven Development can be extremely useful in the AI era, when we generate code rather than write it by hand. It has a few assumptions: frameworks should be idiot-proof (AI-proof), generated code should be optimized against limits, and framework design should enforce code quality. (2026-09-28)
- [The Real Cost of Salesforce Consulting Services](https://blog.beyondthecloud.dev/blog/salesforce-consulting-agency-costs.md): Hourly rate isn’t the real cost of Salesforce consulting. Compare cheap vs senior teams, hidden rework and review costs, and use the costs comparison calculator for hard numbers on time and true cost. (2026-08-26)
- [Apex Character Limit – What to do?](https://blog.beyondthecloud.dev/blog/apex-character-limit.md): Everything about the Salesforce Apex character limit: how characters are counted, what is excluded, what actually breaks at 100%, how to get the limit increased, and a formatting change that cut 14.75% from a single class. (2026-08-07)
- [Beyond Best Practices – Why Following the Rules Can Break Your Code? – Czech Dreamin’ 26, Polish Dreamin’ 26](https://blog.beyondthecloud.dev/blog/why-following-the-rules-can-break-your-code.md): Following best practices blindly can make code worse. This post shows that rules are context-dependent – what improves readability, maintainability, or architecture in one case may add unnecessary complexity in another. Understand the trade-offs before applying any rule. (2026-05-28)
- [Salesforce Connected App to ECA: What the May 11, 2026 Deadline Actually Requires (and What It Doesn’t)](https://blog.beyondthecloud.dev/blog/salesforce-connected-app-to-eca-what-the-may-11-2026-deadline-actually-requires-and-what-it-doesnt.md): The May 11, 2026 ECA deadline is real — but most write-ups in circulation are getting the scope wrong in both directions. Learn what Salesforce is actually mandating, which OAuth flows are out of scope, and how 1GP partners can hit the deadline without committing to a multi-quarter 2GP migration. (2026-05-05)
- [Beyond Org Config & Secrets: Are You Doing It Right?](https://blog.beyondthecloud.dev/blog/beyond-org-config-secrets-are-you-doing-it-right.md): A comprehensive guide to configuration and secrets management in Salesforce: where to store sensitive data, why Custom Metadata Types and Custom Settings fall short for secrets, and how Named Credentials provide encrypted callout authentication. It also covers CI/CD automation for multi-environment config management and introduces the managed package pattern, using protected Custom Settings and CMDT inside a namespace, as the only mechanism on the platform that makes stored values truly invisible to the subscriber org. (2026-03-16)
- [Apex Security and Sharing](https://blog.beyondthecloud.dev/blog/apex-security-and-sharing.md): A practical guide to Salesforce security in Apex: how FLS and sharing really work, when to use USER_MODE, WITH SECURITY_ENFORCED, or stripInaccessible, and how class sharing keywords affect record access. (2026-03-08)
- [How to implement marker interfaces in Apex?](https://blog.beyondthecloud.dev/blog/how-to-implement-marker-interfaces-in-apex.md): Marker interfaces are a familiar concept in Java but rarely discussed in Apex. This article introduces how they work, and how you can apply the same pattern in your own code. Through a practical example involving payment methods and optional confirmation modes, it demonstrates how marker interfaces let you extend behavior without modifying existing logic, illustrating a clean, compositional approach to flexibility in Apex. (2025-11-05)
- [Salesforce Code Review & Handover Bingo: Common Mistakes and Red Flags 🚩](https://blog.beyondthecloud.dev/blog/salesforce-code-review-handover-bingo-common-mistakes-and-red-flags.md): Whenever a project is handed over to you, some sort of review or state-of-the-art check should be done. We can make it a more fun, team activity and fill the bingo card during the investigation! Image done using Bingo Baker. To make this bingo play have some fun-factor, the mentioned concepts have different severity –... (2025-07-25)
- [Apex Queueable Processing Framework](https://blog.beyondthecloud.dev/blog/apex-queueable-processing-framework.md): Struggling with “Too many queueable jobs” errors in Salesforce? This guide introduces AsyncLib, a framework that manages Apex asynchronous processing with queueable chains. It helps overcome strict governor limits by chaining jobs using Salesforce’s Finalizer interface. AsyncLib simplifies async execution, error handling, and scheduling for Queueable, Batchable, and Schedulable jobs—no more complex workarounds or manual tracking. (2025-07-02)
- [Upsert & Parent Lookup via Name Field (idLookup property)](https://blog.beyondthecloud.dev/blog/upsert-parent-lookup-via-name-field-idlookup-property.md): Learn how upsert works in Salesforce apex, how to create child and parent in one DML and how to go beyond external ids when doing upserts. (2025-05-26)
- [Arrow Function vs Regular Function in LWC](https://blog.beyondthecloud.dev/blog/arrow-function-vs-regular-function-in-lwc.md): Learn the key differences between regular functions, arrow functions, and methods in Lightning Web Components (LWC). Discover best practices, use cases, and how this, arguments, hoisting, and constructors behave in JavaScript and Salesforce LWC. (2025-04-23)
- [Top 5 Salesforce Sales Cloud Implementation Mistakes](https://blog.beyondthecloud.dev/blog/sales-cloud-implementation-mistakes.md): This post highlights 5 common mistakes in Sales Cloud implementations – from poor data quality and lack of user training to bad segmentation and weak business involvement – and shares practical tips to avoid them for smoother, more effective projects. (2025-04-09)
- [Generic Code: What It Is and What It Is Not? – Polish Dreamin’ 25](https://blog.beyondthecloud.dev/blog/generic-code-in-salesforce.md): Learn how to build truly generic code that’s easy to adopt, flexible, and avoids duplication. Uncover key principles, patterns, and real-world tips for writing maintainable code that focuses on the core problem and fosters effective collaboration. (2025-03-28)
- [Reducing Manual Setup Steps for AppExchange Apps](https://blog.beyondthecloud.dev/blog/reducing-manual-setup-appexchange-apps.md): Learn how to reduce post-installation manual steps for your AppExchange managed package. Improve user experience and simplify necessary configurations. (2025-03-21)
- [Salesforce Org Types for AppExchange Partners](https://blog.beyondthecloud.dev/blog/salesforce-org-types-for-appexchange-partners.md): Learn about key Salesforce org types for AppExchange partners, including PBO, LMO, FMO, Devhub, Scratch Orgs, and Trialforce Orgs. Understand their roles in app development, packaging, licensing, and trials to optimize your AppExchange journey. (2025-03-07)
- [Apex Object Oriented Programming – Hands-On](https://blog.beyondthecloud.dev/blog/apex-object-oriented-programming.md): Have you ever had difficulties with refactoring existing code? Ever wondered if your code is really open for extensions and closed for modifications? Try this Hands-On exercises to find out how to make you code clean and reusable. (2025-03-06)
- [Bulkification in Flows](https://blog.beyondthecloud.dev/blog/bulkification-in-flows.md): Bulkification is a fundamental principle in Salesforce automation, ensuring that Flows and Apex processes handle multiple records efficiently instead of processing them one by one. While Salesforce claims that Flows automatically bulkify actions, developers must actively design for bulk operations to prevent hitting governor limits. This article explores how Flow bulkification works, highlights common antipatterns, and provides best practices to optimize performance in record-triggered Flows. (2025-03-05)
- [Why do you need a Apex Selector Layer?](https://blog.beyondthecloud.dev/blog/why-do-you-need-selector-layer.md): A Selector Layer centralizes SOQL queries, ensuring consistency, FLS, sharing rule enforcement, and easier testing with mocking. It avoids duplication, supports caching, and simplifies updates, making your code cleaner, scalable, and more maintainable. (2025-01-16)
- [AppExchange App Support with Subscriber Console](https://blog.beyondthecloud.dev/blog/appexchange-subscriber-console.md): Optimize Salesforce AppExchange app support with the Subscriber Console. Debug issues, manage protected settings, and access managed pakage logs directly on your subscriber’s org. (2024-12-19)
- [Simple Salesforce CICD for Developers](https://blog.beyondthecloud.dev/blog/simple-salesforce-cicd.md): Set up a Salesforce CI/CD pipeline easily! Automate deployments, run tests, and more with our step-by-step guide. Happy coding! (2024-07-04)
- [Salesforce OAuth 2.0 Flows: Integrate in the right way](https://blog.beyondthecloud.dev/blog/salesforce-oauth-2-0-flows-integrate-in-the-right-way.md): TL;DR I just want to know which flow to use If you’re short on time or just want to know what flow is for you, just go here. Introduction Brief Overview OAuth, which stands for Open Authorization, is an open-standard protocol that provides users with secure access to resources on an application, such as Salesforce,... (2024-05-25)
- [Advanced Salesforce LWC debugging with Chrome Developer Tools](https://blog.beyondthecloud.dev/blog/chrome-dev-tools-for-salesforce-lwc-developers.md): LWC debugging and development with Chrome Developer Tools – learn how Salesforce LWC developer can debug and develop Lightning Web Components effectively without console.logs. (2024-04-15)
- [Beyond If Statements: Ways to avoid IFs – Polish Dreamin’ 24](https://blog.beyondthecloud.dev/blog/beyond-if-statements-ways-to-avoid-ifs.md): Code is a representation of business requirements. Business requirements vary for each company, but most of them have an IF-THEN structure. It’s quite common to see IF statements in our code. However, an increasing number of IFs can make our code hard to read and understand. (2024-03-21)
- [Advanced Promises in LWC](https://blog.beyondthecloud.dev/blog/advanced-promises-in-lwc.md): How and when to use Promise.all, allSettled, any, and race in LWC? Check out our latest post about advanced promises! (2024-02-13)
- [Future vs Queueable](https://blog.beyondthecloud.dev/blog/future-vs-queueable.md): In Apex, for a long time, a go to Asynchronous method was @Future annotation. Meanwhile, Queueable interface got built up with many useful tools to help developers. Is Queueable better now? Where does it stand in comparison to the @Future? Are there use cases when @Future is still valid? This guide will help you learn everything you need to know about using Asynchronous technologies. (2024-01-26)
- [LWC and Apex communication – the Ultimate Guide](https://blog.beyondthecloud.dev/blog/lwc-and-apex-communication-the-ultimate-guide.md): See the ultimate guide for LWC and Apex connectivity solutions – how to get data, how to use wire and how to refresh cache – all in one place! (2024-01-15)
- [Refs vs QuerySelector in LWC](https://blog.beyondthecloud.dev/blog/refs-vs-query-selector-in-lwc.md): We have two ways to query DOM elements in LWC: refs and querySelector.Which one is better? Let’s cover it in this post. (2023-12-01)
- [Type Casting in Apex](https://blog.beyondthecloud.dev/blog/type-casting-in-apex.md): How Apex type casting works? How to cast List in Apex? How to cast Apex Map? Answers to these questions and much more can be found in this post! (2023-10-15)
- [Client Credentials custom Auth. Provider](https://blog.beyondthecloud.dev/blog/client-credentials-custom-auth-provider.md): Do you need to use Client Credentials flow? Or you are just wondering how to create one? Check this step-by-step guide with example on building custom Auth. Provider for Client Credentials. Contains a real life example using PayU API. (2023-09-29)
- [Salesforce Flow Considerations](https://blog.beyondthecloud.dev/blog/salesforce-flow-considerations.md): Flows are an amazing automation tool that offers you a lot of possibilities. However it also have a lot of limitations you need to be aware of. (2023-08-29)
- [LWC Getters and Setters – The Last Frontier](https://blog.beyondthecloud.dev/blog/lwc-getters-and-setters-the-last-frontier.md): See best practices, learn when and how to use getters and setters in LWC. (2023-08-16)
- [Top 10+ Salesforce deployment errors](https://blog.beyondthecloud.dev/blog/salesforce-deployment-errors.md): Mastering Salesforce deployments can be tricky. Learn how to avoid 10+ common deployment errors with our expert guide. Get started now! (2023-08-03)
- [Apex CPU Benchmarking](https://blog.beyondthecloud.dev/blog/apex-cpu-benchmarking.md): Have you ever encountered the infamous Apex CPU time limit exception? Check out this post to see how to efficiently measure the performance of your Apex code. (2023-07-28)
- [SOQL Lib](https://blog.beyondthecloud.dev/blog/soql-lib.md): The SOQL Lib provides functional constructs for SOQL queries in Apex. Use the SOQL Lib as a Selector Layer on your project. (2023-07-10)
- [Static in Apex Salesforce](https://blog.beyondthecloud.dev/blog/static-in-apex.md): Static variables are a key aspect of apex programming that can significantly enhance code functionality and efficiency. (2023-07-02)
- [Then vs Async Await in LWC](https://blog.beyondthecloud.dev/blog/then-vs-async-await-in-lwc.md): then and await are key concepts in asynchronous JavaScript programming. Understand the differences between them and check the best practices. (2023-02-13)
- [Apex Triggers Introduction](https://blog.beyondthecloud.dev/blog/apex-triggers.md): Preview and introduction to Apex Triggers. Learn how to define one and its capabilities. (2023-02-05)
- [Top 3 Git Branching strategies for Salesforce](https://blog.beyondthecloud.dev/blog/git-branching-strategies-for-salesforce.md): An overview of the top 3 git branching strategies for Salesforce. Pros & Cons included (2022-12-03)
- [System.Assert Class vs System.assertEquals methods](https://blog.beyondthecloud.dev/blog/system-assert-class-vs-system-assert-equals-methods.md): Salesforce released new Assert methods in Winter 23. Are they better or worse than existing assert methods? Should we replace the old ones with new methods? Check this article to find out! (2022-11-07)
- [Publishing Visual Studio Code Extension](https://blog.beyondthecloud.dev/blog/visual-studio-code-extension.md): How to make and share a VS Code extension? It is easier than you think. Follow these steps to add a new extension to the Marketplace. (2022-11-01)
- [Web-to-Anything: Secure Forms with FormAssembly](https://blog.beyondthecloud.dev/blog/web-to-anything.md): Learn how to build secure web-to-anything Salesforce forms using FormAssembly. (2022-10-03)
- [Mixins in Lightning Web Components – Dreamforce 2022 session](https://blog.beyondthecloud.dev/blog/mixins-in-lwc-dreamforce-2022.md): Learn what the Javascript mixins are and how to use them in Lightning Web Components. (2022-09-30)
- [Hangman Game Built with LWC](https://blog.beyondthecloud.dev/blog/hangman-in-lwc.md): Learn how to build hangman game using LWC and vanilla JS (2022-09-21)
- [Salesforce To Google REST API Integration](https://blog.beyondthecloud.dev/blog/salesforce-to-google-rest-api-integration.md): Integrate your Salesforce environment with Google by REST API. Check the completed integration guide. (2022-09-20)
- [Promises in LWC](https://blog.beyondthecloud.dev/blog/promises-in-lwc-lightning-web-components.md): What is a Promise? How does it work in LWC? What is the difference between then/catch and async/await? Let’s check. (2022-09-04)
- [Salesforce SPA using LWC](https://blog.beyondthecloud.dev/blog/salesforce-spa-using-lwc.md): Create a powerful Single Page Application using Lightning Web Components. The perfect approach for internal and external Salesforce apps. (2022-08-27)
- [How to recover deleted files in git](https://blog.beyondthecloud.dev/blog/how-to-recover-deleted-files-in-git.md): How to recover deleted files in git which were not committed? Not easy but possible. (2022-08-25)
- [Abstract, Virtual, Interface in Apex](https://blog.beyondthecloud.dev/blog/abstract-virtual-interface-in-apex.md): Find the differences between Abstract, Virtual, and Interface implementation in Apex code. Understand the purpose and make your code better. (2022-08-14)
- [Apex Debugging](https://blog.beyondthecloud.dev/blog/apex-debugging.md): Salesforce provides sophisticated methods to debug your apex code. Check how to use all of them and resolve issues more efficiently. (2022-08-07)
- [Salesforce Platform Cache](https://blog.beyondthecloud.dev/blog/salesforce-platform-cache.md): Platform Cache is salesforce feature, which allows you improve you app performance and improve user experience. (2022-07-16)
- [How to deploy in Salesforce](https://blog.beyondthecloud.dev/blog/how-to-deploy-in-salesforce.md): How business logic works in Salesforce is described by metadata. So how to deploy it in the best possible way? (2022-07-12)
