diff --git a/apps/site/public/icons/technologies/apollo_light.svg b/apps/site/public/icons/technologies/apollo_light.svg new file mode 100644 index 0000000000..1f5b26adef --- /dev/null +++ b/apps/site/public/icons/technologies/apollo_light.svg @@ -0,0 +1 @@ + diff --git a/apps/site/public/icons/technologies/express_light.svg b/apps/site/public/icons/technologies/express_light.svg new file mode 100644 index 0000000000..358ff84ac6 --- /dev/null +++ b/apps/site/public/icons/technologies/express_light.svg @@ -0,0 +1 @@ + diff --git a/apps/site/public/icons/technologies/planetscale.svg b/apps/site/public/icons/technologies/planetscale.svg index 969c4ae9c3..706477879c 100644 --- a/apps/site/public/icons/technologies/planetscale.svg +++ b/apps/site/public/icons/technologies/planetscale.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/apps/site/public/icons/technologies/planetscale_light.svg b/apps/site/public/icons/technologies/planetscale_light.svg new file mode 100644 index 0000000000..969c4ae9c3 --- /dev/null +++ b/apps/site/public/icons/technologies/planetscale_light.svg @@ -0,0 +1 @@ + \ No newline at end of file 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 index dc3bd736ab..f7d269a7b6 100644 --- 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 @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/site/public/illustrations/typedsql/full-controll-sql_light.svg b/apps/site/public/illustrations/typedsql/full-controll-sql_light.svg index 0bdae437cb..987cc45bcf 100644 --- a/apps/site/public/illustrations/typedsql/full-controll-sql_light.svg +++ b/apps/site/public/illustrations/typedsql/full-controll-sql_light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/site/public/illustrations/typedsql/great-dx_light.svg b/apps/site/public/illustrations/typedsql/great-dx_light.svg index 641ee98d6d..9180a24609 100644 --- a/apps/site/public/illustrations/typedsql/great-dx_light.svg +++ b/apps/site/public/illustrations/typedsql/great-dx_light.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/apps/site/src/app/(index)/page.tsx b/apps/site/src/app/(index)/page.tsx index 50a3286202..b8df60e736 100644 --- a/apps/site/src/app/(index)/page.tsx +++ b/apps/site/src/app/(index)/page.tsx @@ -5,6 +5,7 @@ import { CopyCode } from "@/components/homepage/copy-btn"; import { Bento } from "@/components/homepage/bento"; import { CardSection } from "@/components/homepage/card-section/card-section"; import { ConsoleCtaButton } from "@/components/console-cta-button"; +import { PageFooterCta } from "@/components/page-footer-cta"; import review from "../../data/homepage.json"; import Testimonials from "../../components/homepage/testimonials"; // Antigravity is a purely decorative particle animation — skip SSR to keep @@ -229,42 +230,20 @@ export default function SiteHome() { )} {/* Footer CTA Section */} -
-
-
-
-
-

- Ready to try Prisma? -

-

- Deploy a Postgres database instantly. -

-
-
- - Create your first Database - - - -
-
- Free to get started, no credit card needed. -
-
-
-
-
+ ); } diff --git a/apps/site/src/app/about/page.tsx b/apps/site/src/app/about/page.tsx index 00749abe23..91b93e7338 100644 --- a/apps/site/src/app/about/page.tsx +++ b/apps/site/src/app/about/page.tsx @@ -19,7 +19,7 @@ import MasonryPict from "@/components/careers/masonry-client"; const what_we_care_about = [ { content: ( -
+

Open-Source

@@ -82,7 +82,7 @@ const what_we_care_about = [ "Illustration representing open-source contributions and the Prisma FOSS Fund", logos: null, useDefaultLogos: true, - alignItems: "items-start" as const, + alignItems: "items-center" as const, visualPosition: "left" as const, visualType: "image" as const, }, @@ -148,7 +148,7 @@ const what_we_care_about = [ "Illustration representing Prisma's climate change commitments", logos: null, useDefaultLogos: true, - alignItems: "items-start" as const, + alignItems: "items-center" as const, visualPosition: "right" as const, visualType: "image" as const, }, @@ -388,7 +388,7 @@ export const metadata = createPageMetadata({ export default function About() { return (
-
+
-
+

Join Prisma

diff --git a/apps/site/src/app/client/page.tsx b/apps/site/src/app/client/page.tsx index 844bb0d66f..4e2915c83a 100644 --- a/apps/site/src/app/client/page.tsx +++ b/apps/site/src/app/client/page.tsx @@ -29,7 +29,8 @@ const databases = { }, { name: "MariaDB", - icon: "/icons/technologies/mariadb.svg", + icon: "/icons/technologies/mariadbdark.svg", + icon_light: "/icons/technologies/mariadb.svg", url: "/", }, { @@ -49,7 +50,8 @@ const databases = { }, { name: "PlanetScale", - icon: "/icons/companies/planetscale.svg", + icon: "/icons/technologies/planetscale.svg", + icon_light: "/icons/companies/planetscale.svg", url: "/", }, { @@ -71,7 +73,8 @@ const frameworks = { }, { name: "Next.js", - icon: "/icons/technologies/nextjs.svg", + icon: "/icons/technologies/nextjs-light.svg", + icon_light: "/icons/technologies/nextjs.svg", url: "/nextjs", }, { @@ -82,6 +85,7 @@ const frameworks = { { name: "Apollo", icon: "/icons/technologies/apollo.svg", + icon_light: "/icons/technologies/apollo_light.svg", url: "/apollo", }, { @@ -97,6 +101,7 @@ const frameworks = { { name: "ExpressJS", icon: "/icons/technologies/express.svg", + icon_light: "/icons/technologies/express_light.svg", url: "/express", }, { @@ -109,7 +114,7 @@ const frameworks = { const twoCol = [ { content: ( -
+
Editor Integration @@ -119,13 +124,14 @@ const twoCol = [

- The best code is the code that writes itself. Prisma Client gives you a fantastic - autocomplete experience so you can move quickly and be sure you don't write an invalid - query. Our obsession with type safety means you can rest assured that your code works as - expected, every time. + The best code is the code that writes itself. Prisma Client gives you + a fantastic autocomplete experience so you can move quickly and be + sure you don't write an invalid query. Our obsession with type safety + means you can rest assured that your code works as expected, every + time.

), @@ -140,7 +146,7 @@ const twoCol = [ }, { content: ( -
+
TypedSQL @@ -150,12 +156,13 @@ const twoCol = [

- Execute SQL queries directly against your database without losing the benefits of Prisma’s - type-checking and auto-completion. TypedSQL leverages the capabilities of Prisma Client to - write raw SQL queries that are type-checked at compile time. + Execute SQL queries directly against your database without losing the + benefits of Prisma’s type-checking and auto-completion. TypedSQL + leverages the capabilities of Prisma Client to write raw SQL queries + that are type-checked at compile time.

), @@ -174,21 +181,22 @@ const twoCol = [ export default function Client() { return (
-
+
Prisma Client
-

+

Intuitive database client for TypeScript and Node.js
Database Migrations

- The Prisma Client works seamlessly across languages and databases. Ship faster by writing - less SQL. Avoid mistakes with a fully type-safe API tailored specifically for your app. + The Prisma Client works seamlessly across languages and databases. + Ship faster by writing less SQL. Avoid mistakes with a fully type-safe + API tailored specifically for your app.

@@ -198,7 +206,7 @@ export default function Client() {
- {db.name} +
+ {db.name} + {db.icon_light && ( + {db.name} + )} +
))} @@ -244,7 +275,9 @@ export default function Client() {
{frameworks.title}
-

{frameworks.description}

+

+ {frameworks.description} +

{frameworks.list.map((fw) => ( @@ -254,7 +287,32 @@ export default function Client() { size="4xl" className="h-[75px]! w-[75px]! hover:bg-background-neutral-strong" > - {fw.name} +
+ {fw.name} + {fw.icon_light && ( + {fw.name} + )} +
))} @@ -263,11 +321,11 @@ export default function Client() {
@@ -280,14 +338,15 @@ export default function Client() { Visual database browser

- Prisma Studio is the easiest way to explore and manipulate data in your Prisma - projects. Understand your data by browsing across tables, filter, paginate, traverse - relations and edit your data with safety. + Prisma Studio is the easiest way to explore and manipulate data + in your Prisma projects. Understand your data by browsing across + tables, filter, paginate, traverse relations and edit your data + with safety.

@@ -299,14 +358,15 @@ export default function Client() { Hassle-free migrations

- Prisma Migrate auto-generates SQL migrations from your Prisma schema. These - migration files are fully customizable, giving you full control and ultimate - flexibility — from local development to production environments. + Prisma Migrate auto-generates SQL migrations from your Prisma + schema. These migration files are fully customizable, giving you + full control and ultimate flexibility — from local development + to production environments.

diff --git a/apps/site/src/app/community/page.tsx b/apps/site/src/app/community/page.tsx index ab0a83230c..5783254723 100644 --- a/apps/site/src/app/community/page.tsx +++ b/apps/site/src/app/community/page.tsx @@ -102,10 +102,10 @@ export default function CommunityPage() {
-

+

- Community -

+ Community +

Join the Prisma Community

@@ -153,7 +153,10 @@ export default function CommunityPage() { rel="noopener noreferrer" > Join Discord - + @@ -285,7 +288,7 @@ export default function CommunityPage() { ))}
-
+ diff --git a/apps/site/src/app/enterprise/page.tsx b/apps/site/src/app/enterprise/page.tsx index fa39bed2d8..c2e429a3bd 100644 --- a/apps/site/src/app/enterprise/page.tsx +++ b/apps/site/src/app/enterprise/page.tsx @@ -337,13 +337,13 @@ export default function EnterprisePage() { return (
{/* Hero */} -
+
-
+
-
+

Enterprise & Solution Providers -

+

Streamline your
development workflow

@@ -448,7 +448,7 @@ export default function EnterprisePage() { key={db.name} text={db.name} url={db.url} - className="bg-transparent! [&>div]:bg-transparent! hover:bg-background-default!" + className="bg-transparent! [&>div]:bg-transparent! hover:bg-background-default! border stroke-border-neutral" > {/* Hero */} -
+

Event Code of Conduct

diff --git a/apps/site/src/app/events/page.tsx b/apps/site/src/app/events/page.tsx index b31888250f..08fb6b6a6d 100644 --- a/apps/site/src/app/events/page.tsx +++ b/apps/site/src/app/events/page.tsx @@ -51,7 +51,7 @@ export default function EventsPage() { {/* Hero */}
-

+

Events

@@ -59,8 +59,9 @@ export default function EventsPage() { Prisma Events

- Find out when the next event or Meetup is happening, at which conferences you can see - Prisma folks, and explore the content from previous events. + Find out when the next event or Meetup is happening, at which + conferences you can see Prisma folks, and explore the content from + previous events.

@@ -146,7 +147,12 @@ export default function EventsPage() { >
- {event.name} + {event.name}

diff --git a/apps/site/src/app/mcp/_components/mcp-cta-section.tsx b/apps/site/src/app/mcp/_components/mcp-cta-section.tsx index 54157df717..fb0584ef77 100644 --- a/apps/site/src/app/mcp/_components/mcp-cta-section.tsx +++ b/apps/site/src/app/mcp/_components/mcp-cta-section.tsx @@ -1,4 +1,4 @@ -import { Button } from "@prisma/eclipse"; +import { PageFooterCta } from "@/components/page-footer-cta"; export function McpCtaSection({ docsHref, @@ -8,43 +8,14 @@ export function McpCtaSection({ readDocsHref: string; }) { return ( -

-
-
-
-
-

- Start Building with AI -

-

- Join thousands of developers, and agents, already using Prisma MCP for faster, more - intuitive database workflows. -

-
- -
- - -

- 2-minute setup • Works with all MCP tools -

-
-
-
-
-
+ ); } diff --git a/apps/site/src/app/mcp/_components/mcp-hero-section.tsx b/apps/site/src/app/mcp/_components/mcp-hero-section.tsx index a251113925..2dca4d0641 100644 --- a/apps/site/src/app/mcp/_components/mcp-hero-section.tsx +++ b/apps/site/src/app/mcp/_components/mcp-hero-section.tsx @@ -22,9 +22,9 @@ export function McpHeroSection({ features: readonly McpHeroFeature[]; }) { return ( -
+
-
+

diff --git a/apps/site/src/app/migrate/page.tsx b/apps/site/src/app/migrate/page.tsx index 119e189c2d..ef9b83b1fe 100644 --- a/apps/site/src/app/migrate/page.tsx +++ b/apps/site/src/app/migrate/page.tsx @@ -80,7 +80,7 @@ ALTER TABLE "Post" ADD FOREIGN KEY ("authorId") REFERENCES export default function Migrate() { return (

-
+
@@ -93,8 +93,8 @@ export default function Migrate() {

- Prisma Migrate uses Prisma schema changes to automatically generate fully customizable - database schema migrations + Prisma Migrate uses Prisma schema changes to automatically generate + fully customizable database schema migrations

- Migrations are automatically generated so you don't have to write the SQL by hand. + Migrations are automatically generated so you don't have to + write the SQL by hand.

@@ -144,8 +145,8 @@ export default function Migrate() {

- Migrate generates SQL migrations, ensuring migrations will always result in the same - database schema across environments. + Migrate generates SQL migrations, ensuring migrations will + always result in the same database schema across environments.

@@ -158,8 +159,8 @@ export default function Migrate() {

- Generated SQL migrations can be fully customized giving you full control over the - exact changes. + Generated SQL migrations can be fully customized giving you full + control over the exact changes.

@@ -183,8 +184,9 @@ export default function Migrate() { Prototype fast without migrations

- While prototyping you can create the database schema quickly using the prisma - db push command without creating migrations. + While prototyping you can create the database schema + quickly using the prisma db push command without creating + migrations.

@@ -196,8 +198,8 @@ export default function Migrate() { Integrated seeding

- Quickly seed your database with data by defining a seed script in JavaScript, - TypeScript or Shell. + Quickly seed your database with data by defining a seed + script in JavaScript, TypeScript or Shell.

@@ -208,7 +210,8 @@ export default function Migrate() { Smart problem resolution

- Migrate detects database schema drift and assists you in resolving them. + Migrate detects database schema drift and assists you in + resolving them.

@@ -229,8 +232,8 @@ export default function Migrate() { Dedicated production workflows

- Migrate supports dedicated workflows for carrying out migrations safely in - production. + Migrate supports dedicated workflows for carrying out + migrations safely in production.

@@ -241,8 +244,9 @@ export default function Migrate() { CI/CD Integration

- Migrate can be integrated into CI/CD pipelines, e.g. GitHub Actions, to - automate applying migrations before deployment. + Migrate can be integrated into CI/CD pipelines, e.g. + GitHub Actions, to automate applying migrations before + deployment.

@@ -253,8 +257,9 @@ export default function Migrate() { Conflict detection and resolution

- Migrate keeps track of applied migrations and provides tools to detect and - resolve conflicts and drifts between migrations and the database schema. + Migrate keeps track of applied migrations and provides + tools to detect and resolve conflicts and drifts between + migrations and the database schema.

@@ -277,9 +282,10 @@ export default function Migrate() {

- When using Prisma Migrate with Prisma Client, schema changes are type checked in - your application code. This eliminates errors that arise when database schema - changes require changes to the application code. + When using Prisma Migrate with Prisma Client, schema changes are + type checked in your application code. This eliminates errors + that arise when database schema changes require changes to the + application code.

@@ -294,9 +300,10 @@ export default function Migrate() {

- Prisma Migrate generates migrations based on changes in the Prisma schema – a - human-readable declarative definition of your database schema. This allows you to - focus on your desired database schema rather than the steps to get there. + Prisma Migrate generates migrations based on changes in the + Prisma schema – a human-readable declarative definition of your + database schema. This allows you to focus on your desired + database schema rather than the steps to get there.

@@ -311,9 +318,9 @@ export default function Migrate() {

- With Prisma Migrate, generated migrations are tracked in your Git repository, - allowing you to make changes to your database schema in tandem with your application - code. + With Prisma Migrate, generated migrations are tracked in your + Git repository, allowing you to make changes to your database + schema in tandem with your application code.

@@ -328,9 +335,9 @@ export default function Migrate() {

- With Prisma Migrate, generated migrations are tracked in your Git repository, - allowing you to make changes to your database schema in tandem with your application - code. + With Prisma Migrate, generated migrations are tracked in your + Git repository, allowing you to make changes to your database + schema in tandem with your application code.

@@ -345,8 +352,8 @@ export default function Migrate() {

- Prisma Migrate can be adopted in any existing project that uses PostgreSQL, MySQL, - MariaDB, SQL Server, CockroachDB or SQLite. + Prisma Migrate can be adopted in any existing project that uses + PostgreSQL, MySQL, MariaDB, SQL Server, CockroachDB or SQLite.

diff --git a/apps/site/src/app/newsletter/page.tsx b/apps/site/src/app/newsletter/page.tsx index 7b1321a046..0c804cb52b 100644 --- a/apps/site/src/app/newsletter/page.tsx +++ b/apps/site/src/app/newsletter/page.tsx @@ -86,7 +86,7 @@ export default async function NewsletterPage() { return (
-
+

diff --git a/apps/site/src/app/orm/page.tsx b/apps/site/src/app/orm/page.tsx index 926c84ef9a..a4922dba1b 100644 --- a/apps/site/src/app/orm/page.tsx +++ b/apps/site/src/app/orm/page.tsx @@ -1,6 +1,7 @@ import { createSoftwareApplicationStructuredData } from "@/lib/structured-data"; import { createPageMetadata } from "@/lib/page-metadata"; import { Action, Button, Separator } from "@prisma/eclipse"; +import { PageFooterCta } from "@/components/page-footer-cta"; import { JsonLd } from "@prisma-docs/ui/components/json-ld"; import { CardSection } from "@/components/homepage/card-section/card-section"; import review from "../../data/homepage.json"; @@ -155,7 +156,7 @@ const twoCol_2 = [ asChild variant="orm" size="xl" - className="w-fit mx-auto lg:w-full" + className="w-fit mx-auto md:mx-0" > Explore Benchmarks @@ -364,17 +365,17 @@ export default function ORM() { > {stat.title} -

+

{stat.title}

-

+

{stat.description}

)} - +
); } diff --git a/apps/site/src/app/oss-friends/page.tsx b/apps/site/src/app/oss-friends/page.tsx index d2a534d773..c1f1a5c6c2 100644 --- a/apps/site/src/app/oss-friends/page.tsx +++ b/apps/site/src/app/oss-friends/page.tsx @@ -32,7 +32,7 @@ export default async function OSSFriendsPage() { return (
-
+

diff --git a/apps/site/src/app/postgres/page.tsx b/apps/site/src/app/postgres/page.tsx index 104efadc34..cc8213451e 100644 --- a/apps/site/src/app/postgres/page.tsx +++ b/apps/site/src/app/postgres/page.tsx @@ -1,6 +1,7 @@ import { createSoftwareApplicationStructuredData } from "@/lib/structured-data"; import { createPageMetadata } from "@/lib/page-metadata"; import { Button, Card, Action } from "@prisma/eclipse"; +import { PageFooterCta } from "@/components/page-footer-cta"; import { cn } from "@/lib/cn"; import { CardSection } from "@/components/homepage/card-section/card-section"; import { PostgresTabs } from "../../components/postgres"; @@ -313,37 +314,19 @@ export default async function SiteHome() {

-
-
-
-
-

- Try Prisma Postgres -

-

- Deploy a Postgres database instantly. -

-
- -
- Free to get started, no credit card needed. -
-
-
-
+
); } diff --git a/apps/site/src/app/pricing/page.tsx b/apps/site/src/app/pricing/page.tsx index 085dfda4fe..3f81b81815 100644 --- a/apps/site/src/app/pricing/page.tsx +++ b/apps/site/src/app/pricing/page.tsx @@ -2,6 +2,7 @@ import { createPageMetadata } from "@/lib/page-metadata"; import { Accordion, Accordions, Button } from "@prisma/eclipse"; import { faqs } from "./pricing-data"; import { PricingPageContent } from "./pricing-page-content"; +import { PageFooterCta } from "@/components/page-footer-cta"; export const metadata = createPageMetadata({ title: "Prisma Pricing | Prisma Postgres Plans and Usage-Based Pricing", @@ -50,40 +51,19 @@ export default function PricingPage() {
- {/* Try Prisma Postgres */} -
-
-
-
-
-

- Try Prisma Postgres -

-

- Deploy a Postgres database instantly. -

-
- -
- Free to get started, no credit card needed. -
-
-
-
-
+ ); } diff --git a/apps/site/src/app/pricing/pricing-hero-plans.tsx b/apps/site/src/app/pricing/pricing-hero-plans.tsx index 9edc09116c..588b892e8c 100644 --- a/apps/site/src/app/pricing/pricing-hero-plans.tsx +++ b/apps/site/src/app/pricing/pricing-hero-plans.tsx @@ -67,7 +67,7 @@ export function PricingHeroPlans({ className="rounded-md gap-2" label={ <> - + Prisma ORM will always be free } diff --git a/apps/site/src/app/privacy/page.tsx b/apps/site/src/app/privacy/page.tsx index 80270a8e1b..4dc2c0e601 100644 --- a/apps/site/src/app/privacy/page.tsx +++ b/apps/site/src/app/privacy/page.tsx @@ -14,7 +14,7 @@ export default function PrivacyPage() { return (
{/* Hero */} -
+

Privacy Policy

diff --git a/apps/site/src/app/showcase/page.tsx b/apps/site/src/app/showcase/page.tsx index aebde6ba14..194d9dbc51 100644 --- a/apps/site/src/app/showcase/page.tsx +++ b/apps/site/src/app/showcase/page.tsx @@ -29,7 +29,7 @@ export default function EnterprisePage() { {/* Hero */}
-
+

Made with Prisma

@@ -90,7 +90,7 @@ export default function EnterprisePage() {
-
+

Built with Prisma

diff --git a/apps/site/src/app/sla/page.tsx b/apps/site/src/app/sla/page.tsx index 6fe289d184..fffe9b10ce 100644 --- a/apps/site/src/app/sla/page.tsx +++ b/apps/site/src/app/sla/page.tsx @@ -14,7 +14,7 @@ export default function SlaPage() { return (
{/* Hero */} -
+

Prisma Service Level Agreement

diff --git a/apps/site/src/app/startups/page.tsx b/apps/site/src/app/startups/page.tsx index 60da4225eb..d7c2c287e6 100644 --- a/apps/site/src/app/startups/page.tsx +++ b/apps/site/src/app/startups/page.tsx @@ -72,8 +72,8 @@ export default function StartupsPage() { return (
{/* Hero */} -
-
+
+