diff --git a/CommunityToolkit.Aspire.slnx b/CommunityToolkit.Aspire.slnx
index 1233718eb..0df088eed 100644
--- a/CommunityToolkit.Aspire.slnx
+++ b/CommunityToolkit.Aspire.slnx
@@ -33,6 +33,11 @@
+
+
+
+
+
@@ -207,6 +212,7 @@
+
@@ -242,6 +248,7 @@
+
@@ -269,6 +276,7 @@
+
@@ -304,6 +312,7 @@
+
diff --git a/Directory.Packages.props b/Directory.Packages.props
index b679fa463..c895c6986 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -75,6 +75,7 @@
+
diff --git a/examples/duckdb/CommunityToolkit.Aspire.DuckDB.Api/CommunityToolkit.Aspire.DuckDB.Api.csproj b/examples/duckdb/CommunityToolkit.Aspire.DuckDB.Api/CommunityToolkit.Aspire.DuckDB.Api.csproj
new file mode 100644
index 000000000..849acf26d
--- /dev/null
+++ b/examples/duckdb/CommunityToolkit.Aspire.DuckDB.Api/CommunityToolkit.Aspire.DuckDB.Api.csproj
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/examples/duckdb/CommunityToolkit.Aspire.DuckDB.Api/Program.cs b/examples/duckdb/CommunityToolkit.Aspire.DuckDB.Api/Program.cs
new file mode 100644
index 000000000..1c9a56ad2
--- /dev/null
+++ b/examples/duckdb/CommunityToolkit.Aspire.DuckDB.Api/Program.cs
@@ -0,0 +1,123 @@
+using DuckDB.NET.Data;
+
+var builder = WebApplication.CreateBuilder(args);
+
+builder.AddServiceDefaults();
+builder.Services.AddProblemDetails();
+
+builder.AddDuckDBConnection("analytics");
+
+var app = builder.Build();
+app.UseExceptionHandler();
+app.MapDefaultEndpoints();
+
+await SeedDatabase(app);
+
+app.MapGet("/", () => "DuckDB Analytics API");
+
+var analyticsGroup = app.MapGroup("/analytics");
+
+analyticsGroup.MapGet("/summary", async (DuckDBConnection db) =>
+{
+ await db.OpenAsync();
+ using var command = db.CreateCommand();
+ command.CommandText = """
+ SELECT
+ category,
+ COUNT(*) as total_orders,
+ CAST(SUM(amount) AS DOUBLE) as total_revenue,
+ CAST(AVG(amount) AS DOUBLE) as avg_order_value
+ FROM orders
+ GROUP BY category
+ ORDER BY total_revenue DESC
+ """;
+ using var reader = await command.ExecuteReaderAsync();
+
+ var results = new List