salesforce-development
Expert patterns for Salesforce platform development including Lightning Web Components (LWC), Apex triggers and classes, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2nd generation packages (2GP).
npx skills add sickn33/agentic-awesome-skills --skill salesforce-development --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Outlines patterns for Salesforce platform development including Lightning Web Components (LWC), Apex triggers and classes, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2GP. Provides concrete code examples and architecture guidance for data fetching, bulk processing, async handling, and external integrations.
How it works
- Lightning Web Component with Wire Service: demonstrates using @wire with getRecord and a custom Apex method getRelatedRecords, including a reactive recordId, loading state, and error handling in the component, plus a template to display loading, data, and errors. It also defines a MyController.cls with an AuraEnabled cacheable method getRelatedRecords returning a list of contacts for an account.
- Bulkified Apex Trigger with Handler Pattern: shows a trigger on Account and a TriggerHandler base class that prevents recursion and dispatches to per-event handlers. AccountTriggerHandler extends the base to implement afterInsert (createDefaultContacts, notifySlack), afterUpdate (handleIndustryChange), and supporting methods to bulk-create contacts, enqueue async processing, and offload work via Slack notifications.
- Queueable Apex for Async Processing: includes IndustryChangeQueueable implementing Queueable and Database.AllowsCallouts to query accounts, perform external sync, and update related opportunities. It features error handling with exponential backoff up to 3 retries, and creates an Integration_Error__c record on final failure.
- REST API Integration with Connected App: demonstrates OAuth 2.0 patterns using JWT Bearer for server-to-server and Web Server flow for user-facing apps, with an example Node.js client performing authentication, SOQL queries, and record creation via Salesforce REST APIs. Includes guidance on using Named Credentials.
- Bulk API 2.0 for Large Data Operations: provides a Node.js example extending a SalesforceClient to execute a Bulk API 2.0 insert, including job creation, data upload (CSV), job closure, polling for completion, and error handling with retry/abort logic. Also includes a BulkClient example and methods to wait for job completion and to fetch results.
When to use it
Use when building Salesforce integrations and custom development that require:
- Reactive UI data binding in LWC with Salesforce data
- Bulk data processing in triggers with recursion protection and testability
- Async processing for long-running tasks and callouts from triggers
- Secure REST API integrations via Connected Apps and OAuth flows
- Handling large-scale data loads with Bulk API 2.0
What it can touch
- Scratch orgs and 2GP via Salesforce DX patterns (described in context sections)
- Apex classes and triggers (TriggerHandler, AccountTriggerHandler, IndustryChangeQueueable)
- LWC JavaScript and HTML templates
- Node.js-based REST client code for authentication and API calls
- External systems via callouts in Queueable jobs
Caveats
- Contains sample code snippets for triggers, handlers, and external callouts that require proper Salesforce org configuration and permissions.
- Uses external endpoints and callouts which must be permitted in Named Credentials and Remote Site Settings.
- Bulk API 2.0 usage code may need adaptation to specific org limits and security requirements.
# Salesforce Development Expert patterns for Salesforce platform development including Lightning Web Components (LWC), Apex triggers and classes, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2nd generation packages (2GP). ## Patterns ### Lightning Web Component with Wire Service Use @wire decorator for reactive data binding with Lightning Data Service or Apex methods. @wire fits LWC's reactive architecture and enables Salesforce performance optimizations. // myComponent.js import { LightningElement, wire, api } from 'lwc'; import { getRecord, getFieldValue } from 'lightning/uiRecordApi'; import getRelatedRecords from '@salesforce/apex/MyController.getRelatedRecords'; import ACCOUNT_NAME from '@salesforce/schema/Account.Name'; import ACCOUNT_INDUSTRY from '@salesforce/schema/Account.Industry'; const FIELDS = [ACCOUNT_NAME, ACCOUNT_INDUSTRY]; export default class MyComponent extends LightningElement { @api recordId; // Passed from parent or record page // Wire to Lightning Data Service (preferred for single records) @wire(getRecord, { recordId: '$recordId', fields: FIELDS }) account; // Wire to Apex method (for complex queries) @wire(getRelatedRecords, { ac
- Patterns
- Lightning Web Component with Wire Service
- Context
- Bulkified Apex Trigger with Handler Pattern
- Queueable Apex for Async Processing
- REST API Integration with Connected App
- Bulk API 2.0 for Large Data Operations
- Salesforce DX with Scratch Orgs
- 2nd Generation Package (2GP) Development
- Sharp Edges
- Governor Limits Apply Per Transaction, Not Per Record
- @wire Results Are Cached and May Be Stale
- LWC Properties Are Case-Sensitive
- Null Pointer Exceptions in Apex Collections
What does the salesforce-development skill do?
Expert patterns for Salesforce platform development including Lightning Web Components (LWC), Apex triggers and classes, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2nd generation packages (2GP).
How do I install it?
Run `npx skills add sickn33/agentic-awesome-skills --skill salesforce-development --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From sickn33/agentic-awesome-skills, a repository with 44,414 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.