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 83d24742cf..60a33a977b 100644 --- a/apps/site/src/app/(index)/page.tsx +++ b/apps/site/src/app/(index)/page.tsx @@ -6,6 +6,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"; @@ -23,8 +24,8 @@ const twoCol = [ Postgres that
fits your stack.

- Works with your existing stack, wherever you deploy.Your choice of ORM, frameworks, and - tools, they all just connect. + Works with your existing stack, wherever you deploy.Your choice of + ORM, frameworks, and tools, they all just connect.

), @@ -44,8 +45,9 @@ const twoCol = [ Real Postgres.
Better experience.

- The PostgreSQL millions know and trust in production, ready in seconds with zero - configuration. Automatic backups, observability and compliance. + The PostgreSQL millions know and trust in production, ready in seconds + with zero configuration. Automatic backups, observability and + compliance.

), @@ -109,14 +111,14 @@ export default function SiteHome() {
-

Postgres,
perfectly managed.

- Real Postgres with the developer experience and infrastructure to ship faster. + Real Postgres with the developer experience and infrastructure to + ship faster.

$ -  npx prisma init + +  npx prisma init +
@@ -154,7 +158,8 @@ export default function SiteHome() { }, { title: "Manage databases", - subtitle: "Create, manage and explore databases directly in your IDE.", + subtitle: + "Create, manage and explore databases directly in your IDE.", imageUrl: "/illustrations/homepage/ide", imageAlt: "IDE", icon: "fa-light fa-screwdriver-wrench", @@ -178,7 +183,8 @@ export default function SiteHome() { }, { title: "Browse your data", - subtitle: "Explore, filter, and edit your data with an interface.", + subtitle: + "Explore, filter, and edit your data with an interface.", imageUrl: "/illustrations/homepage/data", imageAlt: "Data browsing", icon: "fa-light fa-magnifying-glass-arrow-right", @@ -204,8 +210,8 @@ export default function SiteHome() {

- Give your users instant production-ready Postgres, create databases, add a built-in - data browser, and personalize it. + Give your users instant production-ready Postgres, create + databases, add a built-in data browser, and personalize it.

-
-
- 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 ee461328fa..1cda50c790 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"; const what_we_care_about = [ { content: ( -
+

Open-Source

@@ -80,7 +80,7 @@ const what_we_care_about = [ mobileImageAlt: "About", logos: null, useDefaultLogos: true, - alignItems: "items-start" as const, + alignItems: "items-center" as const, visualPosition: "left" as const, visualType: "image" as const, }, @@ -145,7 +145,7 @@ const what_we_care_about = [ mobileImageAlt: "About", logos: null, useDefaultLogos: true, - alignItems: "items-start" as const, + alignItems: "items-center" as const, visualPosition: "right" as const, visualType: "image" as const, }, @@ -336,7 +336,7 @@ export const metadata = createPageMetadata({ export default function About() { return (
-
+
-
+

Join Prisma

@@ -208,7 +208,12 @@ export default function Careers() { Help us empower developers to build data-driven applications.

-
), @@ -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} + )} +
))} @@ -250,7 +275,9 @@ export default function Client() {
{frameworks.title}
-

{frameworks.description}

+

+ {frameworks.description} +

{frameworks.list.map((fw) => ( @@ -260,13 +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} + )} +
))} @@ -275,11 +321,11 @@ export default function Client() {
@@ -292,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.

@@ -311,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 bceebf7383..ded0922950 100644 --- a/apps/site/src/app/community/page.tsx +++ b/apps/site/src/app/community/page.tsx @@ -130,10 +130,10 @@ export default function CommunityPage() {
-

+

- Community -

+ Community +

Join the Prisma Community

@@ -169,10 +169,22 @@ export default function CommunityPage() {

- @@ -304,7 +316,7 @@ export default function CommunityPage() { ))}
-
+ diff --git a/apps/site/src/app/enterprise/page.tsx b/apps/site/src/app/enterprise/page.tsx index 659f65024b..00ead65ca9 100644 --- a/apps/site/src/app/enterprise/page.tsx +++ b/apps/site/src/app/enterprise/page.tsx @@ -354,13 +354,13 @@ export default function EnterprisePage() { return (
{/* Hero */} -
+
-
+
-
+

Enterprise & Solution Providers -

+

Streamline your
development workflow

@@ -371,7 +371,12 @@ export default function EnterprisePage() { developers can focus on business logic.

- - -
- -

- 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 e0280a1a42..8c3d47e9df 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 6fd0761de3..b91746e413 100644 --- a/apps/site/src/app/migrate/page.tsx +++ b/apps/site/src/app/migrate/page.tsx @@ -4,7 +4,8 @@ import HeroCode, { HeroCodeStep } from "@/components/migrate/hero-code"; export const metadata = createPageMetadata({ title: "Prisma Migrate | Hassle-free Database Migrations", - description: "Automatically generate fully customizable database schema migrations for PostgreSQL, MySQL, MariaDB or SQLite.", + description: + "Automatically generate fully customizable database schema migrations for PostgreSQL, MySQL, MariaDB or SQLite.", path: "/migrate", ogImage: "/og/og-migrate.png", }); @@ -79,7 +80,7 @@ ALTER TABLE "Post" ADD FOREIGN KEY ("authorId") REFERENCES export default function Migrate() { return (

-
+
@@ -92,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.

@@ -143,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.

@@ -157,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.

@@ -182,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.

@@ -195,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.

@@ -207,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.

@@ -228,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.

@@ -240,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.

@@ -252,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.

@@ -276,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.

@@ -293,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.

@@ -310,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.

@@ -327,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.

@@ -344,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 6f74ae17b7..b7b8ee8414 100644 --- a/apps/site/src/app/newsletter/page.tsx +++ b/apps/site/src/app/newsletter/page.tsx @@ -94,7 +94,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 2281693040..53c26b245c 100644 --- a/apps/site/src/app/orm/page.tsx +++ b/apps/site/src/app/orm/page.tsx @@ -1,8 +1,8 @@ import { createSoftwareApplicationStructuredData } from "@/lib/structured-data"; import { createPageMetadata } from "@/lib/page-metadata"; -import { Action, Button, Card, Separator } from "@prisma/eclipse"; +import { Action, Button, Separator } from "@prisma/eclipse"; +import { PageFooterCta } from "@/components/page-footer-cta"; import { JsonLd } from "@prisma-docs/ui/components/json-ld"; -import { Bento } from "@/components/homepage/bento"; import { CardSection } from "@/components/homepage/card-section/card-section"; import review from "../../data/homepage.json"; import Testimonials from "../../components/homepage/testimonials"; @@ -156,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 @@ -361,17 +361,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 bccbf90382..7b59daa43f 100644 --- a/apps/site/src/app/postgres/page.tsx +++ b/apps/site/src/app/postgres/page.tsx @@ -1,5 +1,6 @@ import type { Metadata } from "next"; 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"; @@ -21,9 +22,9 @@ const twoCol = [ you already know

- This is the mature, proven, and production-tested PostgreSQL millions of developers - already rely on. Standard SQL and wire protocol, Postgres extensions like pgvector, and - data import with pg_dump. + This is the mature, proven, and production-tested PostgreSQL millions + of developers already rely on. Standard SQL and wire protocol, + Postgres extensions like pgvector, and data import with pg_dump.

), @@ -47,8 +48,8 @@ const twoCol = [ zero configuration

- Handles connection pooling automatically, and runs on bare metal and unikernels for - maximum performance. + Handles connection pooling automatically, and runs on bare metal and + unikernels for maximum performance.

), @@ -71,9 +72,9 @@ const twoCol = [ from day one

- Automated backups, encryption at rest and in transit, full tenant isolation and - enterprise-grade compliance. Everything you need to ship with confidence, managed - automatically. + Automated backups, encryption at rest and in transit, full tenant + isolation and enterprise-grade compliance. Everything you need to ship + with confidence, managed automatically.

), @@ -139,13 +140,23 @@ export default async function SiteHome() { Build, test and ship faster with zero infrastructure to manage.

- -
@@ -295,35 +316,19 @@ export default async function SiteHome() {
- +
); } diff --git a/apps/site/src/app/pricing/page.tsx b/apps/site/src/app/pricing/page.tsx index 4d37b6eaf6..38372de06b 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: "Pricing — Prisma Postgres Plans & Features", @@ -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 338998bff6..c1bca026e2 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 a6a28a9545..caa04b5605 100644 --- a/apps/site/src/app/showcase/page.tsx +++ b/apps/site/src/app/showcase/page.tsx @@ -13,7 +13,8 @@ import data from "@/data/showcase"; import { PostCard } from "@/components/showcase/post-card"; const SHOWCASE_TITLE = "Prisma Showcase | Customer Success stories"; -const SHOWCASE_DESCRIPTION = "Learn how companies are leveraging our powerful, next-generation, type-safe ORM for Node.js."; +const SHOWCASE_DESCRIPTION = + "Learn how companies are leveraging our powerful, next-generation, type-safe ORM for Node.js."; export const metadata: Metadata = { title: SHOWCASE_TITLE, @@ -45,7 +46,7 @@ export default function EnterprisePage() { {/* Hero */}
-
+

Made with Prisma

@@ -98,7 +99,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 7f949ea7ab..112190812f 100644 --- a/apps/site/src/app/startups/page.tsx +++ b/apps/site/src/app/startups/page.tsx @@ -57,8 +57,8 @@ const testimonials = [ { quote: ( <> - We adopted Prisma conventions as our standard, and it saves lots of time from having - to reinvent things ourselves. + We adopted Prisma conventions as our standard, and it saves lots + of time from having to reinvent things ourselves. ), author: "Yuval Hazaz", @@ -70,8 +70,8 @@ const testimonials = [ { quote: ( <> - Thanks to Prisma, we can seamlessly scale our applications without concerns about - data layer performance. + Thanks to Prisma, we can seamlessly scale our applications{" "} + without concerns about data layer performance. ), author: "Matti Nannt", @@ -83,8 +83,9 @@ const testimonials = [ { quote: ( <> - Entire SaaS businesses have been built on top of the Prisma ecosystem— including OSS ones - like Dub.co. Have been loving the recent performance improvements as well + Entire SaaS businesses have been built on top of the Prisma ecosystem— + including OSS ones like Dub.co. Have been loving the recent performance + improvements as well ), author: "Steven Tey", @@ -99,16 +100,17 @@ export default function StartupsPage() { return (
{/* Hero */} -
-
+
+

Fuel your startup's success with Prisma

-

- Get exclusive 1:1 guidance from Prisma's database experts, and have your - database bill covered for a year and up to $10,000. +

+ Get exclusive 1:1 guidance from Prisma's database + experts, and have your database bill covered for a year and up to + $10,000.

-