diff --git a/apps/site/src/app/pricing/pricing-data.ts b/apps/site/src/app/pricing/pricing-data.ts index fa87098395..52e453e40b 100644 --- a/apps/site/src/app/pricing/pricing-data.ts +++ b/apps/site/src/app/pricing/pricing-data.ts @@ -11,17 +11,7 @@ export const symbols = { USD: "$", } as const; -export type Symbol = - | "EUR" - | "AUD" - | "INR" - | "GBP" - | "CAD" - | "BRL" - | "JPY" - | "CNY" - | "KRW" - | "USD"; +export type Symbol = "EUR" | "AUD" | "INR" | "GBP" | "CAD" | "BRL" | "JPY" | "CNY" | "KRW" | "USD"; export type CurrencyMap = Record; @@ -30,7 +20,7 @@ export type PlanPoint = | { text: string; price: CurrencyMap; - } + }; export type PricingPlan = { title: string; @@ -49,15 +39,9 @@ export type UsagePricing = { }; /** Formats a single numeric amount with every supported currency symbol. */ -export function formatAmountForAllCurrencies( - amount: number, - digits: number, -): CurrencyMap { +export function formatAmountForAllCurrencies(amount: number, digits: number): CurrencyMap { return Object.fromEntries( - Object.entries(symbols).map(([code, symbol]) => [ - code, - `${symbol}${amount.toFixed(digits)}`, - ]), + Object.entries(symbols).map(([code, symbol]) => [code, `${symbol}${amount.toFixed(digits)}`]), ) as CurrencyMap; } @@ -189,16 +173,16 @@ export const comparisonSections = [ { title: "Global Cache", rows: [ - ["Cache tag invalidations", "-", "-", "$0.002 per 1,000, max 10,000 per day", "$0.001 per 1,000, max 100,000 per day"], + [ + "Cache tag invalidations", + "-", + "-", + "$0.002 per 1,000, max 10,000 per day", + "$0.001 per 1,000, max 100,000 per day", + ], ["Cache purge requests", "5 per hour", "5 per hour", "10 per hour", "20 per hour"], ], }, - { - title: "Database optimizations", - rows: [ - ["Query insights", "✓", "✓", "✓", "✓"], - ], - }, { title: "Data management", rows: [["View and edit your data", "✓", "✓", "✓", "✓"]], @@ -216,12 +200,12 @@ export const faqs: Array<{ question: string; answer: string }> = [ { question: "What is an operation?", answer: - "

Each action you perform, whether it’s a create, read, update, or delete query against your Prisma Postgres database counts as a single operation. Even if Prisma issues multiple database queries behind the scenes to fulfill your request, it’s still billed as one operation.

By treating simple lookups and complex queries the same, you can directly correlate your database usage and costs with your product usage and user behavior. There’s no need to track write-heavy workloads or worry about bandwidth per operation: each of them is counted and billed the same, making your usage and budgeting simple and straightforward. You can learn more about our operations-based pricing model in our blog post.

", + '

Each action you perform, whether it’s a create, read, update, or delete query against your Prisma Postgres database counts as a single operation. Even if Prisma issues multiple database queries behind the scenes to fulfill your request, it’s still billed as one operation.

By treating simple lookups and complex queries the same, you can directly correlate your database usage and costs with your product usage and user behavior. There’s no need to track write-heavy workloads or worry about bandwidth per operation: each of them is counted and billed the same, making your usage and budgeting simple and straightforward. You can learn more about our operations-based pricing model in our blog post.

', }, { question: "How many operations do I need for my project?", answer: - "

While the answer to this question will vary from project to project, there are a couple of ways to get an idea of what you will need:

You can find an example calculation for a medium-sized workload in our blog post about our operations-based pricing model.

", + '

While the answer to this question will vary from project to project, there are a couple of ways to get an idea of what you will need:

You can find an example calculation for a medium-sized workload in our blog post about our operations-based pricing model.

', }, { question: "Can I use Prisma Postgres for free?", @@ -241,12 +225,12 @@ export const faqs: Array<{ question: string; answer: string }> = [ { question: "What’s the difference between usage pricing and traditional database pricing?", answer: - "

Traditional pricing is where you choose a fixed database size and price, and the amount you pay is generally predictable. But that comes at the expense of flexibility, meaning it’s much harder to scale up and down with your application’s demands. This is usually fine for a small test database, but for production workloads, it can be burdensome: If you have low-traffic periods, and high-traffic periods (most production apps do) then you either under-provision and risk having downtime in busy periods, or you over-provision and pay a lot more for your database.

With usage pricing, you only pay for what you need, when you need it. If your app has a quiet period, you’ll pay less. If things get busy, we can simply scale up to handle it for you. Prisma Postgres comes with budget controls, so you can always stay in control of your spending, while taking advantage of the flexibility. You can learn more on why operations-based pricing is better in our blog post.

", + '

Traditional pricing is where you choose a fixed database size and price, and the amount you pay is generally predictable. But that comes at the expense of flexibility, meaning it’s much harder to scale up and down with your application’s demands. This is usually fine for a small test database, but for production workloads, it can be burdensome: If you have low-traffic periods, and high-traffic periods (most production apps do) then you either under-provision and risk having downtime in busy periods, or you over-provision and pay a lot more for your database.

With usage pricing, you only pay for what you need, when you need it. If your app has a quiet period, you’ll pay less. If things get busy, we can simply scale up to handle it for you. Prisma Postgres comes with budget controls, so you can always stay in control of your spending, while taking advantage of the flexibility. You can learn more on why operations-based pricing is better in our blog post.

', }, { question: "How is Prisma’s pricing different to others?", answer: - "

Prisma’s pricing is designed to provide maximum flexibility to developers, while aiming to be as intuitive as possible.

We charge primarily by operation, which is counted each time you invoke the Prisma ORM client to create, read, update or delete a record. Additionally we also charge for storage. All with a very generous free threshold each month.

We don’t charge by data transfer (bandwidth) or by compute/memory hours, simply because we felt that these metrics are more difficult to grasp as a developer.

We created a pricing model to more closely match how you use your database as a developer, not how the infrastructure works. You can learn more about our approach to an operations-based database pricing model in this blog post.

", + '

Prisma’s pricing is designed to provide maximum flexibility to developers, while aiming to be as intuitive as possible.

We charge primarily by operation, which is counted each time you invoke the Prisma ORM client to create, read, update or delete a record. Additionally we also charge for storage. All with a very generous free threshold each month.

We don’t charge by data transfer (bandwidth) or by compute/memory hours, simply because we felt that these metrics are more difficult to grasp as a developer.

We created a pricing model to more closely match how you use your database as a developer, not how the infrastructure works. You can learn more about our approach to an operations-based database pricing model in this blog post.

', }, { question: "How can I compare Prisma pricing to other providers?", @@ -261,11 +245,11 @@ export const faqs: Array<{ question: string; answer: string }> = [ { question: "I'm an early stage startup, do you offer any discounts?", answer: - "

Building a startup is hard. Prisma helps you stay laser-focused on what matters the most, which is building features and winning users.

We offer $10k in credits to eligible startups. Learn more at prisma.io/startups.

", + '

Building a startup is hard. Prisma helps you stay laser-focused on what matters the most, which is building features and winning users.

We offer $10k in credits to eligible startups. Learn more at prisma.io/startups.

', }, { question: "How do I upgrade my plan if I am using Prisma Postgres via Vercel?", answer: - "

If you're using Prisma Postgres via Vercel, your billing is handled directly by Vercel. To upgrade your plan, you'll need to do so in the Vercel Dashboard. The instructions are available in our docs.

", + '

If you\'re using Prisma Postgres via Vercel, your billing is handled directly by Vercel. To upgrade your plan, you\'ll need to do so in the Vercel Dashboard. The instructions are available in our docs.

', }, ];