diff --git a/apps/site/public/illustrations/typedsql/end-to-end-type-safety.svg b/apps/site/public/illustrations/typedsql/end-to-end-type-safety.svg
new file mode 100644
index 0000000000..83f97c8178
--- /dev/null
+++ b/apps/site/public/illustrations/typedsql/end-to-end-type-safety.svg
@@ -0,0 +1,70 @@
+
diff --git a/apps/site/public/illustrations/typedsql/end-to-end-type-safety_light.svg b/apps/site/public/illustrations/typedsql/end-to-end-type-safety_light.svg
new file mode 100644
index 0000000000..83f97c8178
--- /dev/null
+++ b/apps/site/public/illustrations/typedsql/end-to-end-type-safety_light.svg
@@ -0,0 +1,70 @@
+
diff --git a/apps/site/public/illustrations/typedsql/full-controll-sql.svg b/apps/site/public/illustrations/typedsql/full-controll-sql.svg
new file mode 100644
index 0000000000..3e9ec634b1
--- /dev/null
+++ b/apps/site/public/illustrations/typedsql/full-controll-sql.svg
@@ -0,0 +1,69 @@
+
diff --git a/apps/site/public/illustrations/typedsql/full-controll-sql_light.svg b/apps/site/public/illustrations/typedsql/full-controll-sql_light.svg
new file mode 100644
index 0000000000..3e9ec634b1
--- /dev/null
+++ b/apps/site/public/illustrations/typedsql/full-controll-sql_light.svg
@@ -0,0 +1,69 @@
+
diff --git a/apps/site/public/illustrations/typedsql/great-dx.svg b/apps/site/public/illustrations/typedsql/great-dx.svg
new file mode 100644
index 0000000000..1f52baa951
--- /dev/null
+++ b/apps/site/public/illustrations/typedsql/great-dx.svg
@@ -0,0 +1,100 @@
+
diff --git a/apps/site/public/illustrations/typedsql/great-dx_light.svg b/apps/site/public/illustrations/typedsql/great-dx_light.svg
new file mode 100644
index 0000000000..1f52baa951
--- /dev/null
+++ b/apps/site/public/illustrations/typedsql/great-dx_light.svg
@@ -0,0 +1,100 @@
+
diff --git a/apps/site/src/app/sitemap.ts b/apps/site/src/app/sitemap.ts
index 9e93526e38..cf9bbf2a7f 100644
--- a/apps/site/src/app/sitemap.ts
+++ b/apps/site/src/app/sitemap.ts
@@ -12,5 +12,10 @@ export default function sitemap(): MetadataRoute.Sitemap {
changeFrequency: "daily",
priority: 1,
},
+ {
+ url: new URL("/typedsql", baseUrl).toString(),
+ changeFrequency: "weekly",
+ priority: 0.8,
+ },
];
}
diff --git a/apps/site/src/app/typedsql/page.tsx b/apps/site/src/app/typedsql/page.tsx
new file mode 100644
index 0000000000..4a2854ceca
--- /dev/null
+++ b/apps/site/src/app/typedsql/page.tsx
@@ -0,0 +1,186 @@
+import type { Metadata } from "next";
+import { Button } from "@prisma/eclipse";
+import { CardSection } from "@/components/homepage/card-section/card-section";
+import { VideoSection } from "@/components/typedsql/video-section";
+import { ExpandCapabilities } from "@/components/typedsql/expand-capabilities";
+
+const twoCol = [
+ {
+ content: (
+ <>
+
+ End-to-end type-safety
+
+
+ All TypedSQL queries have typed inputs and outputs preventing errors related to incorrect
+ types and improving DX. Any type mismatches can be caught right away, while type-safety
+ significantly improves ergonomics while developing.
+
+ When you need the full control of the SQL engine, write and execute raw SQL queries
+ directly. This gives you the flexibility to use advanced SQL-specific features and
+ optimizations that are not available in the Prisma Client API, while maintaining type
+ safety.
+
+ TypedSQL combines the productivity of a higher-level abstraction with type-safety for
+ crafting SQL directly. Use familiar SQL tools in your editor, complete with syntax
+ highlighting, error checking, and autocompletion.
+
+ >
+ ),
+ imageUrl: "/illustrations/typedsql/great-dx",
+ imageAlt: "Great DX",
+ mobileImageUrl: null,
+ mobileImageAlt: null,
+ logos: null,
+ useDefaultLogos: false,
+ visualPosition: "right" as const,
+ visualType: "image" as const,
+ },
+];
+
+export const metadata: Metadata = {
+ title: "TypedSQL - Fully Type-Safe Raw SQL | Prisma ORM",
+ description:
+ "TypedSQL is the best way to express the full power of SQL in queries. Fully type-safe, with auto-completion, and a fantastic DX for using raw SQL with Prisma.",
+};
+
+export default function TypedSQLPage() {
+ return (
+
+
+
+
+
+
+ TypedSQL
+
+
+ Fully type-safe
+ raw SQL
+
+
+ TypedSQL is the best way to express the full power of SQL in queries. Fully type-safe,
+ with auto-completion, and a fantastic DX for using raw SQL with Prisma.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Raw SQL with type-safety and autocompletion
+
+
+ TypedSQL gives you even more flexibility and control in your database queries. Start
+ using TypedSQL in any new or existing Prisma project.
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/site/src/components/typedsql/expand-capabilities.tsx b/apps/site/src/components/typedsql/expand-capabilities.tsx
new file mode 100644
index 0000000000..30db4bfc15
--- /dev/null
+++ b/apps/site/src/components/typedsql/expand-capabilities.tsx
@@ -0,0 +1,46 @@
+import { Card, CardContent, Action } from "@prisma/eclipse";
+
+const capabilities = [
+ {
+ icon: "fa-regular fa-layer-group",
+ title: "Works alongside Prisma Schema & Migrate",
+ description:
+ "TypedSQL complements Prisma Schema and Prisma Migrate. It extends the functionality you're already used to with type-safe SQL queries.",
+ },
+ {
+ icon: "fa-light fa-bolt",
+ title: "Use with Prisma Accelerate",
+ description:
+ "Continue using SQL queries while benefiting from products built for Prisma Client, such as connection pooling and caching provided by Accelerate.",
+ },
+];
+
+export const ExpandCapabilities = () => {
+ return (
+
+
+
+ Expand your capabilities
+
+
+ Built on Prisma Client, TypedSQL pairs well with all Prisma products and features.
+