diff --git a/.ado/jobs/cli-init-windows.yml b/.ado/jobs/cli-init-windows.yml
index 30f91baa0e8..4f11e4cc14e 100644
--- a/.ado/jobs/cli-init-windows.yml
+++ b/.ado/jobs/cli-init-windows.yml
@@ -403,12 +403,6 @@ jobs:
                   platform: ${{ parameters.platform }}
                   configuration: ${{ parameters.configuration }}
                   buildEnvironment: ${{ parameters.buildEnvironment }}
-
-              - task: CmdLine@2
-                displayName: Create npm directory
-                name: createNpmDirectory
-                inputs:
-                  script: mkdir %APPDATA%\npm
                   
               - template: ../templates/react-native-init-windows.yml
                 parameters:
diff --git a/.ado/jobs/playground.yml b/.ado/jobs/playground.yml
index 980e4835ca7..c4f6ad1734a 100644
--- a/.ado/jobs/playground.yml
+++ b/.ado/jobs/playground.yml
@@ -183,6 +183,8 @@ jobs:
                   msbuildArgs:
                     /p:PackageCertificateKeyFile=$(Build.SourcesDirectory)\EncodedKey.pfx
                     /p:PackageCertificatePassword=${{ parameters.certificatePassword }}
+                ${{if eq(matrix.SolutionFile, 'Playground-Composition.sln')}}:
+                  parallelBuild: false # required to workaround issue #13599
 
             - ${{if and(false, endsWith(matrix.Name, 'Universal'), eq(matrix.BuildConfiguration, 'Debug')) }}: # Disabled as debugging doesn't work,remove false after issue is resolved, see https://github.com/microsoft/react-native-windows/issues/13543
               # Execute debug feature tests (skip this step for the Win32 Playground app and for release builds)
diff --git a/.ado/publish.yml b/.ado/publish.yml
index 6cfb9640872..7dce4e941b7 100644
--- a/.ado/publish.yml
+++ b/.ado/publish.yml
@@ -190,9 +190,6 @@ extends:
 
           - template: .ado/templates/run-compliance-prebuild.yml@self
 
-          - script: if not exist %USERPROFILE%\AppData\Roaming\npm (mkdir %USERPROFILE%\AppData\Roaming\npm)
-            displayName: Fix missing npm config
-
           - pwsh: |
               npx beachball check --verbose 2>&1 | Tee-Object -Variable beachballOutput
               $beachballErrors = $beachballOutput | Where-Object { $_ -match "ERROR: *"}
diff --git a/.ado/templates/enable-fabric-experimental-feature.yml b/.ado/templates/enable-fabric-experimental-feature.yml
index db335bb2430..934e609c71e 100644
--- a/.ado/templates/enable-fabric-experimental-feature.yml
+++ b/.ado/templates/enable-fabric-experimental-feature.yml
@@ -5,7 +5,7 @@ steps:
       $nsm.AddNamespace('ns', $experimentalFeatures.DocumentElement.NamespaceURI)
 
       $xmlNode = $experimentalFeatures.CreateElement("PropertyGroup");
-      $xmlNode.InnerXml = "<UseFabric>true</UseFabric><UseWinUI3>true</UseWinUI3>"
+      $xmlNode.InnerXml = "<RnwNewArch>true</RnwNewArch><UseFabric>true</UseFabric><UseWinUI3>true</UseWinUI3>"
 
       $experimentalFeatures.DocumentElement.AppendChild($xmlNode);
 
diff --git a/.ado/templates/msbuild-sln.yml b/.ado/templates/msbuild-sln.yml
index 484016232b3..fba2e18086f 100644
--- a/.ado/templates/msbuild-sln.yml
+++ b/.ado/templates/msbuild-sln.yml
@@ -15,6 +15,7 @@ parameters:
   msbuildArguments: ''
   warnAsError: true
   oneESMode: false
+  parallelBuild: true
 
 steps:
   - powershell: |
@@ -36,7 +37,7 @@ steps:
       platform: ${{ parameters.buildPlatform }}
       configuration: ${{ parameters.buildConfiguration }}
       clean: false # Optional
-      maximumCpuCount: true
+      maximumCpuCount: ${{parameters.parallelBuild}}
       restoreNugetPackages: false # Optional
       createLogFile: true
       logFileVerbosity: detailed
diff --git a/.ado/templates/prepare-js-env.yml b/.ado/templates/prepare-js-env.yml
index 46dd12a4cf4..05339c16dca 100644
--- a/.ado/templates/prepare-js-env.yml
+++ b/.ado/templates/prepare-js-env.yml
@@ -13,6 +13,10 @@ steps:
       inputs:
         versionSpec: '18.x'
 
+  - script: if not exist %APPDATA%\npm (mkdir %APPDATA%\npm)
+    displayName: Ensure npm directory for npx commands
+    condition: eq(variables['Agent.OS'], 'Windows_NT')
+
   - template: yarn-install.yml
     parameters:
       agentImage: ${{ parameters.agentImage }}
diff --git a/change/@react-native-windows-automation-channel-4c7447b5-805b-4261-a652-820c2d3ed0cc.json b/change/@react-native-windows-automation-channel-4c7447b5-805b-4261-a652-820c2d3ed0cc.json
new file mode 100644
index 00000000000..6177b44b4b2
--- /dev/null
+++ b/change/@react-native-windows-automation-channel-4c7447b5-805b-4261-a652-820c2d3ed0cc.json
@@ -0,0 +1,7 @@
+{
+  "type": "patch",
+  "comment": "[0.76] Add RnwNewArch property and RNW_NEW_ARCH constants when building projects for the new architecture",
+  "packageName": "@react-native-windows/automation-channel",
+  "email": "jthysell@microsoft.com",
+  "dependentChangeType": "patch"
+}
\ No newline at end of file
diff --git a/change/@react-native-windows-codegen-386a49a7-d732-4d58-b692-37841cecd8b9.json b/change/@react-native-windows-codegen-386a49a7-d732-4d58-b692-37841cecd8b9.json
new file mode 100644
index 00000000000..31a801374a5
--- /dev/null
+++ b/change/@react-native-windows-codegen-386a49a7-d732-4d58-b692-37841cecd8b9.json
@@ -0,0 +1,7 @@
+{
+  "type": "prerelease",
+  "comment": "[0.76] Add RnwNewArch property and RNW_NEW_ARCH constants when building projects for the new architecture",
+  "packageName": "@react-native-windows/codegen",
+  "email": "jthysell@microsoft.com",
+  "dependentChangeType": "patch"
+}
\ No newline at end of file
diff --git a/change/react-native-windows-44e5d751-697d-41eb-806c-037f525ef1de.json b/change/react-native-windows-44e5d751-697d-41eb-806c-037f525ef1de.json
new file mode 100644
index 00000000000..664ddf2d172
--- /dev/null
+++ b/change/react-native-windows-44e5d751-697d-41eb-806c-037f525ef1de.json
@@ -0,0 +1,7 @@
+{
+  "type": "prerelease",
+  "comment": "[0.76] Add RnwNewArch property and RNW_NEW_ARCH constants when building projects for the new architecture",
+  "packageName": "react-native-windows",
+  "email": "jthysell@microsoft.com",
+  "dependentChangeType": "patch"
+}
\ No newline at end of file
diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json
index 51262aba7ce..420cf1b098e 100644
--- a/packages/@react-native-windows/automation-channel/package.json
+++ b/packages/@react-native-windows/automation-channel/package.json
@@ -22,6 +22,7 @@
     "jsonrpc-lite": "^2.2.0"
   },
   "devDependencies": {
+    "@react-native-community/cli": "15.0.0-alpha.2",
     "@rnw-scripts/eslint-config": "1.2.27",
     "@rnw-scripts/just-task": "2.3.44",
     "@rnw-scripts/ts-config": "2.0.5",
diff --git a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj
index 8be3de981ae..1eb4e1932c2 100644
--- a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj
+++ b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj
@@ -69,7 +69,7 @@
     <Import Project="PropertySheet.props" />
   </ImportGroup>
   <ImportGroup Label="ReactNativeWindowsPropertySheets">
-    <Import Project="$(ReactNativeWindowsDir)\PropertySheets\external\Microsoft.ReactNative.Uwp.CppLib.props" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.props')" />
+    <Import Project="$(ReactNativeWindowsDir)\PropertySheets\external\Microsoft.ReactNative.CppLib.props" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.CppLib.props')" />
     <!-- Added since we build this project with Paper/Fabric. -->
     <Import Project="$(ReactNativeWindowsDir)\PropertySheets\NuGet.LockFile.props" />
   </ImportGroup>
@@ -143,13 +143,13 @@
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ReactNativeWindowsTargets">
-    <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.targets" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.targets')" />
+    <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.CppLib.targets" Condition="Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.CppLib.targets')" />
   </ImportGroup>
   <Target Name="EnsureReactNativeWindowsTargets" BeforeTargets="PrepareForBuild">
     <PropertyGroup>
       <ErrorText>This project references targets in your node_modules\react-native-windows folder that are missing. The missing file is {0}.</ErrorText>
     </PropertyGroup>
-    <Error Condition="!Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.props')" Text="$([System.String]::Format('$(ErrorText)', '$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.props'))" />
-    <Error Condition="!Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.targets'))" />
+    <Error Condition="!Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.CppLib.props')" Text="$([System.String]::Format('$(ErrorText)', '$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.CppLib.props'))" />
+    <Error Condition="!Exists('$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.CppLib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.CppLib.targets'))" />
   </Target>
 </Project>
diff --git a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.fabric.lock.json b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.fabric.lock.json
index e0a0e98af07..e82c06d264c 100644
--- a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.fabric.lock.json
+++ b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/packages.fabric.lock.json
@@ -2,6 +2,18 @@
   "version": 1,
   "dependencies": {
     "native,Version=v0.0": {
+      "boost": {
+        "type": "Direct",
+        "requested": "[1.83.0, )",
+        "resolved": "1.83.0",
+        "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ=="
+      },
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.Windows.CppWinRT": {
         "type": "Direct",
         "requested": "[2.0.230706.1, )",
@@ -18,11 +30,6 @@
           "Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
         }
       },
-      "boost": {
-        "type": "Transitive",
-        "resolved": "1.83.0",
-        "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ=="
-      },
       "Microsoft.Build.Tasks.Git": {
         "type": "Transitive",
         "resolved": "1.1.1",
@@ -94,6 +101,12 @@
       }
     },
     "native,Version=v0.0/win10-arm": {
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.WindowsAppSDK": {
         "type": "Direct",
         "requested": "[1.6.240923002, )",
@@ -111,6 +124,12 @@
       }
     },
     "native,Version=v0.0/win10-arm-aot": {
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.WindowsAppSDK": {
         "type": "Direct",
         "requested": "[1.6.240923002, )",
@@ -128,6 +147,12 @@
       }
     },
     "native,Version=v0.0/win10-arm64-aot": {
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.WindowsAppSDK": {
         "type": "Direct",
         "requested": "[1.6.240923002, )",
@@ -145,6 +170,12 @@
       }
     },
     "native,Version=v0.0/win10-x64": {
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.WindowsAppSDK": {
         "type": "Direct",
         "requested": "[1.6.240923002, )",
@@ -162,6 +193,12 @@
       }
     },
     "native,Version=v0.0/win10-x64-aot": {
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.WindowsAppSDK": {
         "type": "Direct",
         "requested": "[1.6.240923002, )",
@@ -179,6 +216,12 @@
       }
     },
     "native,Version=v0.0/win10-x86": {
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.WindowsAppSDK": {
         "type": "Direct",
         "requested": "[1.6.240923002, )",
@@ -196,6 +239,12 @@
       }
     },
     "native,Version=v0.0/win10-x86-aot": {
+      "Microsoft.VCRTForwarders.140": {
+        "type": "Direct",
+        "requested": "[1.0.2-rc, )",
+        "resolved": "1.0.2-rc",
+        "contentHash": "/r+sjtEeCIGyDhobIZ5hSmYhC/dSyGZxf1SxYJpElUhB0LMCktOMFs9gXrauXypIFECpVynNyVjAmJt6hjJ5oQ=="
+      },
       "Microsoft.WindowsAppSDK": {
         "type": "Direct",
         "requested": "[1.6.240923002, )",
diff --git a/packages/@react-native-windows/automation-channel/windows/ExperimentalFeatures.props b/packages/@react-native-windows/automation-channel/windows/ExperimentalFeatures.props
new file mode 100644
index 00000000000..75d1b7fbc19
--- /dev/null
+++ b/packages/@react-native-windows/automation-channel/windows/ExperimentalFeatures.props
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+  <PropertyGroup Label="Microsoft.ReactNative Experimental Features">
+    <RnwNewArch>false</RnwNewArch>
+    <UseExperimentalNuget>false</UseExperimentalNuget>
+    
+    <ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
+  </PropertyGroup>
+
+</Project>
diff --git a/packages/@react-native-windows/codegen/src/generators/GenerateComponentWindows.ts b/packages/@react-native-windows/codegen/src/generators/GenerateComponentWindows.ts
index 769ec1fbaf9..61db6aa2736 100644
--- a/packages/@react-native-windows/codegen/src/generators/GenerateComponentWindows.ts
+++ b/packages/@react-native-windows/codegen/src/generators/GenerateComponentWindows.ts
@@ -31,10 +31,14 @@ const headerTemplate = `/*
  */
 #pragma once
 
-#include <JSValueComposition.h>
 #include <NativeModules.h>
+
+#ifdef RNW_NEW_ARCH
+#include <JSValueComposition.h>
+
 #include <winrt/Microsoft.ReactNative.Composition.h>
-#include <winrt/Microsoft.UI.Composition.h>`;
+#include <winrt/Microsoft.UI.Composition.h>
+#endif // #ifdef RNW_NEW_ARCH`;
 
 const propsTemplate = `REACT_STRUCT(::_PROPS_NAME_::)
 struct ::_PROPS_NAME_:: : winrt::implements<::_PROPS_NAME_::, winrt::Microsoft::ReactNative::IComponentProps> {
@@ -220,6 +224,8 @@ void Register::_COMPONENT_NAME_::NativeComponent(
 const fileTemplate = `
 ${headerTemplate}
 
+#ifdef RNW_NEW_ARCH
+
 namespace ::_NAMESPACE_:: {
 
 ::_COMPONENT_PROP_OBJECT_TYPES_::
@@ -231,6 +237,8 @@ namespace ::_NAMESPACE_:: {
 
 ::_COMPONENT_REGISTRATION_::
 } // namespace ::_NAMESPACE_::
+
+#endif // #ifdef RNW_NEW_ARCH
 `;
 
 function capitalizeFirstLetter(s: string) {
diff --git a/packages/e2e-test-app-fabric/windows/ExperimentalFeatures.props b/packages/e2e-test-app-fabric/windows/ExperimentalFeatures.props
index b3b05eecef4..03e81e57012 100644
--- a/packages/e2e-test-app-fabric/windows/ExperimentalFeatures.props
+++ b/packages/e2e-test-app-fabric/windows/ExperimentalFeatures.props
@@ -2,8 +2,9 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
   <PropertyGroup Label="Microsoft.ReactNative Experimental Features">
-    <UseFabric>true</UseFabric>
-    <UseWinUI3>true</UseWinUI3>
+    <RnwNewArch>true</RnwNewArch>
+    <UseExperimentalNuget>false</UseExperimentalNuget>
+    
     <ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
   </PropertyGroup>
 
diff --git a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric.Package/packages.lock.json b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric.Package/packages.lock.json
index 605911e4bd6..09afe7b34da 100644
--- a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric.Package/packages.lock.json
+++ b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric.Package/packages.lock.json
@@ -59,7 +59,9 @@
         "type": "Project",
         "dependencies": {
           "Microsoft.ReactNative": "[1.0.0, )",
-          "Microsoft.WindowsAppSDK": "[1.6.240923002, )"
+          "Microsoft.VCRTForwarders.140": "[1.0.2-rc, )",
+          "Microsoft.WindowsAppSDK": "[1.6.240923002, )",
+          "boost": "[1.83.0, )"
         }
       },
       "common": {
diff --git a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj
index 1c62d1e1152..ee8b23df72b 100644
--- a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj
+++ b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj
@@ -93,11 +93,6 @@
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-  </ItemDefinitionGroup>
   <PropertyGroup Label="UserMacros" />
   <ItemGroup>
     <ClInclude Include="RNTesterApp-Fabric.h" />
diff --git a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/packages.lock.json b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/packages.lock.json
index c8affc6184c..87af8df58bb 100644
--- a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/packages.lock.json
+++ b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/packages.lock.json
@@ -69,7 +69,9 @@
         "type": "Project",
         "dependencies": {
           "Microsoft.ReactNative": "[1.0.0, )",
-          "Microsoft.WindowsAppSDK": "[1.6.240923002, )"
+          "Microsoft.VCRTForwarders.140": "[1.0.2-rc, )",
+          "Microsoft.WindowsAppSDK": "[1.6.240923002, )",
+          "boost": "[1.83.0, )"
         }
       },
       "common": {
diff --git a/packages/e2e-test-app/windows/RNTesterApp/packages.lock.json b/packages/e2e-test-app/windows/RNTesterApp/packages.lock.json
index 1967c0bc8dc..96a3b4de2ae 100644
--- a/packages/e2e-test-app/windows/RNTesterApp/packages.lock.json
+++ b/packages/e2e-test-app/windows/RNTesterApp/packages.lock.json
@@ -12,7 +12,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -40,6 +40,11 @@
         "resolved": "1.83.0",
         "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ=="
       },
+      "CDebug": {
+        "type": "Transitive",
+        "resolved": "0.0.3",
+        "contentHash": "C6pojNJ2rdJuOdhe0xhJ/FedNLRJkpCVLEEHsfgoU5d5kkOOVKK+7xlGWYgttB51nDB5dLDu/O8j03jSxu81oA=="
+      },
       "Microsoft.Build.Tasks.Git": {
         "type": "Transitive",
         "resolved": "1.1.1",
@@ -48,7 +53,7 @@
       "Microsoft.Net.Native.Compiler": {
         "type": "Transitive",
         "resolved": "2.2.12-rel-31116-00",
-        "contentHash": "91INue1M3Zap/S6yaglXMEq1UvirknZmzwFZiP0fs3Su5MhWUEJoBJK3BsPsiImnII2NGhrYKrJd+QW7zfClyA==",
+        "contentHash": "DuANSYEBO7qcIeqzI1mShJMweuQVBycbCRUW6mIb1QxorSiWLSWEJZNv/X7TdW3dcjfZdZFVsEWDCnJUolIPrQ==",
         "dependencies": {
           "runtime.win10-arm.Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
           "runtime.win10-arm64.Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -59,7 +64,7 @@
       "Microsoft.Net.UWPCoreRuntimeSdk": {
         "type": "Transitive",
         "resolved": "2.2.14",
-        "contentHash": "qPR/lie8X3I82ZnZbdqyl27Z/J9mJapSEbnz7CX4kGgc5LNwjoLlUnaQjilDQsTcYfmSg8EcvcLJy9mBSY+GVA==",
+        "contentHash": "THMsLyB29wqd9ZI9c05hoMb788QQ5ClsXwLjpt7omTk/OvtUERWgwD6q85s5aSMdze50uhPZDRF/+uju8Lqhgw==",
         "dependencies": {
           "runtime.win10-arm.Microsoft.Net.UWPCoreRuntimeSdk": "2.2.14",
           "runtime.win10-x64.Microsoft.Net.UWPCoreRuntimeSdk": "2.2.14",
@@ -101,7 +106,7 @@
       "runtime.win10-arm.Microsoft.Net.Native.Compiler": {
         "type": "Transitive",
         "resolved": "2.2.12-rel-31116-00",
-        "contentHash": "s2CrbBYdAZa9aR4dlq2sOfJrRf4uOZHgEYGmWyxW4mz+//0vlGSJxUYAiKUotMwa4+fu+PAh2ANKRdU9o06C3w==",
+        "contentHash": "JAieAWjpAsAKq2OLgJpKHafrk1gxHTq0nSie1sEKAYjnlBhVIx17ypAX1NLhjMJZ3TkqhktOGm/2r0qTXBAqWg==",
         "dependencies": {
           "runtime.win10-arm.Microsoft.Net.Native.SharedLibrary": "2.2.8-rel-31116-00"
         }
@@ -109,17 +114,17 @@
       "runtime.win10-arm.Microsoft.Net.Native.SharedLibrary": {
         "type": "Transitive",
         "resolved": "2.2.8-rel-31116-00",
-        "contentHash": "3F8B17d60HssS/BBlmRs4X8TuvOVRRQjSP8uOhTweZS1ZsmlreKqV9YPXwyN0kpu32StTdqYIt1i9vV4nZZoOQ=="
+        "contentHash": "bdNrkqMK7TUyqJjMJj9sXFpTtJg5+cKmGTPERymWldQ7/OxzoA1VGV4nFFRS4ciycxIqoA9amP0sr5SdTaSjDg=="
       },
       "runtime.win10-arm.Microsoft.Net.UWPCoreRuntimeSdk": {
         "type": "Transitive",
         "resolved": "2.2.14",
-        "contentHash": "gr1abg5qNrM14Ng9NTFuzY/A3BLDQFfWrKgjmzr6AlhUsq/QZ7Hny62rLZ3ONVHSN0Bo0QuwKe2KLmBTLTyItg=="
+        "contentHash": "eEtdvL57LKF3/AKuSqk9bJeUaPm0rPMCs36halkQwyTsaykEwzaV634jxpsg9Oneru4DvFW1vlRISdiW2929jA=="
       },
       "runtime.win10-arm64.Microsoft.Net.Native.Compiler": {
         "type": "Transitive",
         "resolved": "2.2.12-rel-31116-00",
-        "contentHash": "ELSl50UCnJSPeSfwRnXe4S+Ito58dpWhm6pEyxtIMiiuLcJsfr7rTxPR05Pijta5ru4KZu0or5PUePjGgKyC2A==",
+        "contentHash": "Rs9fywhVdnJTqegZnSXJ2v0w7oX3xyZ5P1+v9wNlm7mkSb+dEcxgXwrkqTJe9shmLUOOFz8Dm37LbtIPHNzR1A==",
         "dependencies": {
           "runtime.win10-arm64.Microsoft.Net.Native.SharedLibrary": "2.2.8-rel-31116-00"
         }
@@ -127,12 +132,12 @@
       "runtime.win10-arm64.Microsoft.Net.Native.SharedLibrary": {
         "type": "Transitive",
         "resolved": "2.2.8-rel-31116-00",
-        "contentHash": "mkSKguVkHl8W7/uS8SgXz5t7aI4QvF7BPd+WzcdOdMU5g/gnXmcWZAlSr1RrSTjTS1P3sxOE15XMFJs0nPCI8w=="
+        "contentHash": "mNZPhhxOKUQSgYuBDezHPYFMwP9LYDmVEEHl7bTVAPbfcnxPHdSv6WwJglYlwQRQh+3NSgYRW4WcTxpETkD0AA=="
       },
       "runtime.win10-x64.Microsoft.Net.Native.Compiler": {
         "type": "Transitive",
         "resolved": "2.2.12-rel-31116-00",
-        "contentHash": "ZRYTWtC+lManfqDHmIpqlv/UG6nQfn4URqMEmoc1k/DI1pMBo4jCov5VoFIGHHd1/AXXsK6Hdd2TDbexH0PozQ==",
+        "contentHash": "dAJj40m9Tm6AQ/P7iQxuEN8sVvj6v9TDyulcP7ayvp+FkpR8VyGZWJMSxaMEjr1qVeMRuMCv1JV5DLMCWZvisg==",
         "dependencies": {
           "runtime.win10-x64.Microsoft.Net.Native.SharedLibrary": "2.2.8-rel-31116-00"
         }
@@ -140,17 +145,17 @@
       "runtime.win10-x64.Microsoft.Net.Native.SharedLibrary": {
         "type": "Transitive",
         "resolved": "2.2.8-rel-31116-00",
-        "contentHash": "pt7vQLpa95Cpif7oHXkLPsvcJ6tfdc8bvOxiJzjXlTTOjefsX4xmkSU+buuu/KbE8YDs1VEyxu0zcjpIMuVkmQ=="
+        "contentHash": "kXqhwE+XmgRn9Z1QWkGfIcDKg/pCLJcbRL5w8NWT6jliAx81sjHzquDut3ljPwOC856AUI2WMnBopu0Bf/m4BQ=="
       },
       "runtime.win10-x64.Microsoft.Net.UWPCoreRuntimeSdk": {
         "type": "Transitive",
         "resolved": "2.2.14",
-        "contentHash": "LQ+8pXMZVsd1yEzcYHZvSKTbjjnLZYj5tWCOAOcgzF9ojX8+geT35rAcndhCRJAeAvARgv9/7yapnK86UPzpyQ=="
+        "contentHash": "a/ONxs2DxZcBnlDo7LDtH4t6imrEuSbf9KxWWBUCP+yCquVFyqtWAt2Z4hiT++yOIz2OMZT9Hmv1VzrgecpQkQ=="
       },
       "runtime.win10-x86.Microsoft.Net.Native.Compiler": {
         "type": "Transitive",
         "resolved": "2.2.12-rel-31116-00",
-        "contentHash": "hVlpnwSdqYizm+nigl3t3/fVd/D0COJ4doLJIa66GkNmPSL5VeHCPAynZi+oO9rqCFKDX+Tmbn+NO9zygWJB/A==",
+        "contentHash": "9T8n/l5Ny4rOlL4yGs81wy4AzypMhUgrrtPBqlv46QbKWhHf44EpFKfI6JU+MkJbSh7mZYywBEfmivT0v6gnNA==",
         "dependencies": {
           "runtime.win10-x86.Microsoft.Net.Native.SharedLibrary": "2.2.8-rel-31116-00"
         }
@@ -158,12 +163,12 @@
       "runtime.win10-x86.Microsoft.Net.Native.SharedLibrary": {
         "type": "Transitive",
         "resolved": "2.2.8-rel-31116-00",
-        "contentHash": "A7J5S5ZZZCXexFp6xXG2CaMwZPSahpPdorzx6VbWJzfHDU0x1VvulYd8hSfi/KtJ/fG0tr8mpdnT7NZsrXP7+g=="
+        "contentHash": "5RGA27cl3z0lf9zsctLBjW2GQoGYeBrg8pesqWLQnb1Ch8q8IZ6pyOwWFUsnXGuYW59OyCfoQGzHFq5Q/73EiQ=="
       },
       "runtime.win10-x86.Microsoft.Net.UWPCoreRuntimeSdk": {
         "type": "Transitive",
         "resolved": "2.2.14",
-        "contentHash": "3JRNswnc8LnxAofuv5hq9iRAnZ49w2J5DK/JaLL2uSFRRnaCS9atpXBG+EdpbJHyJxRxDPslkRLkH5ZUOIaCwQ=="
+        "contentHash": "V/hZioMMAwoKZFmfq/SuMA/mfoNFu4+Aedwdld/tpL8ZheehFab0RlAR3pgsPgOWOU+GjyePNIgyUXM5J/Y3Ig=="
       },
       "automationchannel": {
         "type": "Project",
@@ -224,6 +229,7 @@
       "reactnativexaml": {
         "type": "Project",
         "dependencies": {
+          "CDebug": "[0.0.3, )",
           "Microsoft.ReactNative": "[1.0.0, )",
           "Microsoft.UI.Xaml": "[2.8.0, )"
         }
@@ -234,7 +240,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -251,7 +257,7 @@
       "runtime.win10-arm.Microsoft.NETCore.UniversalWindowsPlatform": {
         "type": "Transitive",
         "resolved": "6.2.14",
-        "contentHash": "PXwPeV73TQGLoREzwlZd/FT/xxb3tV6OpjRQdymOPJfMQme/ST9sX3OZAmmIUdio1LaWnNbB600Vtg2XvRItzw=="
+        "contentHash": "TKCMvB+6izAQSl7kWimKU2W9iN7gXSMc1Lah3dpY+/PuUjAfSNvfv2HW/mK3TdmjW631/4S9wWYmplLh6ao91w=="
       }
     },
     "UAP,Version=v10.0.17763/win10-arm-aot": {
@@ -259,7 +265,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -276,7 +282,7 @@
       "runtime.win10-arm-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
         "type": "Transitive",
         "resolved": "6.2.14",
-        "contentHash": "+CthZPP4ssmK5j7NC0S+nqvjJkL0qZ3Z5E272Bhl44GT1qPJzt/jL1rkeA2y2+Qy5YAWe5SRoOhbTzmK1hzxwA=="
+        "contentHash": "4/GjCV7KtJz7is13eUXxIj4AHn8WTqmQ1u6wx7J4piJYkwViMVz0sGvzwXDt5oSSTvVdsDpa/EQUUBtFyGnmbg=="
       }
     },
     "UAP,Version=v10.0.17763/win10-arm64-aot": {
@@ -284,7 +290,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -301,7 +307,7 @@
       "runtime.win10-arm64-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
         "type": "Transitive",
         "resolved": "6.2.14",
-        "contentHash": "evExmzlwZuWfzNvu+HAKQ8sWg5BKqWqvShpFPs6V72s78BzC+8Wl6T+H0rmuF3fZ+W6yhlM8dfusaj+w9D0GhA=="
+        "contentHash": "8QVHVgSh8G9BgNUPaMllx5f8iEM45a52eCooJAQH1Xq+MfnvVXcmpOVmMRLxwY2dRU77ZoiGRCyeAKwqFcnEYQ=="
       }
     },
     "UAP,Version=v10.0.17763/win10-x64": {
@@ -309,7 +315,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -326,7 +332,7 @@
       "runtime.win10-x64.Microsoft.NETCore.UniversalWindowsPlatform": {
         "type": "Transitive",
         "resolved": "6.2.14",
-        "contentHash": "snth4i/ok+LqSSqK5tLVFSbe8RDzIvfJabMXMPoYI+NQCi91mR+7tsTHk3gNEojuZT0i4g1EaFrIwqaW9bmEYA=="
+        "contentHash": "SPmQotZQ5ty+UkHMm76k/0DJpZ663qwXvLjVw/LrNmaIQHa+g+6TjKNAyR0ondKnwqu5oT79RJ2Tk8A0JQqBPQ=="
       }
     },
     "UAP,Version=v10.0.17763/win10-x64-aot": {
@@ -334,7 +340,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -351,7 +357,7 @@
       "runtime.win10-x64-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
         "type": "Transitive",
         "resolved": "6.2.14",
-        "contentHash": "/aFe5hqDpWSiGwM71GI9z6PLa+bxddXmuMWLZ3yVSv2nAJi50WtStB/RnLdXasTNH4JtYpWjQ1tT/fpwRNvFTQ=="
+        "contentHash": "2SPw1ay04TYxrnMs2hxP86j3daB59cnQ8aNPXUcKyon+RA1MN99mWg8V93WDxD82ZDR+citKcM3dxS4oEtDI4g=="
       }
     },
     "UAP,Version=v10.0.17763/win10-x86": {
@@ -359,7 +365,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -376,7 +382,7 @@
       "runtime.win10-x86.Microsoft.NETCore.UniversalWindowsPlatform": {
         "type": "Transitive",
         "resolved": "6.2.14",
-        "contentHash": "GaJmbZkhVAMCNvDSshqXzpTxWPKhENV+Q6A/Z7/lYeywczdCSlExJo+1aJ8/eh9bwKhxRvIj3OZH4JsQsYpRaA=="
+        "contentHash": "twbdvWFcy0wRd/jiZWeiS6Edui76XwmRLHXLJ3uFpBsimu7XOTLJBMycG11MxdcAjFMa3LnPUkTgiI63wM1b+w=="
       }
     },
     "UAP,Version=v10.0.17763/win10-x86-aot": {
@@ -384,7 +390,7 @@
         "type": "Direct",
         "requested": "[6.2.14, )",
         "resolved": "6.2.14",
-        "contentHash": "20T91+/vQhL8c//GFU9qkNnys2BVdzAr9smULuP4p9csXwYjuoqxwAjNxLH0FvApGdB3s0sGhHkSeLg3IQBdMw==",
+        "contentHash": "7Mi4cS8JQ7gqm+W+SRCq13c2Rr0yZTuczC9EbV6gRigE2ZhQalnLHyat0ZshT5HDMSkFDxTyjwZymUgFuv3+eg==",
         "dependencies": {
           "Microsoft.NETCore.Platforms": "2.1.0",
           "Microsoft.Net.Native.Compiler": "2.2.12-rel-31116-00",
@@ -401,7 +407,7 @@
       "runtime.win10-x86-aot.Microsoft.NETCore.UniversalWindowsPlatform": {
         "type": "Transitive",
         "resolved": "6.2.14",
-        "contentHash": "Z8Y39jw4fACg2/spREHZp2Edeay/nv2ZCXpk9IE1C7QwLSe7lQ6B05Lpq84fFCwwV+z6NiAPIdivj03LLEGv7A=="
+        "contentHash": "3nklK7zt8pQ4/okXv4jA/HlUx/xmnyS/YRKJh19BzXKKhYk/EnRT1zoNcvQDJjhyUZXquffbcxHyBbjd2V2GNQ=="
       }
     }
   }
diff --git a/packages/playground/windows/ExperimentalFeatures.props b/packages/playground/windows/ExperimentalFeatures.props
index b60bc810028..3184609749e 100644
--- a/packages/playground/windows/ExperimentalFeatures.props
+++ b/packages/playground/windows/ExperimentalFeatures.props
@@ -18,8 +18,8 @@
   </PropertyGroup>
 
   <PropertyGroup Label="WinUI3 for fabric" Condition="'$(SolutionName)'=='playground-composition'">
-    <UseFabric>true</UseFabric>
-    <UseWinUI3>true</UseWinUI3>
+    <RnwNewArch>true</RnwNewArch>
+    <UseExperimentalNuget>false</UseExperimentalNuget>
   </PropertyGroup>
 
 </Project>
diff --git a/packages/playground/windows/playground-composition/Playground-Composition.vcxproj b/packages/playground/windows/playground-composition/Playground-Composition.vcxproj
index ce39adee7b7..d1f2ec0171e 100644
--- a/packages/playground/windows/playground-composition/Playground-Composition.vcxproj
+++ b/packages/playground/windows/playground-composition/Playground-Composition.vcxproj
@@ -12,7 +12,8 @@
     <MinimumVisualStudioVersion>17.0</MinimumVisualStudioVersion>
     <AppxPackage>false</AppxPackage>
   </PropertyGroup>
-  <PropertyGroup Label="FromWinUI3_VSIX" Condition="'$(UseWinUI3)'=='true'">
+  <!-- This isn't necessary in the current cpp-app template, but looks like maybe it's needed for XAML hosting support to work properly. -->
+  <PropertyGroup Label="FromWinUI3_VSIX">
     <AppContainerApplication>false</AppContainerApplication>
     <ApplicationType>Windows Store</ApplicationType>
     <ApplicationTypeRevision>10.0</ApplicationTypeRevision>
@@ -98,11 +99,6 @@
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-  </ItemDefinitionGroup>
   <ItemGroup>
     <ClInclude Include="AutolinkedNativeModules.g.h" />
     <ClInclude Include="pch.h" />
diff --git a/packages/playground/windows/playground/packages.lock.json b/packages/playground/windows/playground/packages.lock.json
index ce8abc99a51..6694b7d65af 100644
--- a/packages/playground/windows/playground/packages.lock.json
+++ b/packages/playground/windows/playground/packages.lock.json
@@ -2,29 +2,153 @@
   "version": 1,
   "dependencies": {
     "native,Version=v0.0": {
-      "Microsoft.Windows.CppWinRT": {
+      "Microsoft.JavaScript.Hermes": {
         "type": "Direct",
-        "requested": "[2.0.210312.4, 2.0.210312.4]",
-        "resolved": "2.0.210312.4",
-        "contentHash": "uRxz7Z8Scm7A2JjaaxCzQWTMrQC9RvXYhb7RU8pSqGo/0i0aPJszUeA3N6EhcJU5+FsDr2xzk2iln0x2Lwa6AA=="
+        "requested": "[0.1.23, )",
+        "resolved": "0.1.23",
+        "contentHash": "cA9t1GjY4Yo0JD1AfA//e1lOwk48hLANfuX6GXrikmEBNZVr2TIX5ONJt5tqCnpZyLz6xGiPDgTfFNKbSfb21g=="
       },
       "Microsoft.UI.Xaml": {
         "type": "Direct",
-        "requested": "[2.8.0, 2.8.0]",
+        "requested": "[2.8.0, )",
         "resolved": "2.8.0",
-        "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA=="
+        "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
+        "dependencies": {
+          "Microsoft.Web.WebView2": "1.0.1264.42"
+        }
       },
-      "Microsoft.WinUI": {
+      "Microsoft.Windows.CppWinRT": {
         "type": "Direct",
-        "requested": "[3.0.0-preview4.210210.4, 3.0.0-preview4.210210.4]",
-        "resolved": "3.0.0-preview4.210210.4",
-        "contentHash": "fMo1Llbprv3+7nVyUvBxc/lQtMmwBFCGHdeH7sTPIeFKPneNOs0qW2XqnYBorGRRitbPUxxmLKgxOM8zR5dAgA=="
+        "requested": "[2.0.230706.1, )",
+        "resolved": "2.0.230706.1",
+        "contentHash": "l0D7oCw/5X+xIKHqZTi62TtV+1qeSz7KVluNFdrJ9hXsst4ghvqQ/Yhura7JqRdZWBXAuDS0G0KwALptdoxweQ=="
       },
-      "Microsoft.JavaScript.Hermes": {
-        "type": "Direct",
-        "requested": "[0.1.15, 0.1.15]",
-        "resolved": "0.1.15",
-        "contentHash": "My/u5RvxoymtwWokoweU6iVpuP79w271UjadcmSNqnQ9ESIv00tlVP4sHnIiN3t2lJNDeciyE1EVF4swGPECKQ=="
+      "boost": {
+        "type": "Transitive",
+        "resolved": "1.83.0",
+        "contentHash": "cy53VNMzysEMvhBixDe8ujPk67Fcj3v6FPHQnH91NYJNLHpc6jxa2xq9ruCaaJjE4M3YrGSHDi4uUSTGBWw6EQ=="
+      },
+      "Microsoft.Build.Tasks.Git": {
+        "type": "Transitive",
+        "resolved": "1.1.1",
+        "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q=="
+      },
+      "Microsoft.SourceLink.Common": {
+        "type": "Transitive",
+        "resolved": "1.1.1",
+        "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg=="
+      },
+      "Microsoft.SourceLink.GitHub": {
+        "type": "Transitive",
+        "resolved": "1.1.1",
+        "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
+        "dependencies": {
+          "Microsoft.Build.Tasks.Git": "1.1.1",
+          "Microsoft.SourceLink.Common": "1.1.1"
+        }
+      },
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+      },
+      "common": {
+        "type": "Project",
+        "dependencies": {
+          "boost": "[1.83.0, )"
+        }
+      },
+      "fmt": {
+        "type": "Project"
+      },
+      "folly": {
+        "type": "Project",
+        "dependencies": {
+          "boost": "[1.83.0, )",
+          "fmt": "[1.0.0, )"
+        }
+      },
+      "microsoft.reactnative": {
+        "type": "Project",
+        "dependencies": {
+          "Common": "[1.0.0, )",
+          "Folly": "[1.0.0, )",
+          "Microsoft.JavaScript.Hermes": "[0.1.23, )",
+          "Microsoft.SourceLink.GitHub": "[1.1.1, )",
+          "Microsoft.UI.Xaml": "[2.8.0, )",
+          "ReactCommon": "[1.0.0, )",
+          "boost": "[1.83.0, )"
+        }
+      },
+      "playgroundnativemodules": {
+        "type": "Project",
+        "dependencies": {
+          "Microsoft.ReactNative": "[1.0.0, )",
+          "Microsoft.UI.Xaml": "[2.8.0, )"
+        }
+      },
+      "reactcommon": {
+        "type": "Project",
+        "dependencies": {
+          "Folly": "[1.0.0, )",
+          "boost": "[1.83.0, )"
+        }
+      },
+      "reactnativepicker": {
+        "type": "Project",
+        "dependencies": {
+          "Microsoft.ReactNative": "[1.0.0, )",
+          "Microsoft.UI.Xaml": "[2.8.0, )"
+        }
+      }
+    },
+    "native,Version=v0.0/win10-arm": {
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+      }
+    },
+    "native,Version=v0.0/win10-arm-aot": {
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+      }
+    },
+    "native,Version=v0.0/win10-arm64-aot": {
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+      }
+    },
+    "native,Version=v0.0/win10-x64": {
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+      }
+    },
+    "native,Version=v0.0/win10-x64-aot": {
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+      }
+    },
+    "native,Version=v0.0/win10-x86": {
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
+      }
+    },
+    "native,Version=v0.0/win10-x86-aot": {
+      "Microsoft.Web.WebView2": {
+        "type": "Transitive",
+        "resolved": "1.0.1264.42",
+        "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
       }
     }
   }
diff --git a/packages/sample-app-fabric/windows/ExperimentalFeatures.props b/packages/sample-app-fabric/windows/ExperimentalFeatures.props
index be73cb5575a..efcaa321a1f 100644
--- a/packages/sample-app-fabric/windows/ExperimentalFeatures.props
+++ b/packages/sample-app-fabric/windows/ExperimentalFeatures.props
@@ -2,8 +2,8 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
   <PropertyGroup Label="Microsoft.ReactNative Experimental Features">
-    <UseFabric>true</UseFabric>
-    <UseWinUI3>true</UseWinUI3>
+    <RnwNewArch>true</RnwNewArch>
+    <UseExperimentalNuget>false</UseExperimentalNuget>
 
     <ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
   </PropertyGroup>
diff --git a/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj b/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj
index 7f89cb8989e..415ba11b336 100644
--- a/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj
+++ b/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj
@@ -92,11 +92,6 @@
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-  </ItemDefinitionGroup>
   <PropertyGroup Label="UserMacros" />
   <ItemGroup>
     <ClInclude Include="SampleAppFabric.h" />
diff --git a/packages/sample-custom-component/package.json b/packages/sample-custom-component/package.json
index d2467efa54e..b80ada060c3 100644
--- a/packages/sample-custom-component/package.json
+++ b/packages/sample-custom-component/package.json
@@ -15,7 +15,8 @@
     "jsSrcsDir": "src",
     "windows": {
       "generators": "componentsWindows",
-      "namespace": "winrt::SampleCustomComponent::Codegen"
+      "namespace": "winrt::SampleCustomComponent::Codegen",
+      "outputDirectory": "windows/SampleCustomComponent/codegen"
     }
   },
   "dependencies": {
@@ -52,4 +53,4 @@
   "engines": {
     "node": ">=18"
   }
-}
+}
\ No newline at end of file
diff --git a/packages/sample-custom-component/windows/ExperimentalFeatures.props b/packages/sample-custom-component/windows/ExperimentalFeatures.props
index 2771503e5a3..efcaa321a1f 100644
--- a/packages/sample-custom-component/windows/ExperimentalFeatures.props
+++ b/packages/sample-custom-component/windows/ExperimentalFeatures.props
@@ -2,8 +2,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
   <PropertyGroup Label="Microsoft.ReactNative Experimental Features">
-    <UseFabric>true</UseFabric>
-    <UseWinUI3>true</UseWinUI3>
+    <RnwNewArch>true</RnwNewArch>
     <UseExperimentalNuget>false</UseExperimentalNuget>
 
     <ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.cpp b/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.cpp
index 400c9cae476..5a9c2fc7d56 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.cpp
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.cpp
@@ -1,6 +1,13 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
 #include "pch.h"
 
-#include <NativeModules.h>
+#include "DrawingIsland.h"
+
+#include "DrawingIsland.g.cpp"
+
+#ifdef RNW_NEW_ARCH
+
 #include <strsafe.h>
 #include <winrt/Microsoft.UI.Composition.SystemBackdrops.h>
 #include <winrt/Microsoft.UI.Composition.h>
@@ -11,10 +18,6 @@
 #include <winrt/Windows.UI.Composition.h>
 #include <winrt/Windows.UI.h>
 
-#include "DrawingIsland.h"
-
-#include "DrawingIsland.g.cpp"
-
 namespace winrt {
 using namespace winrt::Windows::Foundation;
 using namespace winrt::Windows::Foundation::Collections;
@@ -967,3 +970,5 @@ void RegisterDrawingIslandComponentView(winrt::Microsoft::ReactNative::IReactPac
             });
       });
 }
+
+#endif // #ifdef RNW_NEW_ARCH
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.h b/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.h
index 8e35f00e349..74371e90c5b 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.h
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.h
@@ -1,4 +1,17 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
+#pragma once
+
 #include "pch.h"
+#include "resource.h"
+
+#include "DrawingIsland.g.h"
+
+#include "NativeModules.h"
+
+#include "codegen/react/components/SampleCustomComponent/DrawingIsland.g.h"
+
+#ifdef RNW_NEW_ARCH
 
 #include <strsafe.h>
 #include <winrt/Microsoft.ReactNative.Composition.Experimental.h>
@@ -12,11 +25,6 @@
 #include <winrt/Windows.UI.Composition.h>
 #include <winrt/Windows.UI.h>
 
-#include "../../codegen/react/components/SampleCustomComponent/DrawingIsland.g.h"
-
-#include "DrawingIsland.g.h"
-#include <NativeModules.h>
-
 namespace winrt {
 using namespace winrt::Windows::Foundation;
 using namespace winrt::Windows::Foundation::Collections;
@@ -250,3 +258,5 @@ struct DrawingIsland : DrawingIslandT<DrawingIsland, implementation::DrawingIsla
 } // namespace winrt::SampleCustomComponent::factory_implementation
 
 void RegisterDrawingIslandComponentView(winrt::Microsoft::ReactNative::IReactPackageBuilder const &packageBuilder);
+
+#endif // #ifdef RNW_NEW_ARCH
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.idl b/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.idl
index 6b65a2f75d5..d65535f8e0e 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.idl
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/DrawingIsland.idl
@@ -1,6 +1,6 @@
 // Copyright (c) Microsoft Corporation.
 // Licensed under the MIT License.
-
+#ifdef RNW_NEW_ARCH
 namespace SampleCustomComponent
 {
   [default_interface]
@@ -10,4 +10,5 @@ namespace SampleCustomComponent
   {
     DrawingIsland(Microsoft.UI.Composition.Compositor compositor);
   }
-}
+} // namespace SampleCustomComponent
+#endif // #ifdef RNW_NEW_ARCH
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.cpp b/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.cpp
index 85853547610..a088e38cb7a 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.cpp
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.cpp
@@ -1,9 +1,10 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
 #include "pch.h"
 
 #include "MovingLight.h"
 
-#include "../../codegen/react/components/SampleCustomComponent/MovingLight.g.h"
-
+#ifdef RNW_NEW_ARCH
 #include <winrt/Microsoft.ReactNative.Composition.Input.h>
 #include <winrt/Microsoft.UI.Composition.h>
 #include <winrt/Windows.UI.h>
@@ -102,3 +103,5 @@ void RegisterMovingLightNativeComponent(
 }
 
 } // namespace winrt::SampleCustomComponent
+
+#endif // #ifdef RNW_NEW_ARCH
\ No newline at end of file
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.h b/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.h
index cd93d24bae2..82ee5ad620f 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.h
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/MovingLight.h
@@ -1,3 +1,5 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
 #pragma once
 
 #include "pch.h"
@@ -5,9 +7,15 @@
 
 #include "NativeModules.h"
 
+#include "codegen/react/components/SampleCustomComponent/MovingLight.g.h"
+
+#ifdef RNW_NEW_ARCH
+
 namespace winrt::SampleCustomComponent {
 
 void RegisterMovingLightNativeComponent(
     winrt::Microsoft::ReactNative::IReactPackageBuilder const &packageBuilder) noexcept;
 
 } // namespace winrt::SampleCustomComponent
+
+#endif // #ifdef RNW_NEW_ARCH
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.cpp b/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.cpp
index 4e39a8accc3..16d46adb132 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.cpp
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.cpp
@@ -1,3 +1,5 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
 #include "pch.h"
 
 #include "ReactPackageProvider.h"
@@ -15,8 +17,10 @@ namespace winrt::SampleCustomComponent::implementation {
 void ReactPackageProvider::CreatePackage(IReactPackageBuilder const &packageBuilder) noexcept {
   AddAttributedModules(packageBuilder, true);
 
+#ifdef RNW_NEW_ARCH
   RegisterDrawingIslandComponentView(packageBuilder);
   RegisterMovingLightNativeComponent(packageBuilder);
+#endif // #ifdef RNW_NEW_ARCH
 }
 
 } // namespace winrt::SampleCustomComponent::implementation
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.h b/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.h
index 485d769e828..c6dafb9cbc2 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.h
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.h
@@ -1,3 +1,5 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
 #pragma once
 
 #include "ReactPackageProvider.g.h"
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.idl b/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.idl
index 2a250fcbc66..7ef96c98572 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.idl
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/ReactPackageProvider.idl
@@ -1,3 +1,6 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
+
 namespace SampleCustomComponent
 {
   [webhosthidden]
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj b/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj
index 4395289749e..81665a9aeaf 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj
@@ -97,11 +97,6 @@
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-  </ItemDefinitionGroup>
   <PropertyGroup Label="UserMacros" />
   <ItemGroup>
     <ClInclude Include="DrawingIsland.h">
diff --git a/packages/sample-custom-component/codegen/.clang-format b/packages/sample-custom-component/windows/SampleCustomComponent/codegen/.clang-format
similarity index 100%
rename from packages/sample-custom-component/codegen/.clang-format
rename to packages/sample-custom-component/windows/SampleCustomComponent/codegen/.clang-format
diff --git a/packages/sample-custom-component/codegen/react/components/SampleCustomComponent/DrawingIsland.g.h b/packages/sample-custom-component/windows/SampleCustomComponent/codegen/react/components/SampleCustomComponent/DrawingIsland.g.h
similarity index 98%
rename from packages/sample-custom-component/codegen/react/components/SampleCustomComponent/DrawingIsland.g.h
rename to packages/sample-custom-component/windows/SampleCustomComponent/codegen/react/components/SampleCustomComponent/DrawingIsland.g.h
index dc008038e3e..8ae7d3df71f 100644
--- a/packages/sample-custom-component/codegen/react/components/SampleCustomComponent/DrawingIsland.g.h
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/codegen/react/components/SampleCustomComponent/DrawingIsland.g.h
@@ -4,10 +4,16 @@
  */
 #pragma once
 
-#include <JSValueComposition.h>
 #include <NativeModules.h>
+
+#ifdef RNW_NEW_ARCH
+#include <JSValueComposition.h>
+
 #include <winrt/Microsoft.ReactNative.Composition.h>
 #include <winrt/Microsoft.UI.Composition.h>
+#endif // #ifdef RNW_NEW_ARCH
+
+#ifdef RNW_NEW_ARCH
 
 namespace winrt::SampleCustomComponent::Codegen {
 
@@ -163,3 +169,5 @@ void RegisterDrawingIslandNativeComponent(
 }
 
 } // namespace winrt::SampleCustomComponent::Codegen
+
+#endif // #ifdef RNW_NEW_ARCH
diff --git a/packages/sample-custom-component/codegen/react/components/SampleCustomComponent/MovingLight.g.h b/packages/sample-custom-component/windows/SampleCustomComponent/codegen/react/components/SampleCustomComponent/MovingLight.g.h
similarity index 98%
rename from packages/sample-custom-component/codegen/react/components/SampleCustomComponent/MovingLight.g.h
rename to packages/sample-custom-component/windows/SampleCustomComponent/codegen/react/components/SampleCustomComponent/MovingLight.g.h
index 35859463a4f..470779b9a87 100644
--- a/packages/sample-custom-component/codegen/react/components/SampleCustomComponent/MovingLight.g.h
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/codegen/react/components/SampleCustomComponent/MovingLight.g.h
@@ -4,10 +4,16 @@
  */
 #pragma once
 
-#include <JSValueComposition.h>
 #include <NativeModules.h>
+
+#ifdef RNW_NEW_ARCH
+#include <JSValueComposition.h>
+
 #include <winrt/Microsoft.ReactNative.Composition.h>
 #include <winrt/Microsoft.UI.Composition.h>
+#endif // #ifdef RNW_NEW_ARCH
+
+#ifdef RNW_NEW_ARCH
 
 namespace winrt::SampleCustomComponent::Codegen {
 
@@ -219,3 +225,5 @@ void RegisterMovingLightNativeComponent(
 }
 
 } // namespace winrt::SampleCustomComponent::Codegen
+
+#endif // #ifdef RNW_NEW_ARCH
diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/pch.cpp b/packages/sample-custom-component/windows/SampleCustomComponent/pch.cpp
index 1d9f38c57d6..c084a84a60a 100644
--- a/packages/sample-custom-component/windows/SampleCustomComponent/pch.cpp
+++ b/packages/sample-custom-component/windows/SampleCustomComponent/pch.cpp
@@ -1 +1,4 @@
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT License.
+
 #include "pch.h"
diff --git a/vnext/Desktop.ABITests/React.Windows.Desktop.ABITests.vcxproj b/vnext/Desktop.ABITests/React.Windows.Desktop.ABITests.vcxproj
index 125a2c46232..1a96c946362 100644
--- a/vnext/Desktop.ABITests/React.Windows.Desktop.ABITests.vcxproj
+++ b/vnext/Desktop.ABITests/React.Windows.Desktop.ABITests.vcxproj
@@ -38,7 +38,10 @@
     <RootNamespace>ReactWindowsDesktopABITests</RootNamespace>
     <ProjectSubType>NativeUnitTestProject</ProjectSubType>
     <V8AppPlatform>win32</V8AppPlatform>
+    <!-- Default enable WinUI3. -->
     <UseWinUI3 Condition="'$(UseWinUI3)' == ''">true</UseWinUI3>
+    <!-- Desktop can use WinUI3 in Old Arch so disable the check. -->
+    <ForcePaperUseWinUI3 Condition="'$(UseWinUI3)'=='true'">true</ForcePaperUseWinUI3>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
diff --git a/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj b/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj
index f27a57f67bd..39acd6f3c37 100644
--- a/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj
+++ b/vnext/Desktop.IntegrationTests/React.Windows.Desktop.IntegrationTests.vcxproj
@@ -31,7 +31,10 @@
     <ProjectName>React.Windows.Desktop.IntegrationTests</ProjectName>
     <CppWinRTOptimized>true</CppWinRTOptimized>
     <V8AppPlatform>win32</V8AppPlatform>
+    <!-- Default enable WinUI3. -->
     <UseWinUI3 Condition="'$(UseWinUI3)' == ''">true</UseWinUI3>
+    <!-- Desktop can use WinUI3 in Old Arch so disable the check. -->
+    <ForcePaperUseWinUI3 Condition="'$(UseWinUI3)'=='true'">true</ForcePaperUseWinUI3>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
diff --git a/vnext/Desktop/React.Windows.Desktop.vcxproj b/vnext/Desktop/React.Windows.Desktop.vcxproj
index 6a1789e5067..67b07672bc0 100644
--- a/vnext/Desktop/React.Windows.Desktop.vcxproj
+++ b/vnext/Desktop/React.Windows.Desktop.vcxproj
@@ -60,8 +60,12 @@
     <UseV8>true</UseV8>
     <V8AppPlatform>win32</V8AppPlatform>
     <HermesCompileRtti>false</HermesCompileRtti>
-    <IncludeFabricInterface Condition="'$(IncludeFabricInterface)' == ''">true</IncludeFabricInterface>
-    <UseWinUI3 Condition="'$(UseWinUI3)' == ''">true</UseWinUI3>
+    <!-- Default include the Fabric interface. -->
+    <IncludeFabricInterface Condition="'$(IncludeFabricInterface)'==''">true</IncludeFabricInterface>
+    <!-- Default enable WinUI3, if unset but also check for IncludeFabricInterface as it requires WinUI3 now to compile. -->
+    <UseWinUI3 Condition="'$(IncludeFabricInterface)'=='true' or '$(UseWinUI3)'==''">true</UseWinUI3>
+    <!-- Desktop can use WinUI3 in Old Arch so disable the check. -->
+    <ForcePaperUseWinUI3 Condition="'$(UseWinUI3)'=='true'">true</ForcePaperUseWinUI3>
     <!-- Prevents Microsoft.Web.WebView2.Core.dll from being added to ReferenceCopyLocalPaths -->
     <WebView2EnableCsWinRTProjectionExcludeCoreRef>true</WebView2EnableCsWinRTProjectionExcludeCoreRef>
   </PropertyGroup>
diff --git a/vnext/ExperimentalFeatures.props b/vnext/ExperimentalFeatures.props
index f74a2618456..02dae28584a 100644
--- a/vnext/ExperimentalFeatures.props
+++ b/vnext/ExperimentalFeatures.props
@@ -1,6 +1,6 @@
 <Project>
   <PropertyGroup Condition="'$(SolutionName)'=='ReactWindows-Desktop'">
-    <UseFabric>false</UseFabric>
+    <RnwNewArch>false</RnwNewArch>
   </PropertyGroup>
   <PropertyGroup>
     <ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
diff --git a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj
index 9e8df4b4325..8896653a690 100644
--- a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj
+++ b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj
@@ -18,7 +18,6 @@
     <CppWinRTLibs>true</CppWinRTLibs>
     <BuildMSRNCxxModule>false</BuildMSRNCxxModule>
     <BuildMSRNCxxReactCommon>false</BuildMSRNCxxReactCommon>
-    <DesktopCompatible Condition="'$(UseWinUI3)'=='true'">true</DesktopCompatible>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <Import Project="$(ReactNativeWindowsDir)PropertySheets\React.Cpp.props" />
diff --git a/vnext/PropertySheets/Autolink.props b/vnext/PropertySheets/Autolink.props
index 9c8b4ea487d..a58a0721d8d 100644
--- a/vnext/PropertySheets/Autolink.props
+++ b/vnext/PropertySheets/Autolink.props
@@ -7,7 +7,7 @@
 
   <PropertyGroup>
     <RunAutolinkCheck Condition="'$(RunAutolinkCheck)' == ''">true</RunAutolinkCheck>
-    <AutolinkCommand Condition="'$(AutolinkCommand)' == ''">npx @react-native-community/cli autolink-windows</AutolinkCommand>
+    <AutolinkCommand Condition="'$(AutolinkCommand)' == ''">npx --yes @react-native-community/cli autolink-windows</AutolinkCommand>
     <AutolinkCommandWorkingDir Condition="'$(AutolinkCommandWorkingDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(ProjectDir), 'package.json'))</AutolinkCommandWorkingDir>
     <AutolinkCommandArgs Condition="'$(AutolinkCommandArgs)' == '' And '$(SolutionPath)' != '' And '$(SolutionPath)' != '*Undefined*' And '$(ProjectPath)' != ''">--check --sln "$([MSBuild]::MakeRelative($(AutolinkCommandWorkingDir), $(SolutionPath)))" --proj "$([MSBuild]::MakeRelative($(AutolinkCommandWorkingDir), $(ProjectPath)))"</AutolinkCommandArgs>
     <AutolinkCommandArgs Condition="'$(AutolinkCommandArgs)' == ''">--check</AutolinkCommandArgs>
diff --git a/vnext/PropertySheets/Codegen.props b/vnext/PropertySheets/Codegen.props
index cc7310c2d79..78d3ad39967 100644
--- a/vnext/PropertySheets/Codegen.props
+++ b/vnext/PropertySheets/Codegen.props
@@ -7,7 +7,7 @@
 
   <PropertyGroup>
     <RunCodegenWindows Condition="'$(RunCodegenWindows)' == ''">true</RunCodegenWindows>
-    <CodegenCommand Condition="'$(CodegenCommand)' == ''">npx @react-native-community/cli codegen-windows</CodegenCommand>
+    <CodegenCommand Condition="'$(CodegenCommand)' == ''">npx --yes @react-native-community/cli codegen-windows</CodegenCommand>
     <CodegenCommandWorkingDir Condition="'$(CodegenCommandWorkingDir)' == ''">$([MSBuild]::GetDirectoryNameOfFileAbove($(ProjectDir), 'package.json'))</CodegenCommandWorkingDir>
     <CodegenCommandArgs Condition="'$(CodegenCommandArgs)' == ''">--logging</CodegenCommandArgs>
   </PropertyGroup>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.Common.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.Common.props
index 3cf960cbc93..c24d2516e0f 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.Common.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.Common.props
@@ -8,21 +8,8 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Target Name="EnsureUseHermes" BeforeTargets="PrepareForBuild" Condition="'$(UseHermes)' == 'false'">
-    <Warning Text="Property 'UseHermes' was set to 'false'. Projects built against Microsoft.ReactNative.Composition require Hermes and it will be set to true." />
+  <Target Name="EnsureRnwNewArch" BeforeTargets="PrepareForBuild" Condition="'$(RnwNewArch)'!='true'">
+    <Error Text="Property 'RnwNewArch' was not set to 'true'. Projects built against Microsoft.ReactNative.Composition require 'RnwNewArch' to be 'true'." />
   </Target>
-
-  <PropertyGroup>
-    <UseHermes>true</UseHermes>
-  </PropertyGroup>
-
-  <Target Name="EnsureUseWinUI3" BeforeTargets="PrepareForBuild" Condition="'$(UseWinUI3)' == 'false'">
-    <Warning Text="Property 'UseWinUI3' was set to 'false'. Projects built against Microsoft.ReactNative.Composition require UseWinUI3 and it will be set to true." />
-  </Target>
-
-  <PropertyGroup>
-    <UseWinUI3>true</UseWinUI3>
-  </PropertyGroup>
-
   <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Common.props" />
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.props
index 83d71c53693..ab780acbf7c 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.props
@@ -13,7 +13,15 @@
   <Import Project="$(ProjectDir)\AutolinkedNativeModules.g.props"
           Condition="Exists('$(ProjectDir)\AutolinkedNativeModules.g.props')" />
 
+  <!-- Check that Microsoft.ReactNative.WindowsSdk.Default.props has already been imported. -->
+  <Target Name="EnsureRnwSdkDefaultsSetTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwSdkDefaultsSet)'!='true'">
+    <Warning Text="Property `RnwSdkDefaultsSet` was not set. Please ensure your project imports 'Microsoft.ReactNative.WindowsSdk.Default.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import common props sheets common to all Composition projects. -->
   <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Composition.Common.props" />
+  
+  <!-- Set props and import specific prop sheets for this kind of project. -->
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Appx.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Autolink.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Codegen.props" />
@@ -22,4 +30,8 @@
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\WinUI.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\CppAppConsumeCSharpModule.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\PackageVersionDefinitions.props" />
+
+  <PropertyGroup>
+    <RnwExternalPropsLoaded>$(MSBuildThisFile)</RnwExternalPropsLoaded>
+  </PropertyGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets
index 968e0a2b2df..e4877c43c58 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppApp.targets
@@ -8,7 +8,16 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Check that the correct props have already been imported. -->
+  <Target Name="EnsureRnwExternalPropsLoadedTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwExternalPropsLoaded)'!='Microsoft.ReactNative.Composition.CppApp.props'">
+    <Warning Text="Property `RnwExternalPropsLoaded` was incorrectly set to '$(RnwExternalPropsLoaded)'. Please ensure your project imports 'Microsoft.ReactNative.Composition.CppApp.props' before importing this prop sheet." />
+  </Target>
+
   <!-- Starting with the base of the UWP Cpp targets for now (until we need to start differentiating). -->
+  <PropertyGroup>
+    <!-- Set this to avoid the warning about loading the wrong target file. -->
+    <RnwExternalPropsLoaded>Microsoft.ReactNative.Uwp.CppApp.props</RnwExternalPropsLoaded>
+  </PropertyGroup>
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppApp.targets" />
 
   <ItemGroup>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props
index f9f20164222..ba683e758fd 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props
@@ -8,6 +8,15 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Check that Microsoft.ReactNative.WindowsSdk.Default.props has already been imported. -->
+  <Target Name="EnsureRnwSdkDefaultsSetTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwSdkDefaultsSet)'!='true'">
+    <Warning Text="Property `RnwSdkDefaultsSet` was not set. Please ensure your project imports 'Microsoft.ReactNative.WindowsSdk.Default.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import common props sheets common to all Composition projects. -->
+  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Composition.Common.props" />
+
+  <!-- Set props and import specific prop sheets for this kind of project. -->
   <PropertyGroup>
     <!--
       Define SkipAddPriPayloadFilesToCopyToOutputDirectoryItems=true and GenerateLibraryLayout=false to avoid
@@ -16,9 +25,13 @@
     <SkipAddPriPayloadFilesToCopyToOutputDirectoryItems>true</SkipAddPriPayloadFilesToCopyToOutputDirectoryItems>
     <GenerateLibraryLayout>false</GenerateLibraryLayout>
   </PropertyGroup>
-  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Composition.Common.props" />
+
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Codegen.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\NuGet.Cpp.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\WinUI.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\PackageVersionDefinitions.props" />
+
+  <PropertyGroup>
+    <RnwExternalPropsLoaded>$(MSBuildThisFile)</RnwExternalPropsLoaded>
+  </PropertyGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.targets b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.targets
index fe6f1963960..b97e28e2c05 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.targets
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.targets
@@ -8,8 +8,18 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Check that the correct props have already been imported. -->
+  <Target Name="EnsureRnwExternalPropsLoadedTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwExternalPropsLoaded)'!='Microsoft.ReactNative.Composition.CppLib.props'">
+    <Warning Text="Property `RnwExternalPropsLoaded` was incorrectly set to '$(RnwExternalPropsLoaded)'. Please ensure your project imports 'Microsoft.ReactNative.Composition.CppLib.props' before importing this prop sheet." />
+  </Target>
+
   <!-- Starting with the base of the UWP Cpp targets for now (until we need to start differentiating). -->
+  <PropertyGroup>
+    <!-- Set this to avoid the warning about loading the wrong target file. -->
+    <RnwExternalPropsLoaded>Microsoft.ReactNative.Uwp.CppLib.props</RnwExternalPropsLoaded>
+  </PropertyGroup>
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Uwp.CppLib.targets" />
+
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Codegen.targets" />
 
   <ItemGroup>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Cpp.PackageReferences.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Cpp.PackageReferences.props
index 587564bdb20..69a19fdaa31 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Cpp.PackageReferences.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Cpp.PackageReferences.props
@@ -6,7 +6,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <!-- Only include Microsoft.ReactNative.* NuGet packages that C++ (app and lib) projects need when using UseExperimentalNuget. -->
   <Choose>
-    <When Condition="'$(UseFabric)' == 'true'">
+    <When Condition="'$(RnwNewArch)' == 'true'">
       <ItemGroup>
         <PackageReference Include="Microsoft.ReactNative" Version="$(ReactNativeWindowsVersion)-Fabric" />
         <PackageReference Include="Microsoft.ReactNative.Cxx" Version="$(ReactNativeWindowsVersion)-Fabric" />
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.props b/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.props
index 705d5d11fb4..82d6f356c6a 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.props
@@ -8,10 +8,16 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ImportGroup Condition="'$(UseFabric)' == 'true'">
+
+  <!-- Check that Microsoft.ReactNative.WindowsSdk.Default.props has already been imported. -->
+  <Target Name="EnsureRnwSdkDefaultsSetTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwSdkDefaultsSet)' != 'true'">
+    <Warning Text="Property `RnwSdkDefaultsSet` was not set. Please ensure your project imports 'Microsoft.ReactNative.WindowsSdk.Default.props' before importing this prop sheet." />
+  </Target>
+  
+  <ImportGroup Condition="'$(RnwNewArch)'=='true'">
     <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Composition.CppLib.props" />
   </ImportGroup>
-  <ImportGroup Condition="'$(UseFabric)' != 'true'">
+  <ImportGroup Condition="'$(RnwNewArch)'!='true'">
     <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.CppLib.props" />
   </ImportGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.targets b/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.targets
index eae06c9f12f..7ff7d2e32ff 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.targets
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.CppLib.targets
@@ -8,10 +8,10 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ImportGroup Condition="'$(UseFabric)' == 'true'">
+  <ImportGroup Condition="'$(RnwNewArch)'=='true'">
     <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Composition.CppLib.targets" />
   </ImportGroup>
-  <ImportGroup Condition="'$(UseFabric)' != 'true'">
+  <ImportGroup Condition="'$(RnwNewArch)'!='true'">
     <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.CppLib.targets" />
   </ImportGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props
index c2139a2c86d..ae31ae7efa5 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.props
@@ -13,14 +13,26 @@
   <Import Project="$(ProjectDir)\AutolinkedNativeModules.g.props"
           Condition="Exists('$(ProjectDir)\AutolinkedNativeModules.g.props')" />
 
+  <!-- Check that Microsoft.ReactNative.WindowsSdk.Default.props has already been imported. -->
+  <Target Name="EnsureRnwSdkDefaultsSetTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwSdkDefaultsSet)'!='true'">
+    <Warning Text="Property `RnwSdkDefaultsSet` was not set. Please ensure your project imports 'Microsoft.ReactNative.WindowsSdk.Default.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import common props sheets common to all UWP projects. -->
+  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.Common.props" />
+
+  <!-- Set props and import specific prop sheets for this kind of project. -->
   <PropertyGroup>
     <ReactNativeCodeGenEnabled Condition="'$(ReactNativeCodeGenEnabled)' == ''">true</ReactNativeCodeGenEnabled>
   </PropertyGroup>
 
-  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.Common.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Appx.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Autolink.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Codegen.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\NuGet.CSharp.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\WinUI.props" />
+
+  <PropertyGroup>
+    <RnwExternalPropsLoaded>$(MSBuildThisFile)</RnwExternalPropsLoaded>
+  </PropertyGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets
index 013b6741989..9fc6970f3b6 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpApp.targets
@@ -8,7 +8,13 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(ReactNativeWindowsDir)PropertySheets\External\Microsoft.ReactNative.Common.targets" />
+  <!-- Check that the correct props have already been imported. -->
+  <Target Name="EnsureRnwExternalPropsLoadedTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwExternalPropsLoaded)'!='Microsoft.ReactNative.Uwp.CSharpApp.props'">
+    <Warning Text="Property `RnwExternalPropsLoaded` was incorrectly set to '$(RnwExternalPropsLoaded)'. Please ensure your project imports 'Microsoft.ReactNative.Uwp.CSharpApp.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import targets common to all projects. -->
+  <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Common.targets" />
 
   <!-- Due to visual studio unconditionally showing references, we have to trick it by making it impossible for VS to find the reference differences between building as source and building as NuGet -->
   <Import Project="$(ReactNativeWindowsDir)PropertySheets\External\Microsoft.ReactNative.CSharp.ProjectReferences.props" Condition="!$(UseExperimentalNuget)" />
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.props
index 8c62b135ab4..c02d990de4d 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.props
@@ -8,10 +8,22 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Check that Microsoft.ReactNative.WindowsSdk.Default.props has already been imported. -->
+  <Target Name="EnsureRnwSdkDefaultsSetTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwSdkDefaultsSet)'!='true'">
+    <Warning Text="Property `RnwSdkDefaultsSet` was not set. Please ensure your project imports 'Microsoft.ReactNative.WindowsSdk.Default.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import common props sheets common to all UWP projects. -->
+  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.Common.props" />
+
+  <!-- Set props and import specific prop sheets for this kind of project. -->
   <PropertyGroup>
     <ReactNativeCodeGenEnabled Condition="'$(ReactNativeCodeGenEnabled)' == ''">true</ReactNativeCodeGenEnabled>
   </PropertyGroup>
 
-  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.Common.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\NuGet.CSharp.props" />
+
+  <PropertyGroup>
+    <RnwExternalPropsLoaded>$(MSBuildThisFile)</RnwExternalPropsLoaded>
+  </PropertyGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets
index 620aaaea45c..db6fe98d2db 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CSharpLib.targets
@@ -8,6 +8,12 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Check that the correct props have already been imported. -->
+  <Target Name="EnsureRnwExternalPropsLoadedTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwExternalPropsLoaded)'!='Microsoft.ReactNative.Uwp.CSharpLib.props'">
+    <Warning Text="Property `RnwExternalPropsLoaded` was incorrectly set to '$(RnwExternalPropsLoaded)'. Please ensure your project imports 'Microsoft.ReactNative.Uwp.CSharpLib.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import targets common to all projects. -->
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Common.targets" />
 
   <!-- Due to visual studio unconditionally showing references, we have to trick it by making it impossible for VS to find the reference differences between building as source and building as NuGet -->
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.Common.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.Common.props
index 9d9cdf86d6a..f2716de5588 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.Common.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.Common.props
@@ -8,5 +8,8 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Target Name="EnsureNoRnwNewArch" BeforeTargets="PrepareForBuild" Condition="'$(RnwNewArch)'=='true'">
+    <Error Text="Property 'RnwNewArch' was set to 'true'. Projects built against Microsoft.ReactNative.Uwp require RnwNewArch to be 'false'." />
+  </Target>
   <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Common.props" />
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props
index ba0ef614f76..404f46ced54 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.props
@@ -13,7 +13,15 @@
   <Import Project="$(ProjectDir)\AutolinkedNativeModules.g.props"
           Condition="Exists('$(ProjectDir)\AutolinkedNativeModules.g.props')" />
 
+  <!-- Check that Microsoft.ReactNative.WindowsSdk.Default.props has already been imported. -->
+  <Target Name="EnsureRnwSdkDefaultsSetTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwSdkDefaultsSet)'!='true'">
+    <Warning Text="Property `RnwSdkDefaultsSet` was not set. Please ensure your project imports 'Microsoft.ReactNative.WindowsSdk.Default.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import common props sheets common to all UWP projects. -->
   <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.Common.props" />
+
+  <!-- Set props and import specific prop sheets for this kind of project. -->
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Appx.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Autolink.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\Codegen.props" />
@@ -21,4 +29,8 @@
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\WinUI.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\CppAppConsumeCSharpModule.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\PackageVersionDefinitions.props" />
+
+  <PropertyGroup>
+    <RnwExternalPropsLoaded>$(MSBuildThisFile)</RnwExternalPropsLoaded>
+  </PropertyGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets
index 810b491ef4a..39b9dff4b99 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppApp.targets
@@ -8,6 +8,12 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Check that the correct props have already been imported. -->
+  <Target Name="EnsureRnwExternalPropsLoadedTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwExternalPropsLoaded)'!='Microsoft.ReactNative.Uwp.CppApp.props'">
+    <Warning Text="Property `RnwExternalPropsLoaded` was incorrectly set to '$(RnwExternalPropsLoaded)'. Please ensure your project imports 'Microsoft.ReactNative.Uwp.CppApp.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import targets common to all projects. -->
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Common.targets" />
 
   <!-- Due to visual studio unconditionally showing references, we have to trick it by making it impossible for VS to find the reference differences between building as source and building as NuGet -->
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.props b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.props
index 5a203377a68..0b4020a1ad8 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.props
@@ -8,6 +8,16 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+
+  <!-- Check that Microsoft.ReactNative.WindowsSdk.Default.props has already been imported. -->
+  <Target Name="EnsureRnwSdkDefaultsSetTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwSdkDefaultsSet)'!='true'">
+    <Warning Text="Property `RnwSdkDefaultsSet` was not set. Please ensure your project imports 'Microsoft.ReactNative.WindowsSdk.Default.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import common props sheets common to all UWP projects. -->
+  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.Common.props" />
+
+  <!-- Set props and import specific prop sheets for this kind of project. -->
   <PropertyGroup>
     <!--
       Define SkipAddPriPayloadFilesToCopyToOutputDirectoryItems=true and GenerateLibraryLayout=false to avoid
@@ -16,8 +26,12 @@
     <SkipAddPriPayloadFilesToCopyToOutputDirectoryItems>true</SkipAddPriPayloadFilesToCopyToOutputDirectoryItems>
     <GenerateLibraryLayout>false</GenerateLibraryLayout>
   </PropertyGroup>
-  <Import Project="$(MSBuildThisFileDirectory)Microsoft.ReactNative.Uwp.Common.props" />
+
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\NuGet.Cpp.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\WinUI.props" />
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\PackageVersionDefinitions.props" />
+
+  <PropertyGroup>
+    <RnwExternalPropsLoaded>$(MSBuildThisFile)</RnwExternalPropsLoaded>
+  </PropertyGroup>
 </Project>
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets
index a59bdc86990..9d6482223bf 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.targets
@@ -8,6 +8,12 @@
   Do not make any changes here unless it applies to ALL such projects.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <!-- Check that the correct props have already been imported. -->
+  <Target Name="EnsureRnwExternalPropsLoadedTarget" BeforeTargets="PrepareForBuild" Condition="'$(RnwExternalPropsLoaded)'!='Microsoft.ReactNative.Uwp.CppLib.props'">
+    <Warning Text="Property `RnwExternalPropsLoaded` was incorrectly set to '$(RnwExternalPropsLoaded)'. Please ensure your project imports 'Microsoft.ReactNative.Uwp.CppLib.props' before importing this prop sheet." />
+  </Target>
+
+  <!-- Import targets common to all projects. -->
   <Import Project="$(ReactNativeWindowsDir)\PropertySheets\External\Microsoft.ReactNative.Common.targets" />
 
   <!-- Due to visual studio unconditionally showing references, we have to trick it by making it impossible for VS to find the reference differences between building as source and building as NuGet -->
diff --git a/vnext/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props b/vnext/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props
index b0465062c74..c3591385f75 100644
--- a/vnext/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props
+++ b/vnext/PropertySheets/External/Microsoft.ReactNative.WindowsSdk.Default.props
@@ -4,29 +4,38 @@
   Licensed under the MIT License.
 -->
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-
   <!--
     This defines the default Windows SDK used to build both the app and 0.66+
-    template community modules.
+    template community modules. This should be the very first import from RNW for
+    any RNW project.
 
     See https://microsoft.github.io/react-native-windows/docs/win10-compat
   -->
+
+  <ImportGroup Condition="'$(ReactNativeArchitecturePropsSet)' != 'true'">
+    <Import Project="$(ReactNativeWindowsDir)\PropertySheets\ReactNativeArchitecture.props" />
+  </ImportGroup>
+
   <PropertyGroup Label="Globals" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">
     <WindowsTargetPlatformVersion Condition="'$(WindowsTargetPlatformVersion)'=='' Or '$(WindowsTargetPlatformVersion)'=='10.0.0.0'">10.0.22621.0</WindowsTargetPlatformVersion>
     <WindowsTargetPlatformMinVersion Condition="'$(WindowsTargetPlatformMinVersion)'=='' Or '$(WindowsTargetPlatformMinVersion)'=='10.0.0.0'">10.0.17763.0</WindowsTargetPlatformMinVersion>
 
-    <!-- WinAppSDK/Composition projects have higher version requirements. -->
-    <WindowsTargetPlatformVersion Condition="'$(UseWinUI3)'=='true' And $([MSBuild]::VersionLessThan('$(WindowsTargetPlatformVersion)', '10.0.22621.0'))">10.0.22621.0</WindowsTargetPlatformVersion>
-    <WindowsTargetPlatformMinVersion Condition="'$(UseWinUI3)'=='true' And $([MSBuild]::VersionLessThan('$(WindowsTargetPlatformMinVersion)', '10.0.18362.0'))">10.0.18362.0</WindowsTargetPlatformMinVersion>
+    <!-- New Architecture projects have higher version requirements. -->
+    <WindowsTargetPlatformVersion Condition="'$(RnwNewArch)'=='true' And $([MSBuild]::VersionLessThan('$(WindowsTargetPlatformVersion)', '10.0.22621.0'))">10.0.22621.0</WindowsTargetPlatformVersion>
+    <WindowsTargetPlatformMinVersion Condition="'$(RnwNewArch)'=='true' And $([MSBuild]::VersionLessThan('$(WindowsTargetPlatformMinVersion)', '10.0.18362.0'))">10.0.18362.0</WindowsTargetPlatformMinVersion>
   </PropertyGroup>
 
   <PropertyGroup Label="Globals" Condition="'$(MSBuildProjectExtension)' == '.csproj' Or '$(MSBuildProjectExtension)' == '.wapproj'">
     <TargetPlatformVersion Condition="'$(TargetPlatformVersion)'==''">10.0.22621.0</TargetPlatformVersion>
     <TargetPlatformMinVersion Condition="'$(TargetPlatformMinVersion)'==''">10.0.17763.0</TargetPlatformMinVersion>
 
-    <!-- WinAppSDK/Composition projects have higher version requirements. -->
-    <TargetPlatformVersion Condition="'$(UseWinUI3)'=='true' And $([MSBuild]::VersionLessThan('$(TargetPlatformVersion)', '10.0.22621.0'))">10.0.22621.0</TargetPlatformVersion>
-    <TargetPlatformMinVersion Condition="'$(UseWinUI3)'=='true' And $([MSBuild]::VersionLessThan('$(TargetPlatformMinVersion)', '10.0.17763.0'))">10.0.17763.0</TargetPlatformMinVersion>
+    <!-- New Architecture projects have higher version requirements. -->
+    <TargetPlatformVersion Condition="'$(RnwNewArch)'=='true' And $([MSBuild]::VersionLessThan('$(TargetPlatformVersion)', '10.0.22621.0'))">10.0.22621.0</TargetPlatformVersion>
+    <TargetPlatformMinVersion Condition="'$(RnwNewArch)'=='true' And $([MSBuild]::VersionLessThan('$(TargetPlatformMinVersion)', '10.0.17763.0'))">10.0.17763.0</TargetPlatformMinVersion>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <RnwSdkDefaultsSet>true</RnwSdkDefaultsSet>
   </PropertyGroup>
 
 </Project>
diff --git a/vnext/PropertySheets/ReactNativeArchitecture.props b/vnext/PropertySheets/ReactNativeArchitecture.props
new file mode 100644
index 00000000000..4353cacfa52
--- /dev/null
+++ b/vnext/PropertySheets/ReactNativeArchitecture.props
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+  Copyright (c) Microsoft Corporation. All rights reserved.
+  Licensed under the MIT License.
+
+  Ensures properties align with architecture requirements.
+-->
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <RnwNewArch Condition="'$(RnwNewArch)'==''">false</RnwNewArch>
+  </PropertyGroup>
+
+  <!-- Check New Architecture properties and gently warn if they're misconfigured. -->
+  <Target Name="EnsureUseHermesForNewArch" BeforeTargets="PrepareForBuild" Condition="'$(RnwNewArch)'=='true' and '$(UseHermes)'=='false'">
+    <Warning Text="Property 'UseHermes' was set to 'false'. Projects built against the New Architecture require Hermes so it will be set to 'true'." />
+  </Target>
+
+  <Target Name="EnsureUseFabricForNewArch" BeforeTargets="PrepareForBuild" Condition="'$(RnwNewArch)'=='true' and '$(UseFabric)'=='false'">
+    <Warning Text="Property 'UseFabric' was set to 'false'. Projects built against the New Architecture require Fabric so it will be set to 'true'." />
+  </Target>
+
+  <Target Name="EnsureUseWinUI3ForNewArch" BeforeTargets="PrepareForBuild" Condition="'$(RnwNewArch)'=='true' and '$(UseWinUI3)' == 'false'">
+    <Warning Text="Property 'UseWinUI3' was set to 'false'. Projects built against the New Architecture require WinUI3 so it will be set to 'true'." />
+  </Target>
+
+  <PropertyGroup Condition="'$(RnwNewArch)'=='true'">
+    <!-- Every New Architecture project requires these to be true. -->
+    <UseHermes>true</UseHermes>
+    <UseFabric>true</UseFabric>
+    <UseWinUI3>true</UseWinUI3>
+
+    <!-- Default this to true if not specified but allow it to be false. -->
+    <UseExperimentalNuget Condition="'$(UseExperimentalNuget)'==''">true</UseExperimentalNuget>
+
+    <DefineConstants>RNW_NEW_ARCH;$(DefineConstants)</DefineConstants>
+  </PropertyGroup>
+
+  <ItemDefinitionGroup Condition="'$(RnwNewArch)'=='true'">
+    <ClCompile>
+      <PreprocessorDefinitions>RNW_NEW_ARCH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Midl>
+      <PreprocessorDefinitions>RNW_NEW_ARCH;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </Midl>
+  </ItemDefinitionGroup>
+
+  <!-- Check Old Architecture properties and gently warn if they're misconfigured. -->
+  <Target Name="EnsureUseFabricForOldArch" BeforeTargets="PrepareForBuild" Condition="'$(RnwNewArch)'=='false' and '$(UseFabric)'=='true'">
+    <Warning Text="Property 'UseFabric' was set to 'true'. Projects built against the Old Architecture do not support Fabric so it will be set to 'false'." />
+  </Target>
+
+  <Target Name="EnsureUseWinUI3ForOldArch" BeforeTargets="PrepareForBuild" Condition="'$(RnwNewArch)'=='false' and '$(UseWinUI3)' == 'true' and '$(ForcePaperUseWinUI3)'!='true'">
+    <Warning Text="Property 'UseWinUI3' was set to 'true'. Projects built against the Old Architecture do not support WinUI3 so it will be set to 'false'. You may set 'ForcePaperUseWinUI3' to 'true' override this at your own risk." />
+  </Target>
+
+  <PropertyGroup Condition="'$(RnwNewArch)'=='false'">
+    <!-- Every Old Architecture project requires these to be false. -->
+    <UseFabric>false</UseFabric>
+
+    <!-- Set UseWinUI3 to false unless 'ForcePaperUseWinUI3'. -->
+    <UseWinUI3 Condition="'$(ForcePaperUseWinUI3)'=='true'">true</UseWinUI3>
+    <UseWinUI3 Condition="'$(ForcePaperUseWinUI3)'!='true'">false</UseWinUI3>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <ReactNativeArchitecturePropsSet>true</ReactNativeArchitecturePropsSet>
+  </PropertyGroup>
+
+</Project>
\ No newline at end of file
diff --git a/vnext/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1 b/vnext/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1
index c4739440f38..4a187269b32 100644
--- a/vnext/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1
+++ b/vnext/Scripts/NuGetRestoreForceEvaluateAllSolutions.ps1
@@ -20,7 +20,7 @@ try
     # Re-run solutions that we also build a Fabric variant
     @("$RepoRoot\vnext\ReactWindows-Desktop.sln", "$RepoRoot\vnext\Microsoft.ReactNative.CppOnly.slnf") | Foreach {
         Write-Host Restoring $_ with Fabric
-        & msbuild /t:Restore /p:RestoreForceEvaluate=true /p:UseFabric=true /p:UseWinUI3=true $_
+        & msbuild /t:Restore /p:RestoreForceEvaluate=true /p:RnwNewArch=true $_
     }
 }
 finally
diff --git a/vnext/template/shared-app/proj/ExperimentalFeatures.props b/vnext/template/shared-app/proj/ExperimentalFeatures.props
index fdeb913601e..57da4357d23 100644
--- a/vnext/template/shared-app/proj/ExperimentalFeatures.props
+++ b/vnext/template/shared-app/proj/ExperimentalFeatures.props
@@ -16,14 +16,6 @@
     -->
     <UseHermes>{{useHermes}}</UseHermes>
 
-    <!--
-      Changes compilation to assume use of WinUI 3 instead of System XAML.
-      Requires creation of new project.
-
-      See https://microsoft.github.io/react-native-windows/docs/winui3
-    -->
-    <UseWinUI3>{{useWinUI3}}</UseWinUI3>
-
     <!--
       Changes compilation to assume use of Microsoft.ReactNative NuGet packages
       instead of building the framework from source.
diff --git a/vnext/template/shared-lib/proj/ExperimentalFeatures.props b/vnext/template/shared-lib/proj/ExperimentalFeatures.props
index 1c465a1b76b..7b25712b192 100644
--- a/vnext/template/shared-lib/proj/ExperimentalFeatures.props
+++ b/vnext/template/shared-lib/proj/ExperimentalFeatures.props
@@ -16,14 +16,6 @@
     -->
     <UseHermes>{{useHermes}}</UseHermes>
 
-    <!--
-      Changes compilation to assume use of WinUI 3 instead of System XAML.
-      Requires creation of new project.
-
-      See https://microsoft.github.io/react-native-windows/docs/winui3
-    -->
-    <UseWinUI3>{{useWinUI3}}</UseWinUI3>
-
     <!--
       Changes compilation to assume use of Microsoft.ReactNative NuGet packages
       instead of building the framework from source.
diff --git a/vnext/templates/cpp-app/windows/ExperimentalFeatures.props b/vnext/templates/cpp-app/windows/ExperimentalFeatures.props
index 44bf23f5066..d9719969509 100644
--- a/vnext/templates/cpp-app/windows/ExperimentalFeatures.props
+++ b/vnext/templates/cpp-app/windows/ExperimentalFeatures.props
@@ -2,8 +2,23 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
   <PropertyGroup Label="Microsoft.ReactNative Experimental Features">
-    <UseFabric>true</UseFabric>
-    <UseWinUI3>true</UseWinUI3>
+    <!--
+      Required for building a New Architecture project.
+
+      App projects should not change this value.
+
+      See https://microsoft.github.io/react-native-windows/docs/new-architecture
+    -->
+    <RnwNewArch>true</RnwNewArch>
+
+    <!--
+      Changes compilation to assume use of Microsoft.ReactNative NuGet packages
+      instead of building the framework from source. Defaults to true.
+
+      This is set during app project creation and should not be changed.
+
+      See https://microsoft.github.io/react-native-windows/docs/nuget
+    -->
     <UseExperimentalNuget>{{useNuGets}}</UseExperimentalNuget>
 
     <ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
diff --git a/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj b/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj
index e8cd8e92dfe..b94379ef590 100644
--- a/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj
+++ b/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj
@@ -92,11 +92,6 @@
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-  </ItemDefinitionGroup>
   <PropertyGroup Label="UserMacros" />
   <ItemGroup>
     <ClInclude Include="{{ name }}.h" />
diff --git a/vnext/templates/cpp-lib/windows/ExperimentalFeatures.props b/vnext/templates/cpp-lib/windows/ExperimentalFeatures.props
index 44bf23f5066..b588a5a4450 100644
--- a/vnext/templates/cpp-lib/windows/ExperimentalFeatures.props
+++ b/vnext/templates/cpp-lib/windows/ExperimentalFeatures.props
@@ -2,8 +2,29 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 
   <PropertyGroup Label="Microsoft.ReactNative Experimental Features">
-    <UseFabric>true</UseFabric>
-    <UseWinUI3>true</UseWinUI3>
+    <!--
+      Required for building a New Architecture project.
+
+      Library projects can change this value to test against Old and New
+      Architectures when building the library project's local sln file.
+      
+      Otherwise this value will be decided by the consuming RNW app.
+
+      See https://microsoft.github.io/react-native-windows/docs/new-architecture
+    -->
+    <RnwNewArch>true</RnwNewArch>
+
+    <!--
+      Changes compilation to assume use of Microsoft.ReactNative NuGet packages
+      instead of building the framework from source. Defaults to true.
+
+      This is set during library project creation and is used when building
+      the library project's local sln file.
+
+      Otherwise this value will be decided by the consuming RNW app.
+
+      See https://microsoft.github.io/react-native-windows/docs/nuget
+    -->
     <UseExperimentalNuget>{{useNuGets}}</UseExperimentalNuget>
 
     <ReactExperimentalFeaturesSet>true</ReactExperimentalFeaturesSet>
diff --git a/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj b/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj
index 318a4a92fe2..36440df56c5 100644
--- a/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj
+++ b/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj
@@ -98,11 +98,6 @@
       <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
   </ItemDefinitionGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-    </ClCompile>
-  </ItemDefinitionGroup>
   <PropertyGroup Label="UserMacros" />
   <ItemGroup>
     <ClInclude Include="{{ name }}.h" />
