pricing.ts794 lines · main
1type Pricing = {
2 database: PricingCategory
3 auth: PricingCategory
4 storage: PricingCategory
5 edge_functions: PricingCategory
6 realtime: PricingCategory
7 dashboard: PricingCategory
8 security: PricingCategory
9 support: PricingCategory
10}
11
12type PricingCategory = {
13 title: string
14 icon: string
15 features: PricingFeature[]
16}
17
18type PricingFeature = {
19 title: string
20 key: FeatureKey
21 plans: {
22 free: boolean | string | string[]
23 pro: boolean | string | string[]
24 team: boolean | string | string[]
25 enterprise: boolean | string | string[]
26 }
27 usage_based: boolean
28}
29
30export type FeatureKey =
31 | 'database.dedicatedPostgresDatabase'
32 | 'database.unlimitedApiRequests'
33 | 'database.size'
34 | 'database.advancedDiskConfig'
35 | 'database.automaticBackups'
36 | 'database.pitr'
37 | 'database.pausing'
38 | 'database.branching'
39 | 'database.egress'
40 | 'auth.totalUsers'
41 | 'auth.maus'
42 | 'auth.userDataOwnership'
43 | 'auth.anonSignIns'
44 | 'auth.socialOAuthProviders'
45 | 'auth.customSMTPServer'
46 | 'auth.removeBrivenBranding'
47 | 'auth.auditLogs'
48 | 'auth.basicMFA'
49 | 'auth.advancedMFAPhone'
50 | 'auth.thirdPartyMAUs'
51 | 'auth.saml'
52 | 'auth.leakedPasswordProtection'
53 | 'auth.singleSessionPerUser'
54 | 'auth.sessionTimeouts'
55 | 'auth.authHooks'
56 | 'auth.advancedSecurityFeatures'
57 | 'storage.size'
58 | 'storage.customAccessControls'
59 | 'storage.maxFileSize'
60 | 'storage.cachedEgress'
61 | 'storage.cdn'
62 | 'storage.transformations'
63 | 'functions.invocations'
64 | 'functions.scriptSize'
65 | 'functions.numberOfFunctions'
66 | 'realtime.postgresChanges'
67 | 'realtime.concurrentConnections'
68 | 'realtime.messagesPerMonth'
69 | 'realtime.maxMessageSize'
70 | 'dashboard.teamMembers'
71 | 'security.platformAuditLogs'
72 | 'security.byoc'
73 | 'security.logRetention'
74 | 'security.logDrain'
75 | 'security.metricsEndpoint'
76 | 'security.soc2'
77 | 'security.iso27001'
78 | 'security.hipaa'
79 | 'security.privateLink'
80 | 'security.sso'
81 | 'security.uptimeSla'
82 | 'security.accessRoles'
83 | 'security.vanityUrls'
84 | 'security.customDomains'
85 | 'support.communitySupport'
86 | 'support.emailSupport'
87 | 'support.emailSupportSla'
88 | 'support.designatedSupport'
89 | 'support.onBoardingSupport'
90 | 'support.designatedCustomerSuccessTeam'
91 | 'support.securityQuestionnaireHelp'
92
93export const pricing: Pricing = {
94 database: {
95 title: 'Database',
96 icon: 'M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4',
97 features: [
98 {
99 key: 'database.dedicatedPostgresDatabase',
100 title: 'Dedicated Postgres Database',
101 plans: {
102 free: true,
103 pro: true,
104 team: true,
105 enterprise: true,
106 },
107 usage_based: false,
108 },
109 {
110 key: 'database.unlimitedApiRequests',
111 title: 'Unlimited API requests',
112 plans: {
113 free: true,
114 pro: true,
115 team: true,
116 enterprise: true,
117 },
118 usage_based: false,
119 },
120 {
121 key: 'database.size',
122 title: 'Database size',
123 plans: {
124 free: '500 MB database size per project included',
125 pro: ['8 GB disk size per project included', 'then $0.125 per GB'],
126 team: ['8 GB disk size per project included', 'then $0.125 per GB'],
127 enterprise: 'Custom',
128 },
129 usage_based: true,
130 },
131 {
132 key: 'database.advancedDiskConfig',
133 title: 'Advanced disk config',
134 plans: {
135 free: false,
136 pro: true,
137 team: true,
138 enterprise: true,
139 },
140 usage_based: false,
141 },
142 {
143 key: 'database.automaticBackups',
144 title: 'Automatic backups',
145 plans: {
146 free: false,
147 pro: '7 days',
148 team: '14 days',
149 enterprise: 'Custom',
150 },
151 usage_based: false,
152 },
153 {
154 key: 'database.pitr',
155 title: 'Point in time recovery',
156 plans: {
157 free: false,
158 pro: '$100 per month per 7 days retention',
159 team: '$100 per month per 7 days retention',
160 enterprise: '$100 per month per 7 days retention, >28 days retention available',
161 },
162 usage_based: false,
163 },
164 {
165 key: 'database.pausing',
166 title: 'Pausing',
167 plans: {
168 free: 'After 1 week of inactivity',
169 pro: 'Never',
170 team: 'Never',
171 enterprise: 'Never',
172 },
173 usage_based: false,
174 },
175 {
176 key: 'database.branching',
177 title: 'Branching',
178 plans: {
179 free: false,
180 pro: '$0.01344 per branch, per hour',
181 team: '$0.01344 per branch, per hour',
182 enterprise: 'Custom',
183 },
184 usage_based: true,
185 },
186 {
187 key: 'database.egress',
188 title: 'Egress',
189 plans: {
190 free: '5 GB included',
191 pro: ['250 GB included', 'then $0.09 per GB'],
192 team: ['250 GB included', 'then $0.09 per GB'],
193 enterprise: 'Custom',
194 },
195 usage_based: true,
196 },
197 ],
198 },
199 auth: {
200 title: 'Auth',
201 icon: 'M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4',
202 features: [
203 {
204 key: 'auth.totalUsers',
205 title: 'Total Users',
206 plans: {
207 free: 'Unlimited',
208 pro: 'Unlimited',
209 team: 'Unlimited',
210 enterprise: 'Unlimited',
211 },
212 usage_based: false,
213 },
214 {
215 key: 'auth.maus',
216 title: 'MAUs',
217 plans: {
218 free: '50,000 included',
219 pro: ['100,000 included', 'then $0.00325 per MAU'],
220 team: ['100,000 included', 'then $0.00325 per MAU'],
221 enterprise: 'Custom',
222 },
223 usage_based: true,
224 },
225 {
226 key: 'auth.userDataOwnership',
227 title: 'User data ownership',
228 plans: {
229 free: true,
230 pro: true,
231 team: true,
232 enterprise: true,
233 },
234 usage_based: false,
235 },
236 {
237 key: 'auth.anonSignIns',
238 title: 'Anonymous Sign-ins',
239 plans: {
240 free: true,
241 pro: true,
242 team: true,
243 enterprise: true,
244 },
245 usage_based: false,
246 },
247
248 {
249 key: 'auth.socialOAuthProviders',
250 title: 'Social OAuth providers',
251 plans: {
252 free: true,
253 pro: true,
254 team: true,
255 enterprise: true,
256 },
257 usage_based: false,
258 },
259 {
260 key: 'auth.customSMTPServer',
261 title: 'Custom SMTP server',
262 plans: {
263 free: true,
264 pro: true,
265 team: true,
266 enterprise: true,
267 },
268 usage_based: false,
269 },
270 {
271 key: 'auth.removeBrivenBranding',
272 title: 'Remove Briven branding from emails',
273 plans: {
274 free: false,
275 pro: true,
276 team: true,
277 enterprise: true,
278 },
279 usage_based: false,
280 },
281 {
282 key: 'auth.auditLogs',
283 title: 'Auth Audit Logs',
284 plans: {
285 free: '1 hour',
286 pro: '7 days',
287 team: '28 days',
288 enterprise: true,
289 },
290 usage_based: false,
291 },
292 {
293 key: 'auth.basicMFA',
294 title: 'Basic Multi-Factor Auth',
295 plans: {
296 free: true,
297 pro: true,
298 team: true,
299 enterprise: true,
300 },
301 usage_based: false,
302 },
303 {
304 key: 'auth.advancedMFAPhone',
305 title: 'Advanced Multi-Factor Auth - Phone',
306 plans: {
307 free: false,
308 pro: ['$75 per month for first project', 'then $10 per month per additional projects'],
309 team: ['$75 per month for first project', 'then $10 per month per additional projects'],
310 enterprise: 'Custom',
311 },
312 usage_based: false,
313 },
314 {
315 key: 'auth.thirdPartyMAUs',
316 title: 'Third-Party MAUs',
317 plans: {
318 free: '50,000 included',
319 pro: ['100,000 included', 'then $0.00325 per MAU'],
320 team: ['100,000 included', 'then $0.00325 per MAU'],
321 enterprise: 'Custom',
322 },
323 usage_based: true,
324 },
325 {
326 key: 'auth.saml',
327 title: 'Single Sign-On (SAML 2.0)',
328 plans: {
329 free: false,
330 pro: ['50 included', 'then $0.015 per MAU'],
331 team: ['50 included', 'then $0.015 per MAU'],
332 enterprise: 'Contact Us',
333 },
334
335 usage_based: false,
336 },
337 {
338 key: 'auth.leakedPasswordProtection',
339 title: 'Leaked password protection',
340 plans: {
341 free: false,
342 pro: true,
343 team: true,
344 enterprise: true,
345 },
346 usage_based: false,
347 },
348 {
349 key: 'auth.singleSessionPerUser',
350 title: 'Single session per user',
351 plans: {
352 free: false,
353 pro: true,
354 team: true,
355 enterprise: true,
356 },
357 usage_based: false,
358 },
359 {
360 key: 'auth.sessionTimeouts',
361 title: 'Session timeouts',
362 plans: {
363 free: false,
364 pro: true,
365 team: true,
366 enterprise: true,
367 },
368 usage_based: false,
369 },
370 {
371 key: 'auth.authHooks',
372 title: 'Auth Hooks',
373 plans: {
374 free: 'Custom Access Token (JWT), Send custom email/SMS',
375 pro: 'Custom Access Token (JWT), Send custom email/SMS',
376 team: 'All',
377 enterprise: 'All',
378 },
379 usage_based: false,
380 },
381 {
382 key: 'auth.advancedSecurityFeatures',
383 title: 'Advanced security features',
384 plans: {
385 free: false,
386 pro: false,
387 team: false,
388 enterprise: 'Contact Us',
389 },
390 usage_based: false,
391 },
392 ],
393 },
394 storage: {
395 title: 'Storage',
396 icon: 'M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4',
397
398 features: [
399 {
400 key: 'storage.size',
401 title: 'Storage',
402 plans: {
403 free: '1 GB included',
404 pro: ['100 GB included', 'then $0.021 per GB'],
405 team: ['100 GB included', 'then $0.021 per GB'],
406 enterprise: 'Custom',
407 },
408 usage_based: true,
409 },
410 {
411 key: 'storage.cachedEgress',
412 title: 'Cached Egress',
413 plans: {
414 free: '5 GB included',
415 pro: ['250 GB included', 'then $0.03 per GB'],
416 team: ['250 GB included', 'then $0.03 per GB'],
417 enterprise: 'Custom',
418 },
419 usage_based: true,
420 },
421 {
422 key: 'storage.customAccessControls',
423 title: 'Custom access controls',
424 plans: {
425 free: true,
426 pro: true,
427 team: true,
428 enterprise: true,
429 },
430 usage_based: false,
431 },
432 {
433 key: 'storage.maxFileSize',
434 title: 'Max file upload size',
435 plans: {
436 free: '50 MB',
437 pro: '500 GB',
438 team: '500 GB',
439 enterprise: 'Custom',
440 },
441 usage_based: false,
442 },
443 {
444 key: 'storage.cdn',
445 title: 'Content Delivery Network',
446 plans: {
447 free: 'Basic CDN',
448 pro: 'Smart CDN',
449 team: 'Smart CDN',
450 enterprise: 'Smart CDN',
451 },
452 usage_based: false,
453 },
454 {
455 key: 'storage.transformations',
456 title: 'Image Transformations',
457 plans: {
458 free: false,
459 pro: ['100 origin images included', 'then $5 per 1000 origin images'],
460 team: ['100 origin images included', 'then $5 per 1000 origin images'],
461 enterprise: 'Custom',
462 },
463 usage_based: true,
464 },
465 ],
466 },
467 edge_functions: {
468 title: 'Edge Functions',
469 icon: 'M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4',
470 features: [
471 {
472 key: 'functions.invocations',
473 title: 'Invocations',
474 plans: {
475 free: '500,000 included',
476 pro: ['2 Million included', 'then $2 per 1 Million'],
477 team: ['2 Million included', 'then $2 per 1 Million'],
478 enterprise: 'Custom',
479 },
480 usage_based: true,
481 },
482 ],
483 },
484 realtime: {
485 title: 'Realtime',
486 icon: 'M15.042 21.672L13.684 16.6m0 0l-2.51 2.225.569-9.47 5.227 7.917-3.286-.672zM12 2.25V4.5m5.834.166l-1.591 1.591M20.25 10.5H18M7.757 14.743l-1.59 1.59M6 10.5H3.75m4.007-4.243l-1.59-1.59',
487 features: [
488 {
489 key: 'realtime.postgresChanges',
490 title: 'Postgres Changes',
491 plans: {
492 free: true,
493 pro: true,
494 team: true,
495 enterprise: true,
496 },
497 usage_based: false,
498 },
499 {
500 key: 'realtime.concurrentConnections',
501 title: 'Concurrent Peak Connections',
502 plans: {
503 free: '200 included',
504 pro: ['500 included', 'then $10 per 1000'],
505 team: ['500 included', 'then $10 per 1000'],
506 enterprise: 'Custom concurrent connections and volume discount',
507 },
508 usage_based: true,
509 },
510 {
511 key: 'realtime.messagesPerMonth',
512 title: 'Messages Per Month',
513 plans: {
514 free: '2 Million included',
515 pro: ['5 Million included', 'then $2.50 per Million'],
516 team: ['5 Million included', 'then $2.50 per Million'],
517 enterprise: 'Volume discounts on messages',
518 },
519 usage_based: true,
520 },
521 {
522 key: 'realtime.maxMessageSize',
523 title: 'Max Message Size',
524 plans: {
525 free: '256 KB',
526 pro: '3 MB',
527 team: '3 MB',
528 enterprise: 'Custom',
529 },
530 usage_based: false,
531 },
532 ],
533 },
534 dashboard: {
535 title: 'Dashboard',
536 icon: 'M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4',
537 features: [
538 {
539 key: 'dashboard.teamMembers',
540 title: 'Team members',
541 plans: {
542 free: 'Unlimited',
543 pro: 'Unlimited',
544 team: 'Unlimited',
545 enterprise: 'Unlimited',
546 },
547 usage_based: false,
548 },
549 ],
550 },
551 security: {
552 title: 'Platform Security and Compliance',
553 icon: 'M9 12.75L11.25 15 15 9.75m-3-7.036A11.959 11.959 0 013.598 6 11.99 11.99 0 003 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285z',
554 features: [
555 {
556 key: 'security.byoc',
557 title: 'BYO cloud',
558 plans: {
559 free: false,
560 pro: false,
561 team: false,
562 enterprise: true,
563 },
564 usage_based: false,
565 },
566 {
567 key: 'security.logRetention',
568 title: 'Log retention (API & Database)',
569 plans: {
570 free: '1 day',
571 pro: '7 days',
572 team: '28 days',
573 enterprise: '90 days',
574 },
575 usage_based: false,
576 },
577 {
578 key: 'security.logDrain',
579 title: 'Log Drain',
580 plans: {
581 free: false,
582 pro: ['$60 per drain per month', '+ $0.20 per million events', '+ $0.09 per GB egress'],
583 team: ['$60 per drain per month', '+ $0.20 per million events', '+ $0.09 per GB egress'],
584 enterprise: 'Custom',
585 },
586 usage_based: true,
587 },
588 {
589 key: 'security.platformAuditLogs',
590 title: 'Platform Audit Logs',
591 plans: {
592 free: false,
593 pro: false,
594 team: true,
595 enterprise: true,
596 },
597 usage_based: false,
598 },
599 {
600 key: 'security.metricsEndpoint',
601 title: 'Metrics endpoint',
602 plans: {
603 free: false,
604 pro: true,
605 team: true,
606 enterprise: true,
607 },
608 usage_based: false,
609 },
610 {
611 key: 'security.soc2',
612 title: 'SOC2',
613 plans: {
614 free: false,
615 pro: false,
616 team: true,
617 enterprise: true,
618 },
619 usage_based: false,
620 },
621 {
622 key: 'security.iso27001',
623 title: 'ISO 27001',
624 plans: {
625 free: false,
626 pro: false,
627 team: true,
628 enterprise: true,
629 },
630 usage_based: false,
631 },
632 {
633 key: 'security.hipaa',
634 title: 'HIPAA',
635 plans: {
636 free: false,
637 pro: false,
638 team: 'Available as paid add-on',
639 enterprise: 'Available as paid add-on',
640 },
641 usage_based: false,
642 },
643 {
644 key: 'security.privateLink',
645 title: 'AWS PrivateLink',
646 plans: {
647 free: false,
648 pro: false,
649 team: true,
650 enterprise: true,
651 },
652 usage_based: false,
653 },
654 {
655 key: 'security.sso',
656 title: 'SSO',
657 plans: {
658 free: false,
659 pro: false,
660 team: 'Contact Us',
661 enterprise: 'Contact Us',
662 },
663 usage_based: false,
664 },
665 {
666 key: 'security.uptimeSla',
667 title: 'Uptime SLAs',
668 plans: {
669 free: false,
670 pro: false,
671 team: false,
672 enterprise: true,
673 },
674 usage_based: false,
675 },
676 {
677 key: 'security.accessRoles',
678 title: 'Access Roles',
679 plans: {
680 free: 'Owner, Admin, Developer',
681 pro: 'Owner, Admin, Developer',
682 team: 'Owner, Admin, Developer, Read-only, Predefined project scoped roles',
683 enterprise: 'Custom project scoped roles',
684 },
685 usage_based: false,
686 },
687 {
688 key: 'security.vanityUrls',
689 title: 'Vanity URLs',
690 plans: {
691 free: false,
692 pro: true,
693 team: true,
694 enterprise: true,
695 },
696 usage_based: false,
697 },
698 {
699 key: 'security.customDomains',
700 title: 'Custom Domains',
701 plans: {
702 free: false,
703 pro: '$10 per domain per month per project add on',
704 team: '$10 per domain per month per project add on',
705 enterprise: '1, additional $10/domain/month',
706 },
707 usage_based: false,
708 },
709 ],
710 },
711 support: {
712 title: 'Support',
713 icon: 'M18.364 5.636l-3.536 3.536m0 5.656l3.536 3.536M9.172 9.172L5.636 5.636m3.536 9.192l-3.536 3.536M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-5 0a4 4 0 11-8 0 4 4 0 018 0z',
714 features: [
715 {
716 key: 'support.communitySupport',
717 title: 'Community Support',
718 plans: {
719 free: true,
720 pro: true,
721 team: true,
722 enterprise: true,
723 },
724 usage_based: false,
725 },
726 {
727 key: 'support.emailSupport',
728 title: 'Email Support',
729 plans: {
730 free: false,
731 pro: true,
732 team: true,
733 enterprise: true,
734 },
735 usage_based: false,
736 },
737 {
738 key: 'support.emailSupportSla',
739 title: 'Email Support SLA',
740 plans: {
741 free: false,
742 pro: false,
743 team: true,
744 enterprise: true,
745 },
746 usage_based: false,
747 },
748 {
749 key: 'support.designatedSupport',
750 title: 'Designated support',
751 plans: {
752 free: false,
753 pro: false,
754 team: false,
755 enterprise: true,
756 },
757 usage_based: false,
758 },
759 {
760 key: 'support.onBoardingSupport',
761 title: 'On Boarding Support',
762 plans: {
763 free: false,
764 pro: false,
765 team: false,
766 enterprise: true,
767 },
768 usage_based: false,
769 },
770 {
771 key: 'support.designatedCustomerSuccessTeam',
772 title: 'Designated Customer Success Team',
773 plans: {
774 free: false,
775 pro: false,
776 team: false,
777 enterprise: true,
778 },
779 usage_based: false,
780 },
781 {
782 key: 'support.securityQuestionnaireHelp',
783 title: 'Security Questionnaire Help',
784 plans: {
785 free: false,
786 pro: false,
787 team: true,
788 enterprise: true,
789 },
790 usage_based: false,
791 },
792 ],
793 },
794}