#bestpractices — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #bestpractices, aggregated by home.social.
-
Practitioner lessons from Prudential Life of Japan’s scandal https://www.byteseu.com/?p=2219338 #BestPractices #FinancialServices #Japan #Prudential
-
Is Hardcoding Ids a Good Idea in Salesforce Flows?
Every Salesforce admin and developer has been tempted by the quick fix. You are building a Flow, and you need it to route an automated email to a specific queue, assign a task to a generic system user, or refer to a specific Record Type.
You open the record in your browser, copy the 15- or 18-character string from the URL (
0058W00000Gxxxx), paste it directly into a Flow text variable, and click Save. It works perfectly in your sandbox. You deploy it. Everything seems fine.There are many situations this approach fails, though.
Hardcoding Ids is one of the most common anti-patterns in Salesforce development. While it feels harmless in the moment, it creates fragile automation that is prone to catastrophic failure during deployments. Let’s break down exactly why this happens, how Salesforce handles Ids across environments, and the best-practice alternatives you should use instead.
The Root of the Problem: Data vs. Metadata
To understand why hardcoding fails, we have to look at how Salesforce separates Metadata (the structural bones of your org such as Flow definitions, custom fields, and page layouts) from Data (the actual records living inside those structures, like Accounts, Contacts, Users, and Queues).
When you deploy a Flow using a Change Set, DevOps Center, or a CLI tool, you are deploying metadata.
If your Flow contains a hardcoded Id pointing to a specific User or Queue record, you are embedding a data reference directly inside your metadata. The deployment tools will happily move your Flow structure to the target environment. But if that exact target environment doesn’t contain a record with that identical 18-character Id string, your Flow will throw an unhandled fault the second it runs.
Sandbox Creation: When Do Ids Match?
A common point of confusion is how Ids behave when you spin up or refresh a sandbox from your Production environment. Do the Ids copy over? Are they the same?
The answer depends entirely on whether you are looking at data or metadata, and what type of sandbox you are creating.
Metadata Ids (Record Types, Queues, Roles, Profiles)
When you create any sandbox from Production (Developer, Developer Pro, Partial Copy, or Full), Salesforce replicates your metadata layout.
Record Type Ids and DeveloperName values will match between Production and the newly created sandbox because Record Types are metadata.
Queue and Public Group Ids will also match initially because their structural definitions are pulled directly from Production.
Data Ids (Users, Accounts, Custom Object Records)
This is where things diverge significantly:
- Full Sandboxes: A Full Sandbox copies all metadata and all data records from Production. Consequently, the record Ids for your Accounts, Contacts, and Users will match Production exactly upon creation.
- Partial Copy Sandboxes: These copy a sample of your data based on a sandbox template. The records that are copied will retain their original Production Ids.
- Developer and Developer Pro Sandboxes: These environments copy zero data records from Production (except for standard Setup data like Users). If you create a brand-new Account record in a Developer Sandbox to test your Flow, it will generate a brand-new, completely unique ID that has absolutely no relationship to Production.
The Danger Zone: Disconnected Environments and Scratch Orgs
Even if you use a Full Sandbox where data Ids match Production perfectly, relying on hardcoded Ids is still a ticking time bomb. The risk skyrockets when your deployment pipeline introduces disconnected environments or scratch orgs.
If your team utilizes modern DevOps strategies such as Salesforce DX and Scratch Orgs, your environments are spun up completely from source code repository configurations.
A scratch org has absolutely no data relationship to your Production environment. When a scratch org is built, it is a completely blank canvas.
If your Flow expects a hardcoded User Id like
0058W00000Gxxxxto exist, it will instantly fail in the scratch org because that User simply does not exist. The same issue occurs if you have to manually recreate test records in a clean Developer sandbox; the text strings will never align across the pipeline.Furthermore, if a record is accidentally deleted in Production and recreated by an admin, it receives a brand-new Id. Your hardcoded Flow will instantly break, requiring an emergency deployment just to update a text string.
Best Practices: How to Avoid Hardcoding Ids
How do you build robust, environment-agnostic Flows that seamlessly transition from a scratch org to a sandbox, and ultimately to Production? Use these three reliable alternatives:
Use the Get Records Element (The Gold Standard)
Instead of hardcoding a Record Type Id or a Queue Id, use a Get Records element at the beginning of your Flow to query the system dynamically using a unique developer name.
Instead of: Filtering a record variable by RecordTypeId Equals
0128W000001xxxxDo this: Add a Get Records element looking at the Record Type object where
SubjectType Equals 'Account' and DeveloperName Equals 'Corporate_Account'. Then, reference the Id dynamically from that query step.Developer names are metadata; they remain identical across all environments, making your query 100% safe during deployment.
Leverage Custom Labels or Custom Metadata Types
If you must reference a specific system user or external integration Id that cannot be queried easily via a developer name, store that Id outside of the Flow.
Create a Custom Metadata Type or a Custom Label (e.g.,
Default_Task_Assignee_ID).Populate the label with the sandbox-specific Id in your sandbox, and reference that label inside your Flow using global variables:
{!$Label.Default_Task_Assignee_Id}.When you deploy the Flow, the metadata structure moves safely. You can then update the text value inside the Custom Label in Production manually or via deployment scripts without touching the core Flow logic.
Custom Settings can also be used for this purpose depending on your use case.
Use Global Variables for Profiles and Roles
If your Flow needs to validate a user’s Profile or Role, avoid hardcoding the Profile Id. Salesforce provides global system variables that let you look at the running user’s contextual information directly:
{!$Profile.Name}(e.g., Equals System Administrator){!$UserRole.Name}(e.g., VP of Global Sales)
Using names rather than hardcoded alphanumeric Ids ensures your logic remains readable, maintainable, and completely deployable.
A Quick Tip on Roles: Just like hardcoding IDs, checking
{!$UserRole.Name}directly in Flow logic can be risky if someone renames the Role in Setup. Where possible, checking Custom Permissions using{!$Permission.Your_Custom_Permission}is an even safer, more maintainable alternative!Read our post on custom permissions HERE.
Stop Hardcoding Ids: Build Deployment-Safe Flows Instead
Is hardcoding Ids ever a good idea? No. Never.
While it might save you two minutes during initial development, it passes an invisible technical debt down the line to your future self or your deployment team. By taking the extra moment to implement a dynamic query or reference a Custom Metadata Type, you ensure your Screen and Record-Triggered Flows remain unbreakable, no matter how complex your sandbox ecosystem or deployment pipeline becomes.
Explore related content:
Should You Use Roll Back Records in Salesforce Screen Flows?
Unanimous Flow Approvals – No More Workarounds
Open a Page Action: Redirect Users After a Screen Flow
#BestPractices #Code #LowCode #SalesforceAdmin #SalesforceDeveloper #SalesforceHowTo #SalesforceTutorial -
Is Hardcoding Ids a Good Idea in Salesforce Flows?
Every Salesforce admin and developer has been tempted by the quick fix. You are building a Flow, and you need it to route an automated email to a specific queue, assign a task to a generic system user, or refer to a specific Record Type.
You open the record in your browser, copy the 15- or 18-character string from the URL (
0058W00000Gxxxx), paste it directly into a Flow text variable, and click Save. It works perfectly in your sandbox. You deploy it. Everything seems fine.There are many situations this approach fails, though.
Hardcoding Ids is one of the most common anti-patterns in Salesforce development. While it feels harmless in the moment, it creates fragile automation that is prone to catastrophic failure during deployments. Let’s break down exactly why this happens, how Salesforce handles Ids across environments, and the best-practice alternatives you should use instead.
The Root of the Problem: Data vs. Metadata
To understand why hardcoding fails, we have to look at how Salesforce separates Metadata (the structural bones of your org such as Flow definitions, custom fields, and page layouts) from Data (the actual records living inside those structures, like Accounts, Contacts, Users, and Queues).
When you deploy a Flow using a Change Set, DevOps Center, or a CLI tool, you are deploying metadata.
If your Flow contains a hardcoded Id pointing to a specific User or Queue record, you are embedding a data reference directly inside your metadata. The deployment tools will happily move your Flow structure to the target environment. But if that exact target environment doesn’t contain a record with that identical 18-character Id string, your Flow will throw an unhandled fault the second it runs.
Sandbox Creation: When Do Ids Match?
A common point of confusion is how Ids behave when you spin up or refresh a sandbox from your Production environment. Do the Ids copy over? Are they the same?
The answer depends entirely on whether you are looking at data or metadata, and what type of sandbox you are creating.
Metadata Ids (Record Types, Queues, Roles, Profiles)
When you create any sandbox from Production (Developer, Developer Pro, Partial Copy, or Full), Salesforce replicates your metadata layout.
Record Type Ids and DeveloperName values will match between Production and the newly created sandbox because Record Types are metadata.
Queue and Public Group Ids will also match initially because their structural definitions are pulled directly from Production.
Data Ids (Users, Accounts, Custom Object Records)
This is where things diverge significantly:
- Full Sandboxes: A Full Sandbox copies all metadata and all data records from Production. Consequently, the record Ids for your Accounts, Contacts, and Users will match Production exactly upon creation.
- Partial Copy Sandboxes: These copy a sample of your data based on a sandbox template. The records that are copied will retain their original Production Ids.
- Developer and Developer Pro Sandboxes: These environments copy zero data records from Production (except for standard Setup data like Users). If you create a brand-new Account record in a Developer Sandbox to test your Flow, it will generate a brand-new, completely unique ID that has absolutely no relationship to Production.
The Danger Zone: Disconnected Environments and Scratch Orgs
Even if you use a Full Sandbox where data Ids match Production perfectly, relying on hardcoded Ids is still a ticking time bomb. The risk skyrockets when your deployment pipeline introduces disconnected environments or scratch orgs.
If your team utilizes modern DevOps strategies such as Salesforce DX and Scratch Orgs, your environments are spun up completely from source code repository configurations.
A scratch org has absolutely no data relationship to your Production environment. When a scratch org is built, it is a completely blank canvas.
If your Flow expects a hardcoded User Id like
0058W00000Gxxxxto exist, it will instantly fail in the scratch org because that User simply does not exist. The same issue occurs if you have to manually recreate test records in a clean Developer sandbox; the text strings will never align across the pipeline.Furthermore, if a record is accidentally deleted in Production and recreated by an admin, it receives a brand-new Id. Your hardcoded Flow will instantly break, requiring an emergency deployment just to update a text string.
Best Practices: How to Avoid Hardcoding Ids
How do you build robust, environment-agnostic Flows that seamlessly transition from a scratch org to a sandbox, and ultimately to Production? Use these three reliable alternatives:
Use the Get Records Element (The Gold Standard)
Instead of hardcoding a Record Type Id or a Queue Id, use a Get Records element at the beginning of your Flow to query the system dynamically using a unique developer name.
Instead of: Filtering a record variable by RecordTypeId Equals
0128W000001xxxxDo this: Add a Get Records element looking at the Record Type object where
SubjectType Equals 'Account' and DeveloperName Equals 'Corporate_Account'. Then, reference the Id dynamically from that query step.Developer names are metadata; they remain identical across all environments, making your query 100% safe during deployment.
Leverage Custom Labels or Custom Metadata Types
If you must reference a specific system user or external integration Id that cannot be queried easily via a developer name, store that Id outside of the Flow.
Create a Custom Metadata Type or a Custom Label (e.g.,
Default_Task_Assignee_ID).Populate the label with the sandbox-specific Id in your sandbox, and reference that label inside your Flow using global variables:
{!$Label.Default_Task_Assignee_Id}.When you deploy the Flow, the metadata structure moves safely. You can then update the text value inside the Custom Label in Production manually or via deployment scripts without touching the core Flow logic.
Custom Settings can also be used for this purpose depending on your use case.
Use Global Variables for Profiles and Roles
If your Flow needs to validate a user’s Profile or Role, avoid hardcoding the Profile Id. Salesforce provides global system variables that let you look at the running user’s contextual information directly:
{!$Profile.Name}(e.g., Equals System Administrator){!$UserRole.Name}(e.g., VP of Global Sales)
Using names rather than hardcoded alphanumeric Ids ensures your logic remains readable, maintainable, and completely deployable.
A Quick Tip on Roles: Just like hardcoding IDs, checking
{!$UserRole.Name}directly in Flow logic can be risky if someone renames the Role in Setup. Where possible, checking Custom Permissions using{!$Permission.Your_Custom_Permission}is an even safer, more maintainable alternative!Read our post on custom permissions HERE.
Stop Hardcoding Ids: Build Deployment-Safe Flows Instead
Is hardcoding Ids ever a good idea? No. Never.
While it might save you two minutes during initial development, it passes an invisible technical debt down the line to your future self or your deployment team. By taking the extra moment to implement a dynamic query or reference a Custom Metadata Type, you ensure your Screen and Record-Triggered Flows remain unbreakable, no matter how complex your sandbox ecosystem or deployment pipeline becomes.
Explore related content:
Should You Use Roll Back Records in Salesforce Screen Flows?
Unanimous Flow Approvals – No More Workarounds
Open a Page Action: Redirect Users After a Screen Flow
#BestPractices #Code #LowCode #SalesforceAdmin #SalesforceDeveloper #SalesforceHowTo #SalesforceTutorial -
Is Hardcoding Ids a Good Idea in Salesforce Flows?
Every Salesforce admin and developer has been tempted by the quick fix. You are building a Flow, and you need it to route an automated email to a specific queue, assign a task to a generic system user, or refer to a specific Record Type.
You open the record in your browser, copy the 15- or 18-character string from the URL (
0058W00000Gxxxx), paste it directly into a Flow text variable, and click Save. It works perfectly in your sandbox. You deploy it. Everything seems fine.There are many situations this approach fails, though.
Hardcoding Ids is one of the most common anti-patterns in Salesforce development. While it feels harmless in the moment, it creates fragile automation that is prone to catastrophic failure during deployments. Let’s break down exactly why this happens, how Salesforce handles Ids across environments, and the best-practice alternatives you should use instead.
The Root of the Problem: Data vs. Metadata
To understand why hardcoding fails, we have to look at how Salesforce separates Metadata (the structural bones of your org such as Flow definitions, custom fields, and page layouts) from Data (the actual records living inside those structures, like Accounts, Contacts, Users, and Queues).
When you deploy a Flow using a Change Set, DevOps Center, or a CLI tool, you are deploying metadata.
If your Flow contains a hardcoded Id pointing to a specific User or Queue record, you are embedding a data reference directly inside your metadata. The deployment tools will happily move your Flow structure to the target environment. But if that exact target environment doesn’t contain a record with that identical 18-character Id string, your Flow will throw an unhandled fault the second it runs.
Sandbox Creation: When Do Ids Match?
A common point of confusion is how Ids behave when you spin up or refresh a sandbox from your Production environment. Do the Ids copy over? Are they the same?
The answer depends entirely on whether you are looking at data or metadata, and what type of sandbox you are creating.
Metadata Ids (Record Types, Queues, Roles, Profiles)
When you create any sandbox from Production (Developer, Developer Pro, Partial Copy, or Full), Salesforce replicates your metadata layout.
Record Type Ids and DeveloperName values will match between Production and the newly created sandbox because Record Types are metadata.
Queue and Public Group Ids will also match initially because their structural definitions are pulled directly from Production.
Data Ids (Users, Accounts, Custom Object Records)
This is where things diverge significantly:
- Full Sandboxes: A Full Sandbox copies all metadata and all data records from Production. Consequently, the record Ids for your Accounts, Contacts, and Users will match Production exactly upon creation.
- Partial Copy Sandboxes: These copy a sample of your data based on a sandbox template. The records that are copied will retain their original Production Ids.
- Developer and Developer Pro Sandboxes: These environments copy zero data records from Production (except for standard Setup data like Users). If you create a brand-new Account record in a Developer Sandbox to test your Flow, it will generate a brand-new, completely unique ID that has absolutely no relationship to Production.
The Danger Zone: Disconnected Environments and Scratch Orgs
Even if you use a Full Sandbox where data Ids match Production perfectly, relying on hardcoded Ids is still a ticking time bomb. The risk skyrockets when your deployment pipeline introduces disconnected environments or scratch orgs.
If your team utilizes modern DevOps strategies such as Salesforce DX and Scratch Orgs, your environments are spun up completely from source code repository configurations.
A scratch org has absolutely no data relationship to your Production environment. When a scratch org is built, it is a completely blank canvas.
If your Flow expects a hardcoded User Id like
0058W00000Gxxxxto exist, it will instantly fail in the scratch org because that User simply does not exist. The same issue occurs if you have to manually recreate test records in a clean Developer sandbox; the text strings will never align across the pipeline.Furthermore, if a record is accidentally deleted in Production and recreated by an admin, it receives a brand-new Id. Your hardcoded Flow will instantly break, requiring an emergency deployment just to update a text string.
Best Practices: How to Avoid Hardcoding Ids
How do you build robust, environment-agnostic Flows that seamlessly transition from a scratch org to a sandbox, and ultimately to Production? Use these three reliable alternatives:
Use the Get Records Element (The Gold Standard)
Instead of hardcoding a Record Type Id or a Queue Id, use a Get Records element at the beginning of your Flow to query the system dynamically using a unique developer name.
Instead of: Filtering a record variable by RecordTypeId Equals
0128W000001xxxxDo this: Add a Get Records element looking at the Record Type object where
SubjectType Equals 'Account' and DeveloperName Equals 'Corporate_Account'. Then, reference the Id dynamically from that query step.Developer names are metadata; they remain identical across all environments, making your query 100% safe during deployment.
Leverage Custom Labels or Custom Metadata Types
If you must reference a specific system user or external integration Id that cannot be queried easily via a developer name, store that Id outside of the Flow.
Create a Custom Metadata Type or a Custom Label (e.g.,
Default_Task_Assignee_ID).Populate the label with the sandbox-specific Id in your sandbox, and reference that label inside your Flow using global variables:
{!$Label.Default_Task_Assignee_Id}.When you deploy the Flow, the metadata structure moves safely. You can then update the text value inside the Custom Label in Production manually or via deployment scripts without touching the core Flow logic.
Custom Settings can also be used for this purpose depending on your use case.
Use Global Variables for Profiles and Roles
If your Flow needs to validate a user’s Profile or Role, avoid hardcoding the Profile Id. Salesforce provides global system variables that let you look at the running user’s contextual information directly:
{!$Profile.Name}(e.g., Equals System Administrator){!$UserRole.Name}(e.g., VP of Global Sales)
Using names rather than hardcoded alphanumeric Ids ensures your logic remains readable, maintainable, and completely deployable.
A Quick Tip on Roles: Just like hardcoding IDs, checking
{!$UserRole.Name}directly in Flow logic can be risky if someone renames the Role in Setup. Where possible, checking Custom Permissions using{!$Permission.Your_Custom_Permission}is an even safer, more maintainable alternative!Read our post on custom permissions HERE.
Stop Hardcoding Ids: Build Deployment-Safe Flows Instead
Is hardcoding Ids ever a good idea? No. Never.
While it might save you two minutes during initial development, it passes an invisible technical debt down the line to your future self or your deployment team. By taking the extra moment to implement a dynamic query or reference a Custom Metadata Type, you ensure your Screen and Record-Triggered Flows remain unbreakable, no matter how complex your sandbox ecosystem or deployment pipeline becomes.
Explore related content:
Should You Use Roll Back Records in Salesforce Screen Flows?
Unanimous Flow Approvals – No More Workarounds
Open a Page Action: Redirect Users After a Screen Flow
#BestPractices #Code #LowCode #SalesforceAdmin #SalesforceDeveloper #SalesforceHowTo #SalesforceTutorial -
How-To Geek: Why I’ve started archiving software the same way I archive family photos. “I have a habit of keeping all my software and files, regardless of whether I use them regularly. I have a sweet deprecated version of Noteworthy Composer (to run on a VM) and a portable version of Reaper that I’ve been using for years. The modern web and modern services have made it increasingly difficult […]
https://rbfirehose.com/2026/07/21/how-to-geek-why-ive-started-archiving-software-the-same-way-i-archive-family-photos/ -
How-To Geek: Why I’ve started archiving software the same way I archive family photos. “I have a habit of keeping all my software and files, regardless of whether I use them regularly. I have a sweet deprecated version of Noteworthy Composer (to run on a VM) and a portable version of Reaper that I’ve been using for years. The modern web and modern services have made it increasingly difficult […]
https://rbfirehose.com/2026/07/21/how-to-geek-why-ive-started-archiving-software-the-same-way-i-archive-family-photos/ -
How-To Geek: Why I’ve started archiving software the same way I archive family photos. “I have a habit of keeping all my software and files, regardless of whether I use them regularly. I have a sweet deprecated version of Noteworthy Composer (to run on a VM) and a portable version of Reaper that I’ve been using for years. The modern web and modern services have made it increasingly difficult […]
https://rbfirehose.com/2026/07/21/how-to-geek-why-ive-started-archiving-software-the-same-way-i-archive-family-photos/ -
How-To Geek: Why I’ve started archiving software the same way I archive family photos. “I have a habit of keeping all my software and files, regardless of whether I use them regularly. I have a sweet deprecated version of Noteworthy Composer (to run on a VM) and a portable version of Reaper that I’ve been using for years. The modern web and modern services have made it increasingly difficult […]
https://rbfirehose.com/2026/07/21/how-to-geek-why-ive-started-archiving-software-the-same-way-i-archive-family-photos/ -
How-To Geek: Why I’ve started archiving software the same way I archive family photos. “I have a habit of keeping all my software and files, regardless of whether I use them regularly. I have a sweet deprecated version of Noteworthy Composer (to run on a VM) and a portable version of Reaper that I’ve been using for years. The modern web and modern services have made it increasingly difficult […]
https://rbfirehose.com/2026/07/21/how-to-geek-why-ive-started-archiving-software-the-same-way-i-archive-family-photos/ -
Lifehacker: 10 Camera Hacks Every iPhone User Should Know. “Over the years, I’ve tinkered with my iPhone’s Camera app to push it to its limits, so it can return the highest-quality photos and videos possible. If you’re interested in doing the same, try these 10 hacks, tips, and tricks to get more out of your iPhone’s Camera.”
https://rbfirehose.com/2026/07/21/lifehacker-10-camera-hacks-every-iphone-user-should-know/ -
Lifehacker: 10 Camera Hacks Every iPhone User Should Know. “Over the years, I’ve tinkered with my iPhone’s Camera app to push it to its limits, so it can return the highest-quality photos and videos possible. If you’re interested in doing the same, try these 10 hacks, tips, and tricks to get more out of your iPhone’s Camera.”
https://rbfirehose.com/2026/07/21/lifehacker-10-camera-hacks-every-iphone-user-should-know/ -
Lifehacker: 10 Camera Hacks Every iPhone User Should Know. “Over the years, I’ve tinkered with my iPhone’s Camera app to push it to its limits, so it can return the highest-quality photos and videos possible. If you’re interested in doing the same, try these 10 hacks, tips, and tricks to get more out of your iPhone’s Camera.”
https://rbfirehose.com/2026/07/21/lifehacker-10-camera-hacks-every-iphone-user-should-know/ -
Lifehacker: 10 Camera Hacks Every iPhone User Should Know. “Over the years, I’ve tinkered with my iPhone’s Camera app to push it to its limits, so it can return the highest-quality photos and videos possible. If you’re interested in doing the same, try these 10 hacks, tips, and tricks to get more out of your iPhone’s Camera.”
https://rbfirehose.com/2026/07/21/lifehacker-10-camera-hacks-every-iphone-user-should-know/ -
Lifehacker: 10 Camera Hacks Every iPhone User Should Know. “Over the years, I’ve tinkered with my iPhone’s Camera app to push it to its limits, so it can return the highest-quality photos and videos possible. If you’re interested in doing the same, try these 10 hacks, tips, and tricks to get more out of your iPhone’s Camera.”
https://rbfirehose.com/2026/07/21/lifehacker-10-camera-hacks-every-iphone-user-should-know/ -
Creative Commons: Introducing the CC Open Heritage Companion. “The Creative Commons (CC) Open Heritage Companion is a practitioner’s guide developed to help cultural heritage institutions navigate the journey from closed to open collections. Grounded in the legal, policy, and ethical questions institutions face along the way, the Companion brings together 200+ curated resources, tools, and […]
https://rbfirehose.com/2026/07/20/creative-commons-introducing-the-cc-open-heritage-companion/ -
Creative Commons: Introducing the CC Open Heritage Companion. “The Creative Commons (CC) Open Heritage Companion is a practitioner’s guide developed to help cultural heritage institutions navigate the journey from closed to open collections. Grounded in the legal, policy, and ethical questions institutions face along the way, the Companion brings together 200+ curated resources, tools, and […]
https://rbfirehose.com/2026/07/20/creative-commons-introducing-the-cc-open-heritage-companion/ -
Creative Commons: Introducing the CC Open Heritage Companion. “The Creative Commons (CC) Open Heritage Companion is a practitioner’s guide developed to help cultural heritage institutions navigate the journey from closed to open collections. Grounded in the legal, policy, and ethical questions institutions face along the way, the Companion brings together 200+ curated resources, tools, and […]
https://rbfirehose.com/2026/07/20/creative-commons-introducing-the-cc-open-heritage-companion/ -
Creative Commons: Introducing the CC Open Heritage Companion. “The Creative Commons (CC) Open Heritage Companion is a practitioner’s guide developed to help cultural heritage institutions navigate the journey from closed to open collections. Grounded in the legal, policy, and ethical questions institutions face along the way, the Companion brings together 200+ curated resources, tools, and […]
https://rbfirehose.com/2026/07/20/creative-commons-introducing-the-cc-open-heritage-companion/ -
Creative Commons: Introducing the CC Open Heritage Companion. “The Creative Commons (CC) Open Heritage Companion is a practitioner’s guide developed to help cultural heritage institutions navigate the journey from closed to open collections. Grounded in the legal, policy, and ethical questions institutions face along the way, the Companion brings together 200+ curated resources, tools, and […]
https://rbfirehose.com/2026/07/20/creative-commons-introducing-the-cc-open-heritage-companion/ -
Neatnik: Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day. “…if the idea of having complete independence and control over your content on the web is appealing to you, read on. Because that’s what Hardcore IndieWeb is all about.”
https://rbfirehose.com/2026/07/19/hardcore-indieweb-run-your-own-website-100-independently-for-only-0-01-day-neatnik/ -
Neatnik: Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day. “…if the idea of having complete independence and control over your content on the web is appealing to you, read on. Because that’s what Hardcore IndieWeb is all about.”
https://rbfirehose.com/2026/07/19/hardcore-indieweb-run-your-own-website-100-independently-for-only-0-01-day-neatnik/ -
Neatnik: Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day. “…if the idea of having complete independence and control over your content on the web is appealing to you, read on. Because that’s what Hardcore IndieWeb is all about.”
https://rbfirehose.com/2026/07/19/hardcore-indieweb-run-your-own-website-100-independently-for-only-0-01-day-neatnik/ -
Neatnik: Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day. “…if the idea of having complete independence and control over your content on the web is appealing to you, read on. Because that’s what Hardcore IndieWeb is all about.”
https://rbfirehose.com/2026/07/19/hardcore-indieweb-run-your-own-website-100-independently-for-only-0-01-day-neatnik/ -
Neatnik: Hardcore IndieWeb: Run your own website 100% independently for only $0.01/day. “…if the idea of having complete independence and control over your content on the web is appealing to you, read on. Because that’s what Hardcore IndieWeb is all about.”
https://rbfirehose.com/2026/07/19/hardcore-indieweb-run-your-own-website-100-independently-for-only-0-01-day-neatnik/ -
ProPublica: How to Research Private Schools Like an Investigative Reporter. “It can be really hard to get transparent, comprehensive information about private schools. Our investigative reporters share some suggestions for parents and guardians who want to collect it themselves.”
https://rbfirehose.com/2026/07/17/propublica-how-to-research-private-schools-like-an-investigative-reporter/ -
ProPublica: How to Research Private Schools Like an Investigative Reporter. “It can be really hard to get transparent, comprehensive information about private schools. Our investigative reporters share some suggestions for parents and guardians who want to collect it themselves.”
https://rbfirehose.com/2026/07/17/propublica-how-to-research-private-schools-like-an-investigative-reporter/ -
ProPublica: How to Research Private Schools Like an Investigative Reporter. “It can be really hard to get transparent, comprehensive information about private schools. Our investigative reporters share some suggestions for parents and guardians who want to collect it themselves.”
https://rbfirehose.com/2026/07/17/propublica-how-to-research-private-schools-like-an-investigative-reporter/ -
ProPublica: How to Research Private Schools Like an Investigative Reporter. “It can be really hard to get transparent, comprehensive information about private schools. Our investigative reporters share some suggestions for parents and guardians who want to collect it themselves.”
https://rbfirehose.com/2026/07/17/propublica-how-to-research-private-schools-like-an-investigative-reporter/ -
ProPublica: How to Research Private Schools Like an Investigative Reporter. “It can be really hard to get transparent, comprehensive information about private schools. Our investigative reporters share some suggestions for parents and guardians who want to collect it themselves.”
https://rbfirehose.com/2026/07/17/propublica-how-to-research-private-schools-like-an-investigative-reporter/ -
- Moved stability conscious customers to hardened where different branch with different (LTS) plan of maintenance was introduced.
So this one-off thing turned into (easily) 50x per day task. With genormous ripple effects across the organisation.
What would happen if I'd become compliant to management request to "do quickly this one off"? ... Cautious reader can infer.
-
- Moved stability conscious customers to hardened where different branch with different (LTS) plan of maintenance was introduced.
So this one-off thing turned into (easily) 50x per day task. With genormous ripple effects across the organisation.
What would happen if I'd become compliant to management request to "do quickly this one off"? ... Cautious reader can infer.
-
- Moved stability conscious customers to hardened where different branch with different (LTS) plan of maintenance was introduced.
So this one-off thing turned into (easily) 50x per day task. With genormous ripple effects across the organisation.
What would happen if I'd become compliant to management request to "do quickly this one off"? ... Cautious reader can infer.
-
- Moved stability conscious customers to hardened where different branch with different (LTS) plan of maintenance was introduced.
So this one-off thing turned into (easily) 50x per day task. With genormous ripple effects across the organisation.
What would happen if I'd become compliant to management request to "do quickly this one off"? ... Cautious reader can infer.
-
- Moved stability conscious customers to hardened where different branch with different (LTS) plan of maintenance was introduced.
So this one-off thing turned into (easily) 50x per day task. With genormous ripple effects across the organisation.
What would happen if I'd become compliant to management request to "do quickly this one off"? ... Cautious reader can infer.
-
Hot take: leer código ajeno te hace mejor dev que escribir el tuyo. Pasé la semana revisando un repo de hace 5 años mío y me dió vergüenza ajena, pero aprendí más en esa hora que en un curso entero.
El código es conversación con tu yo del futuro. Escribilo bien 🧠
-
Hot take: leer código ajeno te hace mejor dev que escribir el tuyo. Pasé la semana revisando un repo de hace 5 años mío y me dió vergüenza ajena, pero aprendí más en esa hora que en un curso entero.
El código es conversación con tu yo del futuro. Escribilo bien 🧠
-
Hot take: leer código ajeno te hace mejor dev que escribir el tuyo. Pasé la semana revisando un repo de hace 5 años mío y me dió vergüenza ajena, pero aprendí más en esa hora que en un curso entero.
El código es conversación con tu yo del futuro. Escribilo bien 🧠
-
Hot take: leer código ajeno te hace mejor dev que escribir el tuyo. Pasé la semana revisando un repo de hace 5 años mío y me dió vergüenza ajena, pero aprendí más en esa hora que en un curso entero.
El código es conversación con tu yo del futuro. Escribilo bien 🧠
-
Hot take: leer código ajeno te hace mejor dev que escribir el tuyo. Pasé la semana revisando un repo de hace 5 años mío y me dió vergüenza ajena, pero aprendí más en esa hora que en un curso entero.
El código es conversación con tu yo del futuro. Escribilo bien 🧠
-
NiemanLab: A new study looks at the skills journalists are losing (and gaining) because of AI tools. “Journalists will also need to bolster their fact-checking and editing abilities, some interviewees suggested. If journalists are handling more AI-generated copy, they will need to make sure that copy is factually accurate and doesn’t read as generic or stilted. Some also posited that AI tools […]
https://rbfirehose.com/2026/07/14/niemanlab-a-new-study-looks-at-the-skills-journalists-are-losing-and-gaining-because-of-ai-tools/ -
NiemanLab: A new study looks at the skills journalists are losing (and gaining) because of AI tools. “Journalists will also need to bolster their fact-checking and editing abilities, some interviewees suggested. If journalists are handling more AI-generated copy, they will need to make sure that copy is factually accurate and doesn’t read as generic or stilted. Some also posited that AI tools […]
https://rbfirehose.com/2026/07/14/niemanlab-a-new-study-looks-at-the-skills-journalists-are-losing-and-gaining-because-of-ai-tools/ -
NiemanLab: A new study looks at the skills journalists are losing (and gaining) because of AI tools. “Journalists will also need to bolster their fact-checking and editing abilities, some interviewees suggested. If journalists are handling more AI-generated copy, they will need to make sure that copy is factually accurate and doesn’t read as generic or stilted. Some also posited that AI tools […]
https://rbfirehose.com/2026/07/14/niemanlab-a-new-study-looks-at-the-skills-journalists-are-losing-and-gaining-because-of-ai-tools/ -
NiemanLab: A new study looks at the skills journalists are losing (and gaining) because of AI tools. “Journalists will also need to bolster their fact-checking and editing abilities, some interviewees suggested. If journalists are handling more AI-generated copy, they will need to make sure that copy is factually accurate and doesn’t read as generic or stilted. Some also posited that AI tools […]
https://rbfirehose.com/2026/07/14/niemanlab-a-new-study-looks-at-the-skills-journalists-are-losing-and-gaining-because-of-ai-tools/ -
NiemanLab: A new study looks at the skills journalists are losing (and gaining) because of AI tools. “Journalists will also need to bolster their fact-checking and editing abilities, some interviewees suggested. If journalists are handling more AI-generated copy, they will need to make sure that copy is factually accurate and doesn’t read as generic or stilted. Some also posited that AI tools […]
https://rbfirehose.com/2026/07/14/niemanlab-a-new-study-looks-at-the-skills-journalists-are-losing-and-gaining-because-of-ai-tools/ -
“Are you sure that you're smarter than a Nobel laureate?” – Eric Ries
Quote of the day & short reel on how “best practices” erased $100 B in value. 🎥
Watch: https://youtube.com/shorts/99Wrsox6uiA
#ericries #incorruptible #leanstartup #corporategovernance #bestpractices -
“Are you sure that you're smarter than a Nobel laureate?” – Eric Ries
Quote of the day & short reel on how “best practices” erased $100 B in value. 🎥
Watch: https://youtube.com/shorts/99Wrsox6uiA
#ericries #incorruptible #leanstartup #corporategovernance #bestpractices -
----------------
🛠️ Tool
===================The GitHub repository "claude-code-best-practice" by shanraisshan provides structured best practices and implementation guides for Claude Code, Anthropic's agentic coding tool. The repository reached GitHub Trending #1, indicating strong community demand for formalized patterns.
Core Concepts Documented
The repository covers five key architectural features:
1. Subagents - Configured in .claude/agents/<name>.md. Enable delegating focused tasks to specialized agent instances rather than handling everything in a single context.
2. Commands - Custom slash commands in .claude/commands/<name>.md. Function as reusable prompt templates that standardize repetitive workflows across a project or team.
3. Skills - Stored in .claude/skills/<name>/SKILL.md. Represent persistent, context-aware capabilities Claude can invoke. A separate report addresses skills for mono-repos, tackling context management in large codebases where scoping is critical.
4. Workflows - Orchestration patterns coordinating multiple agents and commands. The repo includes a weather-orchestrator example (.claude/commands/weather-orchestrator.md) demonstrating multi-step agentic coordination.
5. Hooks - Lifecycle hooks in .claude/hooks/ enabling pre/post execution logic injection. Links to a separate repository for full hook implementations.
Technical Architecture
All configurations follow a file-based convention under .claude/. This makes them version-controllable, reviewable in pull requests, and shareable across team members. The Markdown format requires no special tooling. The two-layer documentation (principles separate from implementation) lets teams understand the "why" before the "how."
Community Validation
The repo incorporates tips from Boris Cherny, an Anthropic engineer working on Claude Code, shared via X. This provides some signal of alignment with internal thinking. However, the repository is community-maintained, not official Anthropic documentation.
Limitations
Best practices may shift as Claude Code evolves. The hooks section links externally, indicating fragmented documentation. Note: haven't tested these patterns personally.
🔹 claudecode #tool #AIengineering #subagents #bestpractices
🔗 Source: https://github.com/shanraisshan/claude-code-best-practice/tree/main
-
Are you telling me a readonly property is wrecking my performance?
https://shub.club/writings/2026/july/check-your-scrollheight/
Comments: https://news.ycombinator.com/item?id=48849983
#HackerNews #readonlyproperty #performance #issues #coding #bestpractices #webdevelopment #scrollheight
-
Are you telling me a readonly property is wrecking my performance?
https://shub.club/writings/2026/july/check-your-scrollheight/
Comments: https://news.ycombinator.com/item?id=48849983
#HackerNews #readonlyproperty #performance #issues #coding #bestpractices #webdevelopment #scrollheight
-
Are you telling me a readonly property is wrecking my performance?
https://shub.club/writings/2026/july/check-your-scrollheight/
Comments: https://news.ycombinator.com/item?id=48849983
#HackerNews #readonlyproperty #performance #issues #coding #bestpractices #webdevelopment #scrollheight