diff --git a/CommunityToolkit.Aspire.sln b/CommunityToolkit.Aspire.sln
index 7a28eafa..68431825 100644
--- a/CommunityToolkit.Aspire.sln
+++ b/CommunityToolkit.Aspire.sln
@@ -305,6 +305,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hos
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hosting.MongoDB.Extensions", "src\CommunityToolkit.Aspire.Hosting.MongoDB.Extensions\CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.csproj", "{511D321E-277E-465A-AD62-B9971A6DD17E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CommunityToolkit.Aspire.Hosting.DbGate", "src\CommunityToolkit.Aspire.Hosting.DbGate\CommunityToolkit.Aspire.Hosting.DbGate.csproj", "{72054ADC-94AC-48D4-9718-72B70E830CD2}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -807,6 +809,10 @@ Global
{511D321E-277E-465A-AD62-B9971A6DD17E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{511D321E-277E-465A-AD62-B9971A6DD17E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{511D321E-277E-465A-AD62-B9971A6DD17E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {72054ADC-94AC-48D4-9718-72B70E830CD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {72054ADC-94AC-48D4-9718-72B70E830CD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {72054ADC-94AC-48D4-9718-72B70E830CD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {72054ADC-94AC-48D4-9718-72B70E830CD2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -960,6 +966,7 @@ Global
{F4891827-BE07-4547-AF89-2734FB8DE6D5} = {899F0713-7FC6-4750-BAFC-AC650B35B453}
{96458513-CAA8-498B-B4EE-3BF994140741} = {899F0713-7FC6-4750-BAFC-AC650B35B453}
{511D321E-277E-465A-AD62-B9971A6DD17E} = {414151D4-7009-4E78-A5C6-D99EBD1E67D1}
+ {72054ADC-94AC-48D4-9718-72B70E830CD2} = {414151D4-7009-4E78-A5C6-D99EBD1E67D1}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {08B1D4B8-D2C5-4A64-BB8B-E1A2B29525F0}
diff --git a/src/CommunityToolkit.Aspire.Hosting.DbGate/CommunityToolkit.Aspire.Hosting.DbGate.csproj b/src/CommunityToolkit.Aspire.Hosting.DbGate/CommunityToolkit.Aspire.Hosting.DbGate.csproj
new file mode 100644
index 00000000..43aa0633
--- /dev/null
+++ b/src/CommunityToolkit.Aspire.Hosting.DbGate/CommunityToolkit.Aspire.Hosting.DbGate.csproj
@@ -0,0 +1,16 @@
+
+
+
+ hosting dbgate
+ A .NET Aspire integration for dbgate hosting.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Shared/dbgate/DbGateBuilderExtensions.cs b/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateBuilderExtensions.cs
similarity index 96%
rename from src/Shared/dbgate/DbGateBuilderExtensions.cs
rename to src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateBuilderExtensions.cs
index 122ceb8b..978aeb26 100644
--- a/src/Shared/dbgate/DbGateBuilderExtensions.cs
+++ b/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateBuilderExtensions.cs
@@ -62,6 +62,9 @@ public static IResourceBuilder WithDataBindMount(this I
/// The resource builder.
/// The name of the resource. This name will be used as the connection string name when referenced in a dependency.
/// The host port to bind the underlying container to.
+ ///
+ /// Multiple calls will return the same resource builder instance.
+ ///
/// A reference to the .
public static IResourceBuilder AddDbGate(this IDistributedApplicationBuilder builder, [ResourceName] string name, int? port = null)
{
diff --git a/src/Shared/dbgate/DbGateContainerImageTags.cs b/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateContainerImageTags.cs
similarity index 100%
rename from src/Shared/dbgate/DbGateContainerImageTags.cs
rename to src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateContainerImageTags.cs
diff --git a/src/Shared/dbgate/DbGateContainerResource.cs b/src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateContainerResource.cs
similarity index 100%
rename from src/Shared/dbgate/DbGateContainerResource.cs
rename to src/CommunityToolkit.Aspire.Hosting.DbGate/DbGateContainerResource.cs
diff --git a/src/CommunityToolkit.Aspire.Hosting.DbGate/PublicAPI.Shipped.txt b/src/CommunityToolkit.Aspire.Hosting.DbGate/PublicAPI.Shipped.txt
new file mode 100644
index 00000000..7dc5c581
--- /dev/null
+++ b/src/CommunityToolkit.Aspire.Hosting.DbGate/PublicAPI.Shipped.txt
@@ -0,0 +1 @@
+#nullable enable
diff --git a/src/CommunityToolkit.Aspire.Hosting.DbGate/PublicAPI.Unshipped.txt b/src/CommunityToolkit.Aspire.Hosting.DbGate/PublicAPI.Unshipped.txt
new file mode 100644
index 00000000..da1165fe
--- /dev/null
+++ b/src/CommunityToolkit.Aspire.Hosting.DbGate/PublicAPI.Unshipped.txt
@@ -0,0 +1,8 @@
+Aspire.Hosting.ApplicationModel.DbGateContainerResource
+Aspire.Hosting.ApplicationModel.DbGateContainerResource.DbGateContainerResource(string! name) -> void
+Aspire.Hosting.ApplicationModel.DbGateContainerResource.PrimaryEndpoint.get -> Aspire.Hosting.ApplicationModel.EndpointReference!
+Aspire.Hosting.DbGateBuilderExtensions
+static Aspire.Hosting.DbGateBuilderExtensions.AddDbGate(this Aspire.Hosting.IDistributedApplicationBuilder! builder, string! name, int? port = null) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
+static Aspire.Hosting.DbGateBuilderExtensions.WithDataBindMount(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, string! source, bool isReadOnly = false) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
+static Aspire.Hosting.DbGateBuilderExtensions.WithDataVolume(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, string? name = null, bool isReadOnly = false) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
+static Aspire.Hosting.DbGateBuilderExtensions.WithHostPort(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, int? port) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
\ No newline at end of file
diff --git a/src/CommunityToolkit.Aspire.Hosting.DbGate/README.md b/src/CommunityToolkit.Aspire.Hosting.DbGate/README.md
new file mode 100644
index 00000000..30404ce4
--- /dev/null
+++ b/src/CommunityToolkit.Aspire.Hosting.DbGate/README.md
@@ -0,0 +1 @@
+TODO
\ No newline at end of file
diff --git a/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.csproj b/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.csproj
index 4561ef93..6eeefb08 100644
--- a/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.csproj
+++ b/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions.csproj
@@ -12,9 +12,10 @@
-
-
-
+
+
+
+
diff --git a/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/PublicAPI.Unshipped.txt b/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/PublicAPI.Unshipped.txt
index 7c437258..740a292b 100644
--- a/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/PublicAPI.Unshipped.txt
+++ b/src/CommunityToolkit.Aspire.Hosting.MongoDB.Extensions/PublicAPI.Unshipped.txt
@@ -1,10 +1,2 @@
-Aspire.Hosting.ApplicationModel.DbGateContainerResource
-Aspire.Hosting.ApplicationModel.DbGateContainerResource.DbGateContainerResource(string! name) -> void
-Aspire.Hosting.ApplicationModel.DbGateContainerResource.PrimaryEndpoint.get -> Aspire.Hosting.ApplicationModel.EndpointReference!
-Aspire.Hosting.DbGateBuilderExtensions
Aspire.Hosting.MongoDBBuilderExtensions
-static Aspire.Hosting.DbGateBuilderExtensions.AddDbGate(this Aspire.Hosting.IDistributedApplicationBuilder! builder, string! name, int? port = null) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
-static Aspire.Hosting.DbGateBuilderExtensions.WithDataBindMount(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, string! source, bool isReadOnly = false) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
-static Aspire.Hosting.DbGateBuilderExtensions.WithDataVolume(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, string? name = null, bool isReadOnly = false) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
-static Aspire.Hosting.DbGateBuilderExtensions.WithHostPort(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, int? port) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
static Aspire.Hosting.MongoDBBuilderExtensions.WithDbGate(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, System.Action!>? configureContainer = null, string? containerName = null) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
\ No newline at end of file
diff --git a/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.csproj b/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.csproj
index f0db8c3c..6b738bac 100644
--- a/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.csproj
+++ b/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions.csproj
@@ -12,9 +12,10 @@
-
-
-
+
+
+
+
diff --git a/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/PublicAPI.Unshipped.txt b/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/PublicAPI.Unshipped.txt
index 749bc5dd..0fa5e608 100644
--- a/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/PublicAPI.Unshipped.txt
+++ b/src/CommunityToolkit.Aspire.Hosting.PostgreSQL.Extensions/PublicAPI.Unshipped.txt
@@ -1,10 +1,2 @@
-Aspire.Hosting.ApplicationModel.DbGateContainerResource
-Aspire.Hosting.ApplicationModel.DbGateContainerResource.DbGateContainerResource(string! name) -> void
-Aspire.Hosting.ApplicationModel.DbGateContainerResource.PrimaryEndpoint.get -> Aspire.Hosting.ApplicationModel.EndpointReference!
-Aspire.Hosting.DbGateBuilderExtensions
Aspire.Hosting.PostgresBuilderExtensions
-static Aspire.Hosting.DbGateBuilderExtensions.AddDbGate(this Aspire.Hosting.IDistributedApplicationBuilder! builder, string! name, int? port = null) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
-static Aspire.Hosting.DbGateBuilderExtensions.WithDataBindMount(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, string! source, bool isReadOnly = false) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
-static Aspire.Hosting.DbGateBuilderExtensions.WithDataVolume(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, string? name = null, bool isReadOnly = false) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
-static Aspire.Hosting.DbGateBuilderExtensions.WithHostPort(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, int? port) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
static Aspire.Hosting.PostgresBuilderExtensions.WithDbGate(this Aspire.Hosting.ApplicationModel.IResourceBuilder! builder, System.Action!>? configureContainer = null, string? containerName = null) -> Aspire.Hosting.ApplicationModel.IResourceBuilder!
\ No newline at end of file
diff --git a/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests.csproj b/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests.csproj
index 1d03f7f9..cdac49be 100644
--- a/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests.csproj
+++ b/tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests/CommunityToolkit.Aspire.Hosting.DbGate.Tests.csproj
@@ -1,11 +1,10 @@
+
-
-
-
+