Openstatus
www.openstatus.dev
1import { allPlans } from "@openstatus/db/src/schema/plan/config";
2import type { Limits } from "@openstatus/db/src/schema/plan/schema";
3import type React from "react";
4
5export const plans = allPlans;
6
7export const config: Record<
8 string,
9 {
10 label: string;
11 features: {
12 value: keyof Limits;
13 label: string;
14 description?: React.ReactNode; // tooltip informations
15 badge?: string;
16 monthly?: boolean;
17 }[];
18 }
19> = {
20 monitors: {
21 label: "Monitors",
22 features: [
23 {
24 value: "periodicity",
25 label: "Frequency",
26 },
27 {
28 value: "monitors",
29 label: "Number of monitors",
30 },
31 {
32 value: "multi-region",
33 label: "Multi-region monitoring",
34 },
35 { value: "regions", label: "Total regions" },
36 { value: "max-regions", label: "Regions per monitor" },
37 { value: "data-retention", label: "Data retention" },
38 { value: "response-logs", label: "Response Logs" },
39 { value: "otel", label: "OTel Exporter" },
40 {
41 value: "synthetic-checks",
42 label: "Synthetic API Checks",
43 monthly: true,
44 },
45 ],
46 },
47 "status-pages": {
48 label: "Status Pages",
49 features: [
50 {
51 value: "status-pages",
52 label: "Number of status pages",
53 },
54 {
55 value: "page-components",
56 label: "Number of components",
57 },
58 {
59 value: "maintenance",
60 label: "Maintenance status",
61 },
62 {
63 value: "monitor-values-visibility",
64 label: "Toggle numbers visibility",
65 },
66 {
67 value: "status-subscribers",
68 label: "Subscribers",
69 },
70 {
71 value: "custom-domain",
72 label: "Custom domain",
73 },
74 {
75 value: "white-label",
76 label: "White Label",
77 },
78 ],
79 },
80 "status-page-audience": {
81 label: "Status Page Audience",
82 features: [
83 {
84 value: "password-protection",
85 label: "Password Protection (Basic)",
86 },
87 {
88 value: "email-domain-protection",
89 label: "Magic Link (Auth)",
90 },
91 ],
92 },
93 notifications: {
94 label: "Notifications",
95 features: [
96 {
97 value: "notifications",
98 label: "Slack, Discord, Email, Webhook, ntfy.sh",
99 },
100 {
101 value: "sms",
102 label: "SMS",
103 },
104 {
105 value: "pagerduty",
106 label: "PagerDuty",
107 },
108 {
109 value: "opsgenie",
110 label: "OpsGenie",
111 },
112 {
113 value: "notification-channels",
114 label: "Number of notification channels",
115 },
116 ],
117 },
118 collaboration: {
119 label: "Collaboration",
120 features: [
121 {
122 value: "members",
123 label: "Team members",
124 },
125 {
126 value: "audit-log",
127 label: "Audit log",
128 badge: "Planned",
129 },
130 ],
131 },
132};