diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/settings-resource-row/index.ts b/apps/sim/app/workspace/[workspaceId]/settings/components/settings-resource-row/index.ts
new file mode 100644
index 00000000000..da29f86f11c
--- /dev/null
+++ b/apps/sim/app/workspace/[workspaceId]/settings/components/settings-resource-row/index.ts
@@ -0,0 +1 @@
+export { SettingsResourceRow } from './settings-resource-row'
diff --git a/apps/sim/app/workspace/[workspaceId]/settings/components/settings-resource-row/settings-resource-row.tsx b/apps/sim/app/workspace/[workspaceId]/settings/components/settings-resource-row/settings-resource-row.tsx
new file mode 100644
index 00000000000..d01bfe131d6
--- /dev/null
+++ b/apps/sim/app/workspace/[workspaceId]/settings/components/settings-resource-row/settings-resource-row.tsx
@@ -0,0 +1,47 @@
+import type { ReactNode } from 'react'
+
+/**
+ * The canonical settings "resource row": a rounded-bordered icon tile, a
+ * title + muted description text block, and an optional trailing slot
+ * (action chips, a {@link RowActionsMenu}, a status label, etc.).
+ *
+ * Single source of truth for the credential-style row shared by the BYOK key
+ * manager, credential sets, and recently-deleted lists — never re-derive the
+ * tile/text chrome per consumer. The tile force-sizes any `