-
Notifications
You must be signed in to change notification settings - Fork 905
feat: DR-7738 partners page #7709
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
carlagn
wants to merge
5
commits into
main
Choose a base branch
from
feat/DR-7738-partners
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 43 additions & 0 deletions
43
apps/site/public/illustrations/partners/partners_0_light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
252 changes: 252 additions & 0 deletions
252
apps/site/public/illustrations/partners/partners_1_light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 48 additions & 0 deletions
48
apps/site/public/illustrations/partners/partners_2_light.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,302 @@ | ||
| import type { Metadata } from "next"; | ||
| import { | ||
| SITE_HOME_DESCRIPTION, | ||
| SITE_HOME_TITLE, | ||
| } from "../../lib/blog-metadata"; | ||
| import { Accordion, Accordions, Button } from "@prisma/eclipse"; | ||
| import { CardSection } from "@/components/homepage/card-section/card-section"; | ||
| import { Quote } from "@prisma-docs/ui/components/quote"; | ||
| import { PartnersTable } from "@/components/partners/partners-table"; | ||
| import { Form } from "@/components/partners/form"; | ||
|
|
||
| const twoCol = [ | ||
| { | ||
| content: ( | ||
| <div className="flex flex-col gap-4"> | ||
| <h3 className="text-foreground-neutral stretch-display text-3xl font-sans-display mt-0 mb-4"> | ||
| Provision & Manage Postgres | ||
| </h3> | ||
| <p className="text-foreground-neutral-weak! text-base"> | ||
| Spin up and manage Prisma Postgres databases on demand with our{" "} | ||
| <b>database management API</b>. Integration is seamless, so databases | ||
| feel like a natural extension of your product rather than a bolt-on | ||
| service, giving your users a smooth, native experience. | ||
| </p> | ||
| <p className="text-foreground-neutral-weak! text-base"> | ||
| You can also let your AI agent take full control through our{" "} | ||
| <b>MCP server</b>, automating database creation and management | ||
| end-to-end. Choose the approach that works best for your product: | ||
| provision directly into users’ existing{" "} | ||
| <a href="https://console.prisma.io/" className="underline"> | ||
| Prisma accounts | ||
| </a>{" "} | ||
| for instant ownership, or manage the databases yourself until users | ||
| are ready to claim them. | ||
| </p> | ||
| <div className="flex gap-4 items-center justify-start mx-auto md:ml-0"> | ||
| <a href="https://create-db.prisma.io/" className="link-btn orm"> | ||
| <span>Try demo</span> | ||
| <i className="fa-regular fa-arrow-right ml-1" /> | ||
| </a> | ||
| <a | ||
| href="/docs/postgres/introduction/management-api" | ||
| className="link-btn orm" | ||
| > | ||
| <span>Management API Docs</span> | ||
| <i className="fa-regular fa-arrow-right ml-1" /> | ||
| </a> | ||
| </div> | ||
| </div> | ||
| ), | ||
| imageUrl: "/illustrations/partners/partners_0", | ||
| imageAlt: "Partners illustration", | ||
| mobileImageUrl: "/illustrations/partners/partners_0", | ||
| mobileImageAlt: "Partners illustration", | ||
| logos: null, | ||
| useDefaultLogos: true, | ||
| visualPosition: "right" as const, | ||
| visualType: "image" as const, | ||
| }, | ||
| { | ||
| content: ( | ||
| <div className="flex flex-col gap-4"> | ||
| <h3 className="text-foreground-neutral stretch-display text-3xl font-sans-display mt-0 mb-4"> | ||
| A Built-in Data Explorer | ||
| </h3> | ||
| <p className="text-foreground-neutral-weak! text-base"> | ||
| Complete your database experience with{" "} | ||
| <a href="/studio" className="underline"> | ||
| Prisma Studio | ||
| </a> | ||
| , an embeddable UI built for your provisioned Prisma Postgres | ||
| databases. Explore tables and relationships, apply powerful filters | ||
| with ease, and edit data directly in an intuitive interface. | ||
| </p> | ||
| <p className="text-foreground-neutral-weak! text-base"> | ||
| Studio blends seamlessly into your product’s design and workflow, with | ||
| full white-label support and customization to match your platform’s | ||
| design system. It delivers a native, cohesive experience for your | ||
| users without extra development effort on your side. | ||
| </p> | ||
| <div className="flex gap-4 items-center justify-start mx-auto md:ml-0"> | ||
| <a | ||
| href="/docs/postgres/database/prisma-studio/embedding-studio" | ||
| className="link-btn orm" | ||
| > | ||
| <span>Studio Embedding Docs</span> | ||
| <i className="fa-regular fa-arrow-right ml-1" /> | ||
| </a> | ||
| <a href="/docs/guides/embed-studio-nextjs" className="link-btn orm"> | ||
| <span>Integration Guide</span> | ||
| <i className="fa-regular fa-arrow-right ml-1" /> | ||
| </a> | ||
| </div> | ||
| </div> | ||
| ), | ||
| imageUrl: "/illustrations/partners/partners_1", | ||
| imageAlt: "Partners illustration", | ||
| mobileImageUrl: "/illustrations/partners/partners_1", | ||
| mobileImageAlt: "Partners illustration", | ||
| logos: null, | ||
| useDefaultLogos: true, | ||
| visualPosition: "left" as const, | ||
| visualType: "image" as const, | ||
| }, | ||
| { | ||
| content: ( | ||
| <div className="flex flex-col gap-4"> | ||
| <h3 className="text-foreground-neutral stretch-display text-3xl font-sans-display mt-0 mb-4"> | ||
| Instant App Deployment | ||
| </h3> | ||
| <p className="text-foreground-neutral-weak! text-base"> | ||
| Deploy full-stack applications in a single API call with{" "} | ||
| <a href="https://vercel.com/" className="underline"> | ||
| Vercel | ||
| </a>{" "} | ||
| and Prisma! We’ve closely partnered with them to make app deployments | ||
| as simple as adding a <b>deploy</b> button to your workflow. Every | ||
| deployment is production-ready, with database connectivity | ||
| preconfigured and automatic scaling across Vercel’s global edge | ||
| network. | ||
| </p> | ||
| <p className="text-foreground-neutral-weak! text-base"> | ||
| Seamless user claiming allows entire deployments (database + app) to | ||
| be transferred into users’ own Vercel and Prisma accounts. Perfect for | ||
| spinning up complete development environments or handing off live | ||
| apps. | ||
| </p> | ||
| <div className="flex gap-4 items-center justify-start mx-auto md:ml-0"> | ||
| <a | ||
| href="https://app-deploy-demo.prisma.io/" | ||
| className="link-btn orm" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| > | ||
| <span>Try demo</span> | ||
| <i className="fa-regular fa-arrow-right ml-1" /> | ||
| </a> | ||
| <a | ||
| href="https://pris.ly/claim-vercel-guide" | ||
| className="link-btn orm" | ||
| target="_blank" | ||
| rel="noopener noreferrer" | ||
| > | ||
| <span>Integration Guide</span> | ||
| <i className="fa-regular fa-arrow-right ml-1" /> | ||
| </a> | ||
| </div> | ||
| </div> | ||
| ), | ||
| imageUrl: "/illustrations/partners/partners_2", | ||
| imageAlt: "Partners illustration", | ||
| mobileImageUrl: "/illustrations/partners/partners_2", | ||
| mobileImageAlt: "Partners illustration", | ||
| logos: null, | ||
| useDefaultLogos: true, | ||
| visualPosition: "right" as const, | ||
| visualType: "image" as const, | ||
| }, | ||
| ]; | ||
|
|
||
| export const metadata: Metadata = { | ||
| title: SITE_HOME_TITLE, | ||
| description: SITE_HOME_DESCRIPTION, | ||
| }; | ||
|
|
||
| export default function Partners() { | ||
| return ( | ||
| <main className="flex-1 w-full z-1 "> | ||
| <div className="hero pt-36 -mt-24 flex items-center justify-center px-4 relative flex-col gap-8"> | ||
| <div className="absolute inset-0 z-0 bg-[linear-gradient(180deg,var(--color-foreground-orm)_0%,var(--color-background-default)_100%)] opacity-20"></div> | ||
| <div className="flex flex-col gap-4 z-1 relative"> | ||
| <h5 className="font-sans-display text-foreground-orm uppercase stretch-display text-center mx-auto"> | ||
| Prisma Partners | ||
| </h5> | ||
| <h1 className="text-6xl stretch-display mb-0 text-center mt-0 font-sans-display text-foreground-neutral max-w-224 mx-auto"> | ||
| Add mission critical infra to your platform in hours, not weeks. | ||
| </h1> | ||
| </div> | ||
| <div className="content relative z-1 flex flex-col gap-8 pb-12"> | ||
| <p className="text-center text-foreground-neutral max-w-2xl mx-auto"> | ||
| Focus on shipping, we'll handle the infrastructure complexity. One | ||
| API call provisions databases in under a second, plus embeddable | ||
| data editing that feels native to your product. Oh, and app hosting | ||
| too! | ||
| </p> | ||
| </div> | ||
| </div> | ||
| <div className="w-screen"> | ||
| <div className="my-12 flex flex-col gap-8"> | ||
| <h2 className="text-foreground-neutral stretch-display text-4xl font-black! font-sans-display my-0 mx-auto"> | ||
| Everything you need from data to deployment | ||
| </h2> | ||
| <p className="text-center text-base text-foreground-neutral-weak max-w-2xl mx-auto -mb-20"> | ||
| From data to deployment, every piece of infra your users need built | ||
| to work together or on its own. Optimized for your platform. | ||
| </p> | ||
| <CardSection cardSection={twoCol} /> | ||
| </div> | ||
| </div> | ||
| <div className="w-screen px-4"> | ||
| <div className="my-12 flex flex-col gap-8 max-w-200 mx-auto"> | ||
| <h2 className="text-foreground-neutral stretch-display text-4xl font-black! font-sans-display my-0 mx-auto"> | ||
| Built for modern platforms | ||
| </h2> | ||
|
|
||
| <Accordions type="single"> | ||
| <Accordion title="AI Code Generators"> | ||
| Database provisioning matches AI generation speed, keeping users | ||
| engaged throughout app creation. Scale-to-zero economics handle | ||
| experimental projects whether they get abandoned or go viral. | ||
| Perfect for high-volume platforms. | ||
| </Accordion> | ||
| <Accordion title="No-code tools"> | ||
| Enable creating data-driven apps without exposing database | ||
| complexity. Visual data browsing and editing integrate perfectly, | ||
| making databases feel like core platform features. | ||
| </Accordion> | ||
| <Accordion title="Developer Tools & IDE"> | ||
| Instant databases for any development need with no setup or | ||
| cleanup required. Reliable provisioning keeps developers in flow | ||
| state instead of context-switching to database administration. | ||
| </Accordion> | ||
| <Accordion title="CI/CD & Testing"> | ||
| Every pipeline run needs isolated test databases. Fast | ||
| provisioning and teardown keeps builds moving, complete isolation | ||
| prevents test conflicts, and scale-to-zero economics make | ||
| high-volume testing affordable. | ||
| </Accordion> | ||
| <Accordion title="Infrastructure Providers"> | ||
| Expand hosting services to include databases without building | ||
| database infrastructure. Revenue sharing creates additional income | ||
| streams while flexible ownership models integrate with existing | ||
| platform flows. | ||
| </Accordion> | ||
| </Accordions> | ||
| </div> | ||
| </div> | ||
| <div className="w-screen px-4"> | ||
| <div className="my-12 py-12 grid md:grid-cols-2 gap-8 max-w-[1200px] mx-auto"> | ||
| <Quote | ||
| color="orm" | ||
| author={{ | ||
| name: "Arnau", | ||
| imageUrl: "/photos/people/arnau.avif", | ||
| title: "Engineer", | ||
| company: "Deno", | ||
| }} | ||
| > | ||
| <p> | ||
| The provisioning experience was smooth and fast. We want to ensure | ||
| the development flow isn’t hindered by the platform. With | ||
| per-branch databases, developers can safely test migrations and | ||
| isolate changes when using Deno Deploy. Prisma made it easy to | ||
| support that. | ||
| </p> | ||
| </Quote> | ||
| <Quote | ||
| className="h-fit my-auto" | ||
| color="orm" | ||
| author={{ | ||
| name: "Sam Goodwin", | ||
| imageUrl: "/photos/people/sam-goodwin.avif", | ||
| title: "Founder", | ||
| company: "Alchemy", | ||
| }} | ||
| > | ||
| <p> | ||
| We were so blown away with the speed of their API, we thought our | ||
| tests were broken. <br /> | ||
| <br /> {"<1s"} to create a database 🤯 | ||
| </p> | ||
| </Quote> | ||
| </div> | ||
| </div> | ||
| <div className="w-screen px-4"> | ||
| <div className="my-12 py-12 w-full gap-8 max-w-[1200px] mx-auto flex flex-col gap-8"> | ||
| <PartnersTable /> | ||
| <h6 className="text-center text-foreground-neutral-weaker text-xs"> | ||
| We're fully GDPR, HIPAA, ISO 27001 and SOC 2 compliant.{" "} | ||
| <a href="https://trust.prisma.io/">Find more details here.</a> | ||
| <br /> | ||
| App hosting partner plans with Vercel are separate, contact us to | ||
| learn more. | ||
| </h6> | ||
| </div> | ||
| </div> | ||
| <div className="w-screen px-4"> | ||
| <div className="my-12 py-12 w-full gap-8 max-w-[1200px] mx-auto flex flex-col"> | ||
| <h2 className="text-foreground-neutral stretch-display text-4xl font-black! font-sans-display my-0 mx-auto text-center"> | ||
| Get in touch | ||
| </h2> | ||
| <p className="text-center text-base text-foreground-neutral-weak max-w-2xl mx-auto"> | ||
| Discuss your platform, pricing, and integration approach. | ||
| <br /> | ||
| Our team works closely with you during integration. | ||
| </p> | ||
| <Form /> | ||
| </div> | ||
| </div> | ||
| </main> | ||
| ); | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| "use client"; | ||
| import Script from "next/script"; | ||
|
|
||
| export const Form = () => ( | ||
| <div className="mx-auto max-w-[887px] w-full"> | ||
| <iframe | ||
| data-tally-src="https://tally.so/embed/wMgZxp?alignLeft=1&hideTitle=1&dynamicHeight=1" | ||
| loading="lazy" | ||
| width="100%" | ||
| height="589" | ||
| allow="autoplay; clipboard-write; encrypted-media" | ||
| title="Partners - Contact form" | ||
| /> | ||
| <Script | ||
| src="https://tally.so/widgets/embed.js" | ||
| onLoad={() => window.Tally?.loadEmbeds()} | ||
| /> | ||
| </div> | ||
| ); |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use partners-specific metadata instead of home-page metadata.
At Lines 162-163, this route inherits home title/description. Set dedicated metadata for
/partnersto avoid incorrect SEO/social snippets.Proposed fix
export const metadata: Metadata = { - title: SITE_HOME_TITLE, - description: SITE_HOME_DESCRIPTION, + title: "Prisma Partners", + description: + "Embed Prisma Postgres, Studio, and deployment workflows into your platform with partner-ready pricing and integration support.", };🤖 Prompt for AI Agents