diff --git a/src/data/analytics/amplitude.tsx b/src/data/analytics/amplitude.tsx index e5aa62d..9aafb3d 100644 --- a/src/data/analytics/amplitude.tsx +++ b/src/data/analytics/amplitude.tsx @@ -20,76 +20,112 @@ export const amplitude: Provider = { logo: , website: "https://amplitude.com", tagline: { + status: "strong", + details: "Digital analytics platform for product teams", + + reference: "https://amplitude.com/pricing", }, features: { - autoCapture: { status: "partial", details: "Limited auto-tracking" }, - customEvents: { status: "strong", details: "Custom event tracking" }, - userProperties: { status: "strong", details: "User properties" }, - groupAnalytics: { status: "strong", details: "Account-level analytics" }, + autoCapture: { status: "partial", details: "Limited auto-tracking", reference: "https://amplitude.com/pricing" }, + customEvents: { status: "strong", details: "Custom event tracking", reference: "https://amplitude.com/pricing" }, + userProperties: { status: "strong", details: "User properties", reference: "https://amplitude.com/pricing" }, + groupAnalytics: { status: "strong", details: "Account-level analytics", reference: "https://amplitude.com/pricing" }, retroactiveAnalysis: { + status: "strong", + details: "Govern events retroactively", + + reference: "https://amplitude.com/pricing", }, - funnels: { status: "strong", details: "Conversion funnels" }, - retention: { status: "strong", details: "Retention analysis" }, - cohorts: { status: "strong", details: "Behavioral cohorts" }, - pathAnalysis: { status: "strong", details: "Pathfinder analysis" }, - trends: { status: "strong", details: "Event segmentation" }, - dashboards: { status: "strong", details: "Custom dashboards" }, - realtime: { status: "partial", details: "Near real-time" }, - customReports: { status: "strong", details: "Saved reports" }, + funnels: { status: "strong", details: "Conversion funnels", reference: "https://amplitude.com/pricing" }, + retention: { status: "strong", details: "Retention analysis", reference: "https://amplitude.com/pricing" }, + cohorts: { status: "strong", details: "Behavioral cohorts", reference: "https://amplitude.com/pricing" }, + pathAnalysis: { status: "strong", details: "Pathfinder analysis", reference: "https://amplitude.com/pricing" }, + trends: { status: "strong", details: "Event segmentation", reference: "https://amplitude.com/pricing" }, + dashboards: { status: "strong", details: "Custom dashboards", reference: "https://amplitude.com/pricing" }, + realtime: { status: "partial", details: "Near real-time", reference: "https://amplitude.com/pricing" }, + customReports: { status: "strong", details: "Saved reports", reference: "https://amplitude.com/pricing" }, dataExploration: { + status: "strong", + details: "Amplitude Analytics UI", + + reference: "https://amplitude.com/pricing", }, - alerts: { status: "strong", details: "Anomaly detection" }, + alerts: { status: "strong", details: "Anomaly detection", reference: "https://amplitude.com/pricing" }, sessionReplay: { + status: "strong", + details: "Session Replay (via acquisition)", + + reference: "https://amplitude.com/pricing", }, - heatmaps: { status: "none", details: "Not available" }, - userProfiles: { status: "strong", details: "User lookup" }, - userJourneys: { status: "strong", details: "User journey maps" }, - attribution: { status: "strong", details: "Impact analysis" }, - abTesting: { status: "strong", details: "Amplitude Experiment" }, - featureFlags: { status: "strong", details: "Feature flags included" }, - experiments: { status: "strong", details: "Full experimentation" }, + heatmaps: { status: "none", details: "Not available", reference: "https://amplitude.com/pricing" }, + userProfiles: { status: "strong", details: "User lookup", reference: "https://amplitude.com/pricing" }, + userJourneys: { status: "strong", details: "User journey maps", reference: "https://amplitude.com/pricing" }, + attribution: { status: "strong", details: "Impact analysis", reference: "https://amplitude.com/pricing" }, + abTesting: { status: "strong", details: "Amplitude Experiment", reference: "https://amplitude.com/pricing" }, + featureFlags: { status: "strong", details: "Feature flags included", reference: "https://amplitude.com/pricing" }, + experiments: { status: "strong", details: "Full experimentation", reference: "https://amplitude.com/pricing" }, statisticalAnalysis: { + status: "strong", + details: "Sequential testing", + + reference: "https://amplitude.com/pricing", }, sdkLanguages: { + status: "strong", + details: "15+ languages (JS, iOS, Android, etc.)", + + reference: "https://www.docs.developers.amplitude.com", }, - apiAccess: { status: "strong", details: "REST & GraphQL APIs" }, - dataWarehouse: { status: "strong", details: "Data streaming" }, - sqlAccess: { status: "partial", details: "Limited SQL access" }, - documentation: { status: "strong", details: "Detailed documentation" }, - gdprCompliant: { status: "strong", details: "GDPR compliant" }, - cookieless: { status: "partial", details: "Cookie-based" }, - dataResidency: { status: "strong", details: "Multi-region support" }, - anonymization: { status: "strong", details: "User deletion" }, - compliance: { status: "strong", details: "SOC 2, GDPR, HIPAA" }, + apiAccess: { status: "strong", details: "REST & GraphQL APIs", reference: "https://www.docs.developers.amplitude.com" }, + dataWarehouse: { status: "strong", details: "Data streaming", reference: "https://amplitude.com/pricing" }, + sqlAccess: { status: "partial", details: "Limited SQL access", reference: "https://amplitude.com/pricing" }, + documentation: { status: "strong", details: "Detailed documentation", reference: "https://www.docs.developers.amplitude.com" }, + gdprCompliant: { status: "strong", details: "GDPR compliant", reference: "https://amplitude.com/privacy" }, + cookieless: { status: "partial", details: "Cookie-based", reference: "https://amplitude.com/privacy" }, + dataResidency: { status: "strong", details: "Multi-region support", reference: "https://amplitude.com/privacy" }, + anonymization: { status: "strong", details: "User deletion", reference: "https://amplitude.com/privacy" }, + compliance: { status: "strong", details: "SOC 2, GDPR, HIPAA", reference: "https://amplitude.com/privacy" }, freeTier: { + status: "strong", + details: "Starter: 50K MTUs (Monthly Tracked Users), up to 10M events", + + reference: "https://amplitude.com/pricing", }, pricingModel: { + status: "strong", + details: "Plus: $49/mo for 300K MTUs at $0.049/MTU", + + reference: "https://amplitude.com/pricing", }, - openSource: { status: "none", details: "Proprietary" }, - selfHosted: { status: "none", details: "Cloud-only" }, - cloudHosted: { status: "strong", details: "Fully managed" }, - cdp: { status: "strong", details: "Segment, mParticle, Tealium" }, - marketing: { status: "strong", details: "Salesforce, Braze, Iterable" }, + openSource: { status: "none", details: "Proprietary", reference: "https://amplitude.com/pricing" }, + selfHosted: { status: "none", details: "Cloud-only", reference: "https://amplitude.com/pricing" }, + cloudHosted: { status: "strong", details: "Fully managed", reference: "https://amplitude.com/pricing" }, + cdp: { status: "strong", details: "Segment, mParticle, Tealium", reference: "https://amplitude.com/pricing" }, + marketing: { status: "strong", details: "Salesforce, Braze, Iterable", reference: "https://amplitude.com/pricing" }, datatools: { + status: "strong", + details: "Snowflake, BigQuery, S3", + + reference: "https://amplitude.com/pricing", }, - webhooks: { status: "strong", details: "Cohort syncing" }, + webhooks: { status: "strong", details: "Cohort syncing", reference: "https://amplitude.com/pricing" }, }, }; diff --git a/src/data/analytics/ga4.tsx b/src/data/analytics/ga4.tsx index 058e11c..66dbc0d 100644 --- a/src/data/analytics/ga4.tsx +++ b/src/data/analytics/ga4.tsx @@ -30,64 +30,84 @@ export const ga4: Provider = { logo: , website: "https://analytics.google.com", tagline: { + status: "strong", + details: "Industry-standard web analytics", + + reference: "https://support.google.com/analytics/answer/9306384", }, features: { - autoCapture: { status: "partial", details: "Enhanced measurement" }, - customEvents: { status: "strong", details: "Custom event tracking" }, - userProperties: { status: "strong", details: "User properties" }, - groupAnalytics: { status: "none", details: "Not available" }, + autoCapture: { status: "partial", details: "Enhanced measurement", reference: "https://support.google.com/analytics/answer/9306384" }, + customEvents: { status: "strong", details: "Custom event tracking", reference: "https://support.google.com/analytics/answer/9306384" }, + userProperties: { status: "strong", details: "User properties", reference: "https://support.google.com/analytics/answer/9306384" }, + groupAnalytics: { status: "none", details: "Not available", reference: "https://support.google.com/analytics/answer/9306384" }, retroactiveAnalysis: { + status: "none", + details: "Not available", + + reference: "https://support.google.com/analytics/answer/9306384", }, - funnels: { status: "strong", details: "Funnel exploration" }, - retention: { status: "partial", details: "Basic retention" }, - cohorts: { status: "strong", details: "Audiences" }, - pathAnalysis: { status: "strong", details: "Path exploration" }, - trends: { status: "strong", details: "Event trends" }, - dashboards: { status: "strong", details: "Custom dashboards" }, - realtime: { status: "strong", details: "Real-time reports" }, - customReports: { status: "strong", details: "Custom reports" }, - dataExploration: { status: "strong", details: "Explore UI" }, - alerts: { status: "strong", details: "Custom alerts" }, - sessionReplay: { status: "none", details: "Not available" }, - heatmaps: { status: "none", details: "Not available" }, - userProfiles: { status: "none", details: "Not available" }, - userJourneys: { status: "strong", details: "User paths" }, - attribution: { status: "strong", details: "Attribution modeling" }, - abTesting: { status: "partial", details: "Via Google Optimize" }, - featureFlags: { status: "none", details: "Not available" }, - experiments: { status: "partial", details: "Via Google Optimize" }, + funnels: { status: "strong", details: "Funnel exploration", reference: "https://support.google.com/analytics/answer/9306384" }, + retention: { status: "partial", details: "Basic retention", reference: "https://support.google.com/analytics/answer/9306384" }, + cohorts: { status: "strong", details: "Audiences", reference: "https://support.google.com/analytics/answer/9306384" }, + pathAnalysis: { status: "strong", details: "Path exploration", reference: "https://support.google.com/analytics/answer/9306384" }, + trends: { status: "strong", details: "Event trends", reference: "https://support.google.com/analytics/answer/9306384" }, + dashboards: { status: "strong", details: "Custom dashboards", reference: "https://support.google.com/analytics/answer/9306384" }, + realtime: { status: "strong", details: "Real-time reports", reference: "https://support.google.com/analytics/answer/9306384" }, + customReports: { status: "strong", details: "Custom reports", reference: "https://support.google.com/analytics/answer/9306384" }, + dataExploration: { status: "strong", details: "Explore UI", reference: "https://support.google.com/analytics/answer/9306384" }, + alerts: { status: "strong", details: "Custom alerts", reference: "https://support.google.com/analytics/answer/9306384" }, + sessionReplay: { status: "none", details: "Not available", reference: "https://support.google.com/analytics/answer/9306384" }, + heatmaps: { status: "none", details: "Not available", reference: "https://support.google.com/analytics/answer/9306384" }, + userProfiles: { status: "none", details: "Not available", reference: "https://support.google.com/analytics/answer/9306384" }, + userJourneys: { status: "strong", details: "User paths", reference: "https://support.google.com/analytics/answer/9306384" }, + attribution: { status: "strong", details: "Attribution modeling", reference: "https://support.google.com/analytics/answer/9306384" }, + abTesting: { status: "partial", details: "Via Google Optimize", reference: "https://support.google.com/analytics/answer/9306384" }, + featureFlags: { status: "none", details: "Not available", reference: "https://support.google.com/analytics/answer/9306384" }, + experiments: { status: "partial", details: "Via Google Optimize", reference: "https://support.google.com/analytics/answer/9306384" }, statisticalAnalysis: { + status: "partial", + details: "Basic stats", + + reference: "https://support.google.com/analytics/answer/9306384", }, sdkLanguages: { + status: "strong", + details: "gtag.js, Firebase SDKs", + + reference: "https://developers.google.com/analytics", }, - apiAccess: { status: "strong", details: "Data API" }, - dataWarehouse: { status: "strong", details: "BigQuery export" }, - sqlAccess: { status: "strong", details: "BigQuery SQL" }, - documentation: { status: "strong", details: "Extensive docs" }, - gdprCompliant: { status: "strong", details: "GDPR features" }, - cookieless: { status: "partial", details: "Cookie-based" }, - dataResidency: { status: "partial", details: "Google-controlled" }, - anonymization: { status: "strong", details: "IP anonymization" }, - compliance: { status: "strong", details: "Google compliance" }, - freeTier: { status: "strong", details: "Free: 10M events/month" }, + apiAccess: { status: "strong", details: "Data API", reference: "https://developers.google.com/analytics" }, + dataWarehouse: { status: "strong", details: "BigQuery export", reference: "https://support.google.com/analytics/answer/9306384" }, + sqlAccess: { status: "strong", details: "BigQuery SQL", reference: "https://support.google.com/analytics/answer/9306384" }, + documentation: { status: "strong", details: "Extensive docs", reference: "https://developers.google.com/analytics" }, + gdprCompliant: { status: "strong", details: "GDPR features", reference: "https://policies.google.com/privacy" }, + cookieless: { status: "partial", details: "Cookie-based", reference: "https://policies.google.com/privacy" }, + dataResidency: { status: "partial", details: "Google-controlled", reference: "https://policies.google.com/privacy" }, + anonymization: { status: "strong", details: "IP anonymization", reference: "https://policies.google.com/privacy" }, + compliance: { status: "strong", details: "Google compliance", reference: "https://policies.google.com/privacy" }, + freeTier: { status: "strong", details: "Free: 10M events/month", reference: "https://support.google.com/analytics/answer/9306384" }, pricingModel: { + status: "strong", + details: "GA4 360: Custom pricing", + + reference: "https://support.google.com/analytics/answer/9306384", }, - openSource: { status: "none", details: "Proprietary" }, - selfHosted: { status: "none", details: "Cloud-only" }, - cloudHosted: { status: "strong", details: "Google Cloud" }, - cdp: { status: "partial", details: "Limited integrations" }, - marketing: { status: "strong", details: "Google Ads, Search Console" }, - datatools: { status: "strong", details: "BigQuery, Data Studio" }, - webhooks: { status: "none", details: "Not available" }, + openSource: { status: "none", details: "Proprietary", reference: "https://support.google.com/analytics/answer/9306384" }, + selfHosted: { status: "none", details: "Cloud-only", reference: "https://support.google.com/analytics/answer/9306384" }, + cloudHosted: { status: "strong", details: "Google Cloud", reference: "https://support.google.com/analytics/answer/9306384" }, + cdp: { status: "partial", details: "Limited integrations", reference: "https://support.google.com/analytics/answer/9306384" }, + marketing: { status: "strong", details: "Google Ads, Search Console", reference: "https://support.google.com/analytics/answer/9306384" }, + datatools: { status: "strong", details: "BigQuery, Data Studio", reference: "https://support.google.com/analytics/answer/9306384" }, + webhooks: { status: "none", details: "Not available", reference: "https://support.google.com/analytics/answer/9306384" }, }, }; diff --git a/src/data/analytics/heap.tsx b/src/data/analytics/heap.tsx index 4c3b365..646e31e 100644 --- a/src/data/analytics/heap.tsx +++ b/src/data/analytics/heap.tsx @@ -24,76 +24,112 @@ export const heap: Provider = { logo: , website: "https://heap.io", tagline: { + status: "strong", + details: "Automatic event tracking for product analytics", + + reference: "https://heap.io/pricing", }, features: { autoCapture: { + status: "strong", + details: "Complete auto-capture of all events", + + reference: "https://heap.io/pricing", }, - customEvents: { status: "strong", details: "Custom event tracking" }, - userProperties: { status: "strong", details: "User properties" }, + customEvents: { status: "strong", details: "Custom event tracking", reference: "https://heap.io/pricing" }, + userProperties: { status: "strong", details: "User properties", reference: "https://heap.io/pricing" }, groupAnalytics: { + status: "strong", + details: "Account-level analytics", + + reference: "https://heap.io/pricing", }, retroactiveAnalysis: { + status: "strong", + details: "Define events retroactively", + + reference: "https://heap.io/pricing", }, - funnels: { status: "strong", details: "Conversion funnels" }, - retention: { status: "strong", details: "Retention analysis" }, - cohorts: { status: "strong", details: "User segments" }, - pathAnalysis: { status: "strong", details: "User journeys" }, - trends: { status: "strong", details: "Event trends" }, - dashboards: { status: "strong", details: "Custom dashboards" }, - realtime: { status: "partial", details: "Near real-time" }, - customReports: { status: "strong", details: "Saved reports" }, - dataExploration: { status: "strong", details: "Heap Explore UI" }, - alerts: { status: "strong", details: "Anomaly detection" }, - sessionReplay: { status: "strong", details: "Session replay" }, - heatmaps: { status: "strong", details: "Click heatmaps" }, - userProfiles: { status: "strong", details: "User profiles" }, - userJourneys: { status: "strong", details: "User paths" }, - attribution: { status: "strong", details: "Impact analysis" }, - abTesting: { status: "partial", details: "Basic testing" }, - featureFlags: { status: "none", details: "Not available" }, - experiments: { status: "partial", details: "Limited experiments" }, + funnels: { status: "strong", details: "Conversion funnels", reference: "https://heap.io/pricing" }, + retention: { status: "strong", details: "Retention analysis", reference: "https://heap.io/pricing" }, + cohorts: { status: "strong", details: "User segments", reference: "https://heap.io/pricing" }, + pathAnalysis: { status: "strong", details: "User journeys", reference: "https://heap.io/pricing" }, + trends: { status: "strong", details: "Event trends", reference: "https://heap.io/pricing" }, + dashboards: { status: "strong", details: "Custom dashboards", reference: "https://heap.io/pricing" }, + realtime: { status: "partial", details: "Near real-time", reference: "https://heap.io/pricing" }, + customReports: { status: "strong", details: "Saved reports", reference: "https://heap.io/pricing" }, + dataExploration: { status: "strong", details: "Heap Explore UI", reference: "https://heap.io/pricing" }, + alerts: { status: "strong", details: "Anomaly detection", reference: "https://heap.io/pricing" }, + sessionReplay: { status: "strong", details: "Session replay", reference: "https://heap.io/pricing" }, + heatmaps: { status: "strong", details: "Click heatmaps", reference: "https://heap.io/pricing" }, + userProfiles: { status: "strong", details: "User profiles", reference: "https://heap.io/pricing" }, + userJourneys: { status: "strong", details: "User paths", reference: "https://heap.io/pricing" }, + attribution: { status: "strong", details: "Impact analysis", reference: "https://heap.io/pricing" }, + abTesting: { status: "partial", details: "Basic testing", reference: "https://heap.io/pricing" }, + featureFlags: { status: "none", details: "Not available", reference: "https://heap.io/pricing" }, + experiments: { status: "partial", details: "Limited experiments", reference: "https://heap.io/pricing" }, statisticalAnalysis: { + status: "partial", + details: "Basic stats", + + reference: "https://heap.io/pricing", }, sdkLanguages: { + status: "strong", + details: "10+ languages (JS, iOS, Android, etc.)", + + reference: "https://developers.heap.io", }, - apiAccess: { status: "strong", details: "REST API" }, - dataWarehouse: { status: "strong", details: "Data warehouse sync" }, - sqlAccess: { status: "strong", details: "SQL access" }, - documentation: { status: "strong", details: "Comprehensive docs" }, - gdprCompliant: { status: "strong", details: "GDPR compliant" }, - cookieless: { status: "partial", details: "Cookie-based" }, - dataResidency: { status: "partial", details: "US, EU" }, - anonymization: { status: "strong", details: "Data deletion" }, - compliance: { status: "strong", details: "SOC 2, GDPR" }, + apiAccess: { status: "strong", details: "REST API", reference: "https://developers.heap.io" }, + dataWarehouse: { status: "strong", details: "Data warehouse sync", reference: "https://heap.io/pricing" }, + sqlAccess: { status: "strong", details: "SQL access", reference: "https://heap.io/pricing" }, + documentation: { status: "strong", details: "Comprehensive docs", reference: "https://developers.heap.io" }, + gdprCompliant: { status: "strong", details: "GDPR compliant", reference: "https://heap.io/privacy" }, + cookieless: { status: "partial", details: "Cookie-based", reference: "https://heap.io/privacy" }, + dataResidency: { status: "partial", details: "US, EU", reference: "https://heap.io/privacy" }, + anonymization: { status: "strong", details: "Data deletion", reference: "https://heap.io/privacy" }, + compliance: { status: "strong", details: "SOC 2, GDPR", reference: "https://heap.io/privacy" }, freeTier: { + status: "strong", + details: "Free: 10K sessions/month", + + reference: "https://heap.io/pricing", }, pricingModel: { + status: "strong", + details: "Growth: Starting at $3,600/year", + + reference: "https://heap.io/pricing", }, - openSource: { status: "none", details: "Proprietary" }, - selfHosted: { status: "none", details: "Cloud-only" }, - cloudHosted: { status: "strong", details: "Fully managed" }, - cdp: { status: "strong", details: "Segment, mParticle" }, - marketing: { status: "strong", details: "Salesforce, Marketo" }, + openSource: { status: "none", details: "Proprietary", reference: "https://heap.io/pricing" }, + selfHosted: { status: "none", details: "Cloud-only", reference: "https://heap.io/pricing" }, + cloudHosted: { status: "strong", details: "Fully managed", reference: "https://heap.io/pricing" }, + cdp: { status: "strong", details: "Segment, mParticle", reference: "https://heap.io/pricing" }, + marketing: { status: "strong", details: "Salesforce, Marketo", reference: "https://heap.io/pricing" }, datatools: { + status: "strong", + details: "Snowflake, BigQuery, Redshift", + + reference: "https://heap.io/pricing", }, - webhooks: { status: "strong", details: "Webhooks" }, + webhooks: { status: "strong", details: "Webhooks", reference: "https://heap.io/pricing" }, }, }; diff --git a/src/data/analytics/mixpanel.tsx b/src/data/analytics/mixpanel.tsx index ab1758f..176da83 100644 --- a/src/data/analytics/mixpanel.tsx +++ b/src/data/analytics/mixpanel.tsx @@ -22,76 +22,228 @@ export const mixpanel: Provider = { logo: , website: "https://mixpanel.com", tagline: { + status: "strong", + details: "Product analytics for mobile and web applications", + + reference: "", }, features: { - autoCapture: { status: "partial", details: "Limited auto-capture" }, + autoCapture: { + status: "partial", + details: "Limited auto-capture", + reference: "https://mixpanel.com/pricing" + }, customEvents: { status: "strong", details: "Comprehensive event tracking", + reference: "https://mixpanel.com/pricing" + }, + userProperties: { + status: "strong", + details: "User profiles & traits", + reference: "https://mixpanel.com/pricing" + }, + groupAnalytics: { + status: "strong", + details: "Group analytics", + reference: "https://mixpanel.com/pricing" }, - userProperties: { status: "strong", details: "User profiles & traits" }, - groupAnalytics: { status: "strong", details: "Group analytics" }, retroactiveAnalysis: { status: "strong", details: "Retroactive event definitions", + reference: "https://mixpanel.com/pricing" + }, + funnels: { + status: "strong", + details: "Advanced funnel analysis", + reference: "https://mixpanel.com/pricing" + }, + retention: { + status: "strong", + details: "Retention reports", + reference: "https://mixpanel.com/pricing" + }, + cohorts: { + status: "strong", + details: "Behavioral cohorts", + reference: "https://mixpanel.com/pricing" + }, + pathAnalysis: { + status: "strong", + details: "Flow analysis", + reference: "https://mixpanel.com/pricing" + }, + trends: { + status: "strong", + details: "Trend analysis", + reference: "https://mixpanel.com/pricing" + }, + dashboards: { + status: "strong", + details: "Custom dashboards", + reference: "https://mixpanel.com/pricing" + }, + realtime: { + status: "strong", + details: "Live view", + reference: "https://mixpanel.com/pricing" + }, + customReports: { + status: "strong", + details: "Custom reports", + reference: "https://mixpanel.com/pricing" + }, + dataExploration: { + status: "strong", + details: "Visual exploration", + reference: "https://mixpanel.com/pricing" + }, + alerts: { + status: "strong", + details: "Custom alerts", + reference: "https://mixpanel.com/pricing" }, - funnels: { status: "strong", details: "Advanced funnel analysis" }, - retention: { status: "strong", details: "Retention reports" }, - cohorts: { status: "strong", details: "Behavioral cohorts" }, - pathAnalysis: { status: "strong", details: "Flow analysis" }, - trends: { status: "strong", details: "Trend analysis" }, - dashboards: { status: "strong", details: "Custom dashboards" }, - realtime: { status: "strong", details: "Live view" }, - customReports: { status: "strong", details: "Custom reports" }, - dataExploration: { status: "strong", details: "Visual exploration" }, - alerts: { status: "strong", details: "Custom alerts" }, sessionReplay: { status: "strong", details: "10K replays/mo free, 20K on Growth plan", + reference: "https://mixpanel.com/pricing" + }, + heatmaps: { + status: "none", + details: "Not available", + reference: "https://mixpanel.com/pricing" + }, + userProfiles: { + status: "strong", + details: "User profiles", + reference: "https://mixpanel.com/pricing" + }, + userJourneys: { + status: "strong", + details: "User flows", + reference: "https://mixpanel.com/pricing" + }, + attribution: { + status: "strong", + details: "Impact analysis", + reference: "https://mixpanel.com/pricing" + }, + abTesting: { + status: "none", + details: "Not built-in", + reference: "https://mixpanel.com/pricing" + }, + featureFlags: { + status: "none", + details: "Not built-in", + reference: "https://mixpanel.com/pricing" + }, + experiments: { + status: "none", + details: "Via third-party", + reference: "https://mixpanel.com/pricing" }, - heatmaps: { status: "none", details: "Not available" }, - userProfiles: { status: "strong", details: "User profiles" }, - userJourneys: { status: "strong", details: "User flows" }, - attribution: { status: "strong", details: "Impact analysis" }, - abTesting: { status: "none", details: "Not built-in" }, - featureFlags: { status: "none", details: "Not built-in" }, - experiments: { status: "none", details: "Via third-party" }, statisticalAnalysis: { status: "partial", details: "Basic significance testing", + reference: "https://mixpanel.com/pricing" }, sdkLanguages: { status: "strong", details: "20+ languages (JS, Python, Swift, etc.)", + reference: "https://docs.mixpanel.com/docs/sdks" + }, + apiAccess: { + status: "strong", + details: "Data & query API", + reference: "https://developer.mixpanel.com/reference/overview" }, - apiAccess: { status: "strong", details: "Data & query API" }, dataWarehouse: { status: "strong", details: "Data pipelines & exports", + reference: "https://docs.mixpanel.com/docs/data-pipelines/integrations" + }, + sqlAccess: { + status: "strong", + details: "JQL (Mixpanel Query Language)", + reference: "https://docs.mixpanel.com/docs/data-pipelines/jql" + }, + documentation: { + status: "strong", + details: "Comprehensive docs", + reference: "https://docs.mixpanel.com" + }, + gdprCompliant: { + status: "strong", + details: "GDPR compliant", + reference: "https://mixpanel.com/legal/privacy-policy" + }, + cookieless: { + status: "partial", + details: "Cookie-based default", + reference: "https://docs.mixpanel.com/docs/privacy/cookies" + }, + dataResidency: { + status: "strong", + details: "US & EU data centers", + reference: "https://mixpanel.com/legal/privacy-policy" + }, + anonymization: { + status: "strong", + details: "Data deletion tools", + reference: "https://docs.mixpanel.com/docs/privacy/user-privacy" + }, + compliance: { + status: "strong", + details: "SOC 2, GDPR, CCPA", + reference: "https://mixpanel.com/legal/privacy-policy" + }, + freeTier: { + status: "strong", + details: "Free up to 1M events/month", + reference: "https://mixpanel.com/pricing" }, - sqlAccess: { status: "strong", details: "JQL (Mixpanel Query Language)" }, - documentation: { status: "strong", details: "Comprehensive docs" }, - gdprCompliant: { status: "strong", details: "GDPR compliant" }, - cookieless: { status: "partial", details: "Cookie-based default" }, - dataResidency: { status: "strong", details: "US & EU data centers" }, - anonymization: { status: "strong", details: "Data deletion tools" }, - compliance: { status: "strong", details: "SOC 2, GDPR, CCPA" }, - freeTier: { status: "strong", details: "Free up to 1M events/month" }, pricingModel: { status: "strong", details: "Growth: $0.28 per 1K events after 1M free", + reference: "https://mixpanel.com/pricing" + }, + openSource: { + status: "none", + details: "Proprietary", + reference: "https://mixpanel.com" + }, + selfHosted: { + status: "none", + details: "Cloud-only", + reference: "https://mixpanel.com/pricing" + }, + cloudHosted: { + status: "strong", + details: "Fully managed SaaS", + reference: "https://mixpanel.com/pricing" + }, + cdp: { + status: "strong", + details: "Segment, mParticle", + reference: "https://docs.mixpanel.com/docs/data-pipelines/integrations" + }, + marketing: { + status: "strong", + details: "Salesforce, Marketo, Braze", + reference: "https://docs.mixpanel.com/docs/data-pipelines/integrations" }, - openSource: { status: "none", details: "Proprietary" }, - selfHosted: { status: "none", details: "Cloud-only" }, - cloudHosted: { status: "strong", details: "Fully managed SaaS" }, - cdp: { status: "strong", details: "Segment, mParticle" }, - marketing: { status: "strong", details: "Salesforce, Marketo, Braze" }, datatools: { status: "strong", details: "Snowflake, BigQuery, Redshift", + reference: "https://docs.mixpanel.com/docs/data-pipelines/integrations" + }, + webhooks: { + status: "strong", + details: "Webhooks available", + reference: "https://developer.mixpanel.com/reference/raw-data-export-api" }, - webhooks: { status: "strong", details: "Webhooks available" }, }, }; diff --git a/src/data/analytics/pendo.tsx b/src/data/analytics/pendo.tsx index 062a4c2..907f080 100644 --- a/src/data/analytics/pendo.tsx +++ b/src/data/analytics/pendo.tsx @@ -25,73 +25,105 @@ export const pendo: Provider = { logo: , website: "https://pendo.io", tagline: { + status: "strong", + details: "Product experience platform with analytics", + + reference: "https://www.pendo.io/pricing", }, features: { autoCapture: { + status: "strong", + details: "Auto-capture all clicks", + + reference: "https://www.pendo.io/pricing", }, - customEvents: { status: "strong", details: "Track events & metadata" }, - userProperties: { status: "strong", details: "User metadata" }, - groupAnalytics: { status: "strong", details: "Account-level data" }, + customEvents: { status: "strong", details: "Track events & metadata", reference: "https://www.pendo.io/pricing" }, + userProperties: { status: "strong", details: "User metadata", reference: "https://www.pendo.io/pricing" }, + groupAnalytics: { status: "strong", details: "Account-level data", reference: "https://www.pendo.io/pricing" }, retroactiveAnalysis: { + status: "strong", + details: "Define events retroactively", + + reference: "https://www.pendo.io/pricing", }, - funnels: { status: "strong", details: "Funnel analysis" }, - retention: { status: "strong", details: "Retention reports" }, - cohorts: { status: "strong", details: "Segments" }, - pathAnalysis: { status: "strong", details: "Path analysis" }, - trends: { status: "strong", details: "Usage trends" }, - dashboards: { status: "strong", details: "Custom dashboards" }, - realtime: { status: "partial", details: "Near real-time" }, - customReports: { status: "strong", details: "Report builder" }, - dataExploration: { status: "strong", details: "Pendo Analyze" }, - alerts: { status: "partial", details: "Basic alerts" }, - sessionReplay: { status: "strong", details: "Session replay" }, - heatmaps: { status: "strong", details: "Page heatmaps" }, - userProfiles: { status: "strong", details: "Visitor profiles" }, - userJourneys: { status: "strong", details: "User paths" }, - attribution: { status: "partial", details: "Feature adoption" }, - abTesting: { status: "partial", details: "Guide experiments" }, - featureFlags: { status: "none", details: "Not available" }, - experiments: { status: "partial", details: "Limited testing" }, + funnels: { status: "strong", details: "Funnel analysis", reference: "https://www.pendo.io/pricing" }, + retention: { status: "strong", details: "Retention reports", reference: "https://www.pendo.io/pricing" }, + cohorts: { status: "strong", details: "Segments", reference: "https://www.pendo.io/pricing" }, + pathAnalysis: { status: "strong", details: "Path analysis", reference: "https://www.pendo.io/pricing" }, + trends: { status: "strong", details: "Usage trends", reference: "https://www.pendo.io/pricing" }, + dashboards: { status: "strong", details: "Custom dashboards", reference: "https://www.pendo.io/pricing" }, + realtime: { status: "partial", details: "Near real-time", reference: "https://www.pendo.io/pricing" }, + customReports: { status: "strong", details: "Report builder", reference: "https://www.pendo.io/pricing" }, + dataExploration: { status: "strong", details: "Pendo Analyze", reference: "https://www.pendo.io/pricing" }, + alerts: { status: "partial", details: "Basic alerts", reference: "https://www.pendo.io/pricing" }, + sessionReplay: { status: "strong", details: "Session replay", reference: "https://www.pendo.io/pricing" }, + heatmaps: { status: "strong", details: "Page heatmaps", reference: "https://www.pendo.io/pricing" }, + userProfiles: { status: "strong", details: "Visitor profiles", reference: "https://www.pendo.io/pricing" }, + userJourneys: { status: "strong", details: "User paths", reference: "https://www.pendo.io/pricing" }, + attribution: { status: "partial", details: "Feature adoption", reference: "https://www.pendo.io/pricing" }, + abTesting: { status: "partial", details: "Guide experiments", reference: "https://www.pendo.io/pricing" }, + featureFlags: { status: "none", details: "Not available", reference: "https://www.pendo.io/pricing" }, + experiments: { status: "partial", details: "Limited testing", reference: "https://www.pendo.io/pricing" }, statisticalAnalysis: { + status: "partial", + details: "Basic stats", + + reference: "https://www.pendo.io/pricing", }, sdkLanguages: { + status: "strong", + details: "JS, iOS, Android, React Native", + + reference: "https://support.pendo.io", }, - apiAccess: { status: "strong", details: "REST API" }, + apiAccess: { status: "strong", details: "REST API", reference: "https://support.pendo.io" }, dataWarehouse: { + status: "strong", + details: "Data Sync to warehouse", + + reference: "https://www.pendo.io/pricing", }, - sqlAccess: { status: "none", details: "Not available" }, - documentation: { status: "strong", details: "Detailed docs" }, - gdprCompliant: { status: "strong", details: "GDPR compliant" }, - cookieless: { status: "partial", details: "Cookie-based" }, - dataResidency: { status: "partial", details: "US, EU" }, - anonymization: { status: "strong", details: "Data deletion" }, - compliance: { status: "strong", details: "SOC 2, GDPR" }, - freeTier: { status: "strong", details: "Starter: Free up to 500 MAUs" }, + sqlAccess: { status: "none", details: "Not available", reference: "https://www.pendo.io/pricing" }, + documentation: { status: "strong", details: "Detailed docs", reference: "https://support.pendo.io" }, + gdprCompliant: { status: "strong", details: "GDPR compliant", reference: "https://www.pendo.io/legal/privacy-policy" }, + cookieless: { status: "partial", details: "Cookie-based", reference: "https://www.pendo.io/legal/privacy-policy" }, + dataResidency: { status: "partial", details: "US, EU", reference: "https://www.pendo.io/legal/privacy-policy" }, + anonymization: { status: "strong", details: "Data deletion", reference: "https://www.pendo.io/legal/privacy-policy" }, + compliance: { status: "strong", details: "SOC 2, GDPR", reference: "https://www.pendo.io/legal/privacy-policy" }, + freeTier: { status: "strong", details: "Starter: Free up to 500 MAUs", reference: "https://www.pendo.io/pricing" }, pricingModel: { + status: "strong", + details: "Growth: Starting at $7,000/year", + + reference: "https://www.pendo.io/pricing", }, - openSource: { status: "none", details: "Proprietary" }, - selfHosted: { status: "none", details: "Cloud-only" }, - cloudHosted: { status: "strong", details: "Fully managed" }, - cdp: { status: "partial", details: "Limited integrations" }, - marketing: { status: "partial", details: "Salesforce, HubSpot" }, + openSource: { status: "none", details: "Proprietary", reference: "https://www.pendo.io/pricing" }, + selfHosted: { status: "none", details: "Cloud-only", reference: "https://www.pendo.io/pricing" }, + cloudHosted: { status: "strong", details: "Fully managed", reference: "https://www.pendo.io/pricing" }, + cdp: { status: "partial", details: "Limited integrations", reference: "https://www.pendo.io/pricing" }, + marketing: { status: "partial", details: "Salesforce, HubSpot", reference: "https://www.pendo.io/pricing" }, datatools: { + status: "strong", + details: "Snowflake, BigQuery, Redshift", + + reference: "https://www.pendo.io/pricing", }, - webhooks: { status: "strong", details: "Webhooks" }, + webhooks: { status: "strong", details: "Webhooks", reference: "https://www.pendo.io/pricing" }, }, }; diff --git a/src/data/analytics/plausible.tsx b/src/data/analytics/plausible.tsx index bd9df1f..afe1dc3 100644 --- a/src/data/analytics/plausible.tsx +++ b/src/data/analytics/plausible.tsx @@ -26,67 +26,91 @@ export const plausible: Provider = { logo: , website: "https://plausible.io", tagline: { + status: "strong", + details: "Privacy-first, lightweight analytics", + + reference: "https://plausible.io/pricing", }, features: { - autoCapture: { status: "strong", details: "Auto-capture pageviews" }, - customEvents: { status: "strong", details: "Custom events" }, - userProperties: { status: "none", details: "Not available" }, - groupAnalytics: { status: "none", details: "Not available" }, + autoCapture: { status: "strong", details: "Auto-capture pageviews", reference: "https://plausible.io/pricing" }, + customEvents: { status: "strong", details: "Custom events", reference: "https://plausible.io/pricing" }, + userProperties: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + groupAnalytics: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, retroactiveAnalysis: { + status: "none", + details: "Not available", + + reference: "https://plausible.io/pricing", }, - funnels: { status: "strong", details: "Funnel analysis" }, - retention: { status: "none", details: "Not available" }, - cohorts: { status: "none", details: "Not available" }, - pathAnalysis: { status: "none", details: "Not available" }, - trends: { status: "strong", details: "Traffic trends" }, - dashboards: { status: "strong", details: "Single dashboard" }, - realtime: { status: "strong", details: "Real-time visitors" }, - customReports: { status: "partial", details: "Saved filters" }, + funnels: { status: "strong", details: "Funnel analysis", reference: "https://plausible.io/pricing" }, + retention: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + cohorts: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + pathAnalysis: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + trends: { status: "strong", details: "Traffic trends", reference: "https://plausible.io/pricing" }, + dashboards: { status: "strong", details: "Single dashboard", reference: "https://plausible.io/pricing" }, + realtime: { status: "strong", details: "Real-time visitors", reference: "https://plausible.io/pricing" }, + customReports: { status: "partial", details: "Saved filters", reference: "https://plausible.io/pricing" }, dataExploration: { + status: "partial", + details: "Simple filtering", + + reference: "https://plausible.io/pricing", }, - alerts: { status: "strong", details: "Traffic spike alerts" }, - sessionReplay: { status: "none", details: "Not available" }, - heatmaps: { status: "none", details: "Not available" }, - userProfiles: { status: "none", details: "Not available" }, - userJourneys: { status: "none", details: "Not available" }, - attribution: { status: "strong", details: "UTM tracking" }, - abTesting: { status: "none", details: "Not available" }, - featureFlags: { status: "none", details: "Not available" }, - experiments: { status: "none", details: "Not available" }, + alerts: { status: "strong", details: "Traffic spike alerts", reference: "https://plausible.io/pricing" }, + sessionReplay: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + heatmaps: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + userProfiles: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + userJourneys: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + attribution: { status: "strong", details: "UTM tracking", reference: "https://plausible.io/pricing" }, + abTesting: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + featureFlags: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + experiments: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, statisticalAnalysis: { + status: "none", + details: "Not available", + + reference: "https://plausible.io/pricing", }, sdkLanguages: { + status: "partial", + details: "JS script + community SDKs", + + reference: "https://plausible.io/docs", }, - apiAccess: { status: "strong", details: "Stats & Events API" }, - dataWarehouse: { status: "none", details: "Not available" }, - sqlAccess: { status: "none", details: "Not available" }, - documentation: { status: "strong", details: "Clear docs" }, - gdprCompliant: { status: "strong", details: "GDPR by default" }, - cookieless: { status: "strong", details: "Cookieless tracking" }, - dataResidency: { status: "strong", details: "EU, US options" }, - anonymization: { status: "strong", details: "No PII collected" }, - compliance: { status: "strong", details: "GDPR, CCPA, PECR" }, - freeTier: { status: "none", details: "No free tier" }, + apiAccess: { status: "strong", details: "Stats & Events API", reference: "https://plausible.io/docs" }, + dataWarehouse: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + sqlAccess: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + documentation: { status: "strong", details: "Clear docs", reference: "https://plausible.io/docs" }, + gdprCompliant: { status: "strong", details: "GDPR by default", reference: "https://plausible.io/privacy" }, + cookieless: { status: "strong", details: "Cookieless tracking", reference: "https://plausible.io/privacy" }, + dataResidency: { status: "strong", details: "EU, US options", reference: "https://plausible.io/privacy" }, + anonymization: { status: "strong", details: "No PII collected", reference: "https://plausible.io/privacy" }, + compliance: { status: "strong", details: "GDPR, CCPA, PECR", reference: "https://plausible.io/privacy" }, + freeTier: { status: "none", details: "No free tier", reference: "https://plausible.io/pricing" }, pricingModel: { + status: "strong", + details: "$9/mo for 10K pageviews", + + reference: "https://plausible.io/pricing", }, - openSource: { status: "strong", details: "AGPLv3 license" }, - selfHosted: { status: "strong", details: "Self-hosted option" }, - cloudHosted: { status: "strong", details: "Managed cloud" }, - cdp: { status: "none", details: "Not available" }, - marketing: { status: "partial", details: "Limited integrations" }, - datatools: { status: "none", details: "Not available" }, - webhooks: { status: "none", details: "Not available" }, + openSource: { status: "strong", details: "AGPLv3 license", reference: "https://plausible.io/pricing" }, + selfHosted: { status: "strong", details: "Self-hosted option", reference: "https://plausible.io/pricing" }, + cloudHosted: { status: "strong", details: "Managed cloud", reference: "https://plausible.io/pricing" }, + cdp: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + marketing: { status: "partial", details: "Limited integrations", reference: "https://plausible.io/pricing" }, + datatools: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, + webhooks: { status: "none", details: "Not available", reference: "https://plausible.io/pricing" }, }, }; diff --git a/src/data/analytics/posthog.tsx b/src/data/analytics/posthog.tsx index 846dbd1..ce4c33f 100644 --- a/src/data/analytics/posthog.tsx +++ b/src/data/analytics/posthog.tsx @@ -27,97 +27,161 @@ export const posthog: Provider = { logo: , website: "https://posthog.com", tagline: { + status: "strong", + details: "All-in-one product OS with analytics, session replay, and more", + + reference: "https://posthog.com/pricing", }, features: { autoCapture: { + status: "strong", + details: "Automatic event capture without code", + + reference: "https://posthog.com/pricing", }, - customEvents: { status: "strong", details: "Custom event tracking" }, - userProperties: { status: "strong", details: "User properties & traits" }, + customEvents: { status: "strong", details: "Custom event tracking", reference: "https://posthog.com/pricing" }, + userProperties: { status: "strong", details: "User properties & traits", reference: "https://posthog.com/pricing" }, groupAnalytics: { + status: "strong", + details: "Group analytics for B2B", + + reference: "https://posthog.com/pricing", }, retroactiveAnalysis: { + status: "strong", + details: "Query historical data retroactively", + + reference: "https://posthog.com/pricing", }, - funnels: { status: "strong", details: "Conversion funnels" }, - retention: { status: "strong", details: "Retention analysis" }, - cohorts: { status: "strong", details: "User cohorts" }, - pathAnalysis: { status: "strong", details: "User path analysis" }, - trends: { status: "strong", details: "Trend analysis" }, - dashboards: { status: "strong", details: "Custom dashboards" }, - realtime: { status: "strong", details: "Real-time analytics" }, - customReports: { status: "strong", details: "Custom insights" }, + funnels: { status: "strong", details: "Conversion funnels", reference: "https://posthog.com/pricing" }, + retention: { status: "strong", details: "Retention analysis", reference: "https://posthog.com/pricing" }, + cohorts: { status: "strong", details: "User cohorts", reference: "https://posthog.com/pricing" }, + pathAnalysis: { status: "strong", details: "User path analysis", reference: "https://posthog.com/pricing" }, + trends: { status: "strong", details: "Trend analysis", reference: "https://posthog.com/pricing" }, + dashboards: { status: "strong", details: "Custom dashboards", reference: "https://posthog.com/pricing" }, + realtime: { status: "strong", details: "Real-time analytics", reference: "https://posthog.com/pricing" }, + customReports: { status: "strong", details: "Custom insights", reference: "https://posthog.com/pricing" }, dataExploration: { + status: "strong", + details: "SQL and visual exploration", + + reference: "https://posthog.com/pricing", }, - alerts: { status: "partial", details: "Basic alerts" }, + alerts: { status: "partial", details: "Basic alerts", reference: "https://posthog.com/pricing" }, sessionReplay: { + status: "strong", + details: "Full session replay with console logs", + + reference: "https://posthog.com/pricing", }, - heatmaps: { status: "strong", details: "Heatmaps & clickmaps" }, - userProfiles: { status: "strong", details: "Individual user profiles" }, - userJourneys: { status: "strong", details: "User journey tracking" }, - attribution: { status: "partial", details: "Basic attribution" }, - abTesting: { status: "strong", details: "A/B testing built-in" }, - featureFlags: { status: "strong", details: "Feature flags included" }, + heatmaps: { status: "strong", details: "Heatmaps & clickmaps", reference: "https://posthog.com/pricing" }, + userProfiles: { status: "strong", details: "Individual user profiles", reference: "https://posthog.com/pricing" }, + userJourneys: { status: "strong", details: "User journey tracking", reference: "https://posthog.com/pricing" }, + attribution: { status: "partial", details: "Basic attribution", reference: "https://posthog.com/pricing" }, + abTesting: { status: "strong", details: "A/B testing built-in", reference: "https://posthog.com/pricing" }, + featureFlags: { status: "strong", details: "Feature flags included", reference: "https://posthog.com/pricing" }, experiments: { + status: "strong", + details: "Full experimentation platform", + + reference: "https://posthog.com/pricing", }, statisticalAnalysis: { + status: "strong", + details: "Bayesian & frequentist stats", + + reference: "https://posthog.com/pricing", }, sdkLanguages: { + status: "strong", + details: "15+ languages (JS, Python, Go, PHP, etc.)", + + reference: "https://posthog.com/docs", }, - apiAccess: { status: "strong", details: "Full REST API" }, + apiAccess: { status: "strong", details: "Full REST API", reference: "https://posthog.com/docs" }, dataWarehouse: { + status: "strong", + details: "Export to Snowflake, BigQuery", + + reference: "https://posthog.com/pricing", }, - sqlAccess: { status: "strong", details: "SQL query interface" }, - documentation: { status: "strong", details: "Excellent documentation" }, - gdprCompliant: { status: "strong", details: "GDPR compliant" }, + sqlAccess: { status: "strong", details: "SQL query interface", reference: "https://posthog.com/pricing" }, + documentation: { status: "strong", details: "Excellent documentation", reference: "https://posthog.com/docs" }, + gdprCompliant: { status: "strong", details: "GDPR compliant", reference: "https://posthog.com/privacy" }, cookieless: { + status: "partial", + details: "Cookie-based by default, can configure", + + reference: "https://posthog.com/privacy", }, - dataResidency: { status: "strong", details: "US & EU regions" }, - anonymization: { status: "strong", details: "Data anonymization" }, - compliance: { status: "strong", details: "SOC 2, GDPR" }, - freeTier: { status: "strong", details: "1M events/month free" }, + dataResidency: { status: "strong", details: "US & EU regions", reference: "https://posthog.com/privacy" }, + anonymization: { status: "strong", details: "Data anonymization", reference: "https://posthog.com/privacy" }, + compliance: { status: "strong", details: "SOC 2, GDPR", reference: "https://posthog.com/privacy" }, + freeTier: { status: "strong", details: "1M events/month free", reference: "https://posthog.com/pricing" }, pricingModel: { + status: "strong", + details: "Pay-as-you-go per event ($0.00005/event)", + + reference: "https://posthog.com/pricing", }, - openSource: { status: "strong", details: "MIT license" }, + openSource: { status: "strong", details: "MIT license", reference: "https://posthog.com/pricing" }, selfHosted: { + status: "strong", + details: "Docker/Kubernetes self-host", + + reference: "https://posthog.com/pricing", }, - cloudHosted: { status: "strong", details: "PostHog Cloud (US & EU)" }, + cloudHosted: { status: "strong", details: "PostHog Cloud (US & EU)", reference: "https://posthog.com/pricing" }, cdp: { + status: "strong", + details: "Segment, RudderStack integration", + + reference: "https://posthog.com/pricing", }, marketing: { + status: "strong", + details: "Hubspot, Salesforce, Intercom", + + reference: "https://posthog.com/pricing", }, datatools: { + status: "strong", + details: "Snowflake, BigQuery, S3", + + reference: "https://posthog.com/pricing", }, - webhooks: { status: "strong", details: "Webhooks & actions" }, + webhooks: { status: "strong", details: "Webhooks & actions", reference: "https://posthog.com/pricing" }, }, }; diff --git a/src/data/analytics/segment.tsx b/src/data/analytics/segment.tsx index cb678b6..0ee5e93 100644 --- a/src/data/analytics/segment.tsx +++ b/src/data/analytics/segment.tsx @@ -24,79 +24,119 @@ export const segment: Provider = { logo: , website: "https://segment.com", tagline: { + status: "strong", + details: "Customer data platform with analytics", + + reference: "https://segment.com/pricing", }, features: { - autoCapture: { status: "none", details: "Manual tracking" }, - customEvents: { status: "strong", details: "Track, identify, page" }, - userProperties: { status: "strong", details: "User traits" }, - groupAnalytics: { status: "strong", details: "Group calls" }, + autoCapture: { status: "none", details: "Manual tracking", reference: "https://segment.com/pricing" }, + customEvents: { status: "strong", details: "Track, identify, page", reference: "https://segment.com/pricing" }, + userProperties: { status: "strong", details: "User traits", reference: "https://segment.com/pricing" }, + groupAnalytics: { status: "strong", details: "Group calls", reference: "https://segment.com/pricing" }, retroactiveAnalysis: { + status: "none", + details: "Not available", + + reference: "https://segment.com/pricing", }, - funnels: { status: "partial", details: "Via destinations" }, - retention: { status: "partial", details: "Via destinations" }, - cohorts: { status: "partial", details: "Via destinations" }, - pathAnalysis: { status: "none", details: "Not available" }, - trends: { status: "partial", details: "Via destinations" }, - dashboards: { status: "partial", details: "Limited built-in" }, - realtime: { status: "strong", details: "Real-time streaming" }, - customReports: { status: "partial", details: "Via destinations" }, + funnels: { status: "partial", details: "Via destinations", reference: "https://segment.com/pricing" }, + retention: { status: "partial", details: "Via destinations", reference: "https://segment.com/pricing" }, + cohorts: { status: "partial", details: "Via destinations", reference: "https://segment.com/pricing" }, + pathAnalysis: { status: "none", details: "Not available", reference: "https://segment.com/pricing" }, + trends: { status: "partial", details: "Via destinations", reference: "https://segment.com/pricing" }, + dashboards: { status: "partial", details: "Limited built-in", reference: "https://segment.com/pricing" }, + realtime: { status: "strong", details: "Real-time streaming", reference: "https://segment.com/pricing" }, + customReports: { status: "partial", details: "Via destinations", reference: "https://segment.com/pricing" }, dataExploration: { + status: "partial", + details: "Limited (focus on CDP)", + + reference: "https://segment.com/pricing", }, - alerts: { status: "partial", details: "Data quality alerts" }, - sessionReplay: { status: "none", details: "Not available" }, - heatmaps: { status: "none", details: "Not available" }, - userProfiles: { status: "strong", details: "Unified profiles" }, - userJourneys: { status: "partial", details: "Via destinations" }, - attribution: { status: "partial", details: "Via destinations" }, - abTesting: { status: "none", details: "Not available" }, - featureFlags: { status: "none", details: "Not available" }, - experiments: { status: "none", details: "Not available" }, + alerts: { status: "partial", details: "Data quality alerts", reference: "https://segment.com/pricing" }, + sessionReplay: { status: "none", details: "Not available", reference: "https://segment.com/pricing" }, + heatmaps: { status: "none", details: "Not available", reference: "https://segment.com/pricing" }, + userProfiles: { status: "strong", details: "Unified profiles", reference: "https://segment.com/pricing" }, + userJourneys: { status: "partial", details: "Via destinations", reference: "https://segment.com/pricing" }, + attribution: { status: "partial", details: "Via destinations", reference: "https://segment.com/pricing" }, + abTesting: { status: "none", details: "Not available", reference: "https://segment.com/pricing" }, + featureFlags: { status: "none", details: "Not available", reference: "https://segment.com/pricing" }, + experiments: { status: "none", details: "Not available", reference: "https://segment.com/pricing" }, statisticalAnalysis: { + status: "none", + details: "Not available", + + reference: "https://segment.com/pricing", }, sdkLanguages: { + status: "strong", + details: "20+ languages (JS, iOS, Android, etc.)", + + reference: "https://segment.com/docs", }, - apiAccess: { status: "strong", details: "HTTP Tracking API" }, + apiAccess: { status: "strong", details: "HTTP Tracking API", reference: "https://segment.com/docs" }, dataWarehouse: { + status: "strong", + details: "Warehouses as destinations", + + reference: "https://segment.com/pricing", }, - sqlAccess: { status: "none", details: "Not available" }, - documentation: { status: "strong", details: "Extensive docs" }, - gdprCompliant: { status: "strong", details: "GDPR tools" }, - cookieless: { status: "partial", details: "Cookie-based" }, - dataResidency: { status: "strong", details: "Multi-region" }, - anonymization: { status: "strong", details: "User deletion API" }, - compliance: { status: "strong", details: "SOC 2, GDPR, HIPAA" }, + sqlAccess: { status: "none", details: "Not available", reference: "https://segment.com/pricing" }, + documentation: { status: "strong", details: "Extensive docs", reference: "https://segment.com/docs" }, + gdprCompliant: { status: "strong", details: "GDPR tools", reference: "https://segment.com/legal/privacy" }, + cookieless: { status: "partial", details: "Cookie-based", reference: "https://segment.com/legal/privacy" }, + dataResidency: { status: "strong", details: "Multi-region", reference: "https://segment.com/legal/privacy" }, + anonymization: { status: "strong", details: "User deletion API", reference: "https://segment.com/legal/privacy" }, + compliance: { status: "strong", details: "SOC 2, GDPR, HIPAA", reference: "https://segment.com/legal/privacy" }, freeTier: { + status: "strong", + details: "Free: 1K MTUs, 2 sources", + + reference: "https://segment.com/pricing", }, pricingModel: { + status: "strong", + details: "Team: $120/mo for 10K MTUs", + + reference: "https://segment.com/pricing", }, - openSource: { status: "partial", details: "Open-source libraries" }, - selfHosted: { status: "none", details: "Cloud-only" }, - cloudHosted: { status: "strong", details: "Fully managed" }, - cdp: { status: "strong", details: "Core CDP platform" }, + openSource: { status: "partial", details: "Open-source libraries", reference: "https://segment.com/pricing" }, + selfHosted: { status: "none", details: "Cloud-only", reference: "https://segment.com/pricing" }, + cloudHosted: { status: "strong", details: "Fully managed", reference: "https://segment.com/pricing" }, + cdp: { status: "strong", details: "Core CDP platform", reference: "https://segment.com/pricing" }, marketing: { + status: "strong", + details: "450+ destinations", + + reference: "https://segment.com/pricing", }, datatools: { + status: "strong", + details: "All major warehouses", + + reference: "https://segment.com/pricing", }, - webhooks: { status: "strong", details: "Webhooks destination" }, + webhooks: { status: "strong", details: "Webhooks destination", reference: "https://segment.com/pricing" }, }, }; diff --git a/src/data/auth/auth0.tsx b/src/data/auth/auth0.tsx index cab2433..1210f6c 100644 --- a/src/data/auth/auth0.tsx +++ b/src/data/auth/auth0.tsx @@ -19,88 +19,163 @@ export const auth0: Provider = { logo: , website: "https://auth0.com", tagline: { + status: "strong", - details: - "Easy to implement, adaptable authentication and authorization platform", + + details: "Easy to implement, adaptable authentication and authorization platform", + + reference: "https://auth0.com/pricing", }, features: { emailPassword: { + status: "strong", + details: "Email + password with verification", + + reference: "https://auth0.com/pricing", }, - passwordless: { status: "strong", details: "Email, SMS magic links" }, + passwordless: { status: "strong", details: "Email, SMS magic links", reference: "https://auth0.com/pricing" }, socialLogins: { + status: "strong", + details: "30+ providers including all major platforms", + + reference: "https://auth0.com/pricing", }, enterpriseSSO: { + status: "strong", + details: "SAML, OIDC, AD, LDAP (Professional+)", + + reference: "https://auth0.com/pricing", }, - passkeys: { status: "strong", details: "WebAuthn/FIDO2 biometric auth" }, - mfa: { status: "strong", details: "SMS, TOTP, Email, Push, WebAuthn" }, + passkeys: { status: "strong", details: "WebAuthn/FIDO2 biometric auth", reference: "https://auth0.com/pricing" }, + mfa: { status: "strong", details: "SMS, TOTP, Email, Push, WebAuthn", reference: "https://auth0.com/pricing" }, rbac: { + status: "strong", + details: "Core RBAC (Professional+), fine-grained permissions", + + reference: "https://auth0.com/pricing", }, userProfiles: { + status: "strong", + details: "Customizable with metadata & progressive profiling", + + reference: "https://auth0.com/pricing", }, organizations: { + status: "strong", + details: "B2B organizations (Professional+)", + + reference: "https://auth0.com/pricing", }, frontendSDKs: { + status: "strong", + details: "React, Angular, Vue, iOS, Android, many more", + + reference: "https://auth0.com/docs", }, prebuiltUI: { + status: "strong", + details: "Universal Login with customizable Lock widget", + + reference: "https://auth0.com/pricing", }, documentation: { + status: "strong", + details: "Comprehensive docs with quickstarts", + + reference: "https://auth0.com/docs", }, - apiApproach: { status: "strong", details: "REST API + Management API" }, + apiApproach: { status: "strong", details: "REST API + Management API", reference: "https://auth0.com/docs" }, sessionManagement: { + status: "strong", + details: "Refresh tokens, SSO sessions, device tracking", + + reference: "https://auth0.com/pricing", }, jwtSupport: { + status: "strong", + details: "JWTs with custom claims & namespacing", + + reference: "https://auth0.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2 Type II, ISO 27001, GDPR, HIPAA", + + reference: "https://auth0.com/privacy", }, rateLimiting: { + status: "strong", + details: "Configurable rate limits & anomaly detection", + + reference: "https://auth0.com/pricing", }, - freeTier: { status: "strong", details: "7,500 MAU" }, + freeTier: { status: "strong", details: "7,500 MAU", reference: "https://auth0.com/pricing" }, paidPricing: { + status: "strong", + details: "$35/mo (Essentials), $240/mo (Professional)", + + reference: "https://auth0.com/pricing", }, - openSource: { status: "none", details: "Proprietary" }, + openSource: { status: "none", details: "Proprietary", reference: "https://auth0.com/pricing" }, selfHosted: { + status: "none", + details: "Cloud-only (Private Cloud available)", + + reference: "https://auth0.com/pricing", }, oauthProviders: { + status: "strong", + details: "30+ social + enterprise connections", + + reference: "https://auth0.com/pricing", }, webhooks: { + status: "strong", + details: "Log streams & webhooks (Professional+)", + + reference: "https://auth0.com/pricing", }, thirdPartyIntegrations: { + status: "strong", + details: "Extensive marketplace with 100+ integrations", + + reference: "https://auth0.com/pricing", }, }, }; diff --git a/src/data/auth/authjs.tsx b/src/data/auth/authjs.tsx index bf22c8a..b051d20 100644 --- a/src/data/auth/authjs.tsx +++ b/src/data/auth/authjs.tsx @@ -19,96 +19,184 @@ export const authjs: Provider = { logo: , website: "https://authjs.dev", tagline: { + status: "strong", + details: "Free and open source authentication for the web", + + reference: "https://authjs.dev", }, features: { emailPassword: { + status: "strong", + details: "Credentials provider with custom logic", + + reference: "https://authjs.dev", }, - passwordless: { status: "strong", details: "Email magic links built-in" }, + passwordless: { status: "strong", details: "Email magic links built-in", reference: "https://authjs.dev" }, socialLogins: { + status: "strong", + details: "80+ built-in OAuth providers", + + reference: "https://authjs.dev", }, enterpriseSSO: { + status: "partial", + details: "Via custom providers (SAML, OIDC possible)", + + reference: "https://authjs.dev", }, passkeys: { + status: "partial", + details: "Via SimpleWebAuthn or custom implementation", + + reference: "https://authjs.dev", }, mfa: { + status: "partial", + details: "Custom implementation via callbacks", + + reference: "https://authjs.dev", }, rbac: { + status: "partial", + details: "Build your own with session callbacks", + + reference: "https://authjs.dev", }, userProfiles: { + status: "partial", + details: "Store in your own database", + + reference: "https://authjs.dev", }, organizations: { + status: "partial", + details: "Build your own with custom logic", + + reference: "https://authjs.dev", }, frontendSDKs: { + status: "strong", + details: "Next.js, SvelteKit, SolidStart, Express", + + reference: "https://authjs.dev/getting-started/introduction", }, prebuiltUI: { + status: "partial", + details: "Basic sign-in pages (customizable)", + + reference: "https://authjs.dev", }, documentation: { + status: "strong", + details: "Good docs with many examples", + + reference: "https://authjs.dev/getting-started/introduction", }, apiApproach: { + status: "strong", + details: "Framework-integrated API routes", + + reference: "https://authjs.dev/getting-started/introduction", }, sessionManagement: { + status: "strong", + details: "JWT or database sessions with rotation", + + reference: "https://authjs.dev", }, jwtSupport: { + status: "strong", + details: "JWT with custom claims via callbacks", + + reference: "https://authjs.dev", }, compliance: { + status: "partial", + details: "Your responsibility (self-hosted)", + + reference: "https://authjs.dev", }, rateLimiting: { + status: "partial", + details: "Implement via middleware or proxies", + + reference: "https://authjs.dev", }, freeTier: { + status: "strong", + details: "Unlimited (self-hosted, open source)", + + reference: "https://authjs.dev", }, - paidPricing: { status: "none", details: "Free forever" }, - openSource: { status: "strong", details: "ISC License (MIT-compatible)" }, + paidPricing: { status: "none", details: "Free forever", reference: "https://authjs.dev" }, + openSource: { status: "strong", details: "ISC License (MIT-compatible)", reference: "https://authjs.dev" }, selfHosted: { + status: "strong", + details: "Required (runs on your infrastructure)", + + reference: "https://authjs.dev", }, oauthProviders: { + status: "strong", + details: "80+ providers (Google, GitHub, Apple, etc.)", + + reference: "https://authjs.dev", }, webhooks: { + status: "partial", + details: "Build your own with event callbacks", + + reference: "https://authjs.dev", }, thirdPartyIntegrations: { + status: "partial", + details: "Community adapters for various databases", + + reference: "https://authjs.dev", }, }, }; diff --git a/src/data/auth/clerk.tsx b/src/data/auth/clerk.tsx index 4d1a77d..45adcf2 100644 --- a/src/data/auth/clerk.tsx +++ b/src/data/auth/clerk.tsx @@ -27,91 +27,170 @@ export const clerk: Provider = { logo: , website: "https://clerk.com", tagline: { + status: "strong", - details: - "Complete user management - authentication, profiles, and organizations", + + details: "Complete user management - authentication, profiles, and organizations", + + reference: "https://clerk.com/pricing", }, features: { emailPassword: { + status: "strong", + details: "Email + password with verification", + + reference: "https://clerk.com/pricing", }, passwordless: { + status: "strong", + details: "Email magic links & verification codes", + + reference: "https://clerk.com/pricing", }, socialLogins: { + status: "strong", + details: "Google, GitHub, Microsoft, Apple, 20+ providers", + + reference: "https://clerk.com/pricing", }, enterpriseSSO: { + status: "strong", + details: "SAML & OIDC (Enhanced Auth $100/mo addon)", + + reference: "https://clerk.com/pricing", }, passkeys: { + status: "strong", + details: "WebAuthn/FIDO2 (Enhanced Auth $100/mo addon)", + + reference: "https://clerk.com/pricing", }, mfa: { + status: "strong", + details: "SMS, TOTP, Backup codes (Enhanced Auth $100/mo addon)", + + reference: "https://clerk.com/pricing", }, rbac: { + status: "strong", + details: "Custom roles & permissions (Enhanced Auth $100/mo addon)", + + reference: "https://clerk.com/pricing", }, userProfiles: { + status: "strong", + details: "Customizable with metadata fields", + + reference: "https://clerk.com/pricing", }, organizations: { + status: "strong", + details: "Built-in teams with invitations", + + reference: "https://clerk.com/pricing", }, frontendSDKs: { + status: "strong", + details: "React, Next.js, Remix, Gatsby, Vue, Svelte", + + reference: "https://clerk.com/docs", }, prebuiltUI: { + status: "strong", + details: "Fully customizable components & themes", + + reference: "https://clerk.com/pricing", }, documentation: { + status: "strong", + details: "Excellent docs with tutorials & examples", + + reference: "https://clerk.com/docs", }, apiApproach: { + status: "strong", + details: "REST API + SDKs with TypeScript support", + + reference: "https://clerk.com/docs", }, sessionManagement: { + status: "strong", + details: "Customizable duration & refresh tokens", + + reference: "https://clerk.com/pricing", }, - jwtSupport: { status: "strong", details: "JWTs with custom claims" }, + jwtSupport: { status: "strong", details: "JWTs with custom claims", reference: "https://clerk.com/pricing" }, compliance: { + status: "strong", + details: "SOC 2 Type II, GDPR, HIPAA (Enterprise)", + + reference: "https://clerk.com/legal/privacy", }, rateLimiting: { + status: "strong", + details: "Built-in DDoS & bot protection", + + reference: "https://clerk.com/pricing", }, - freeTier: { status: "strong", details: "10,000 MAU" }, - paidPricing: { status: "strong", details: "$25/mo + $0.02/MAU" }, - openSource: { status: "none", details: "Proprietary" }, - selfHosted: { status: "none", details: "Cloud-only SaaS" }, + freeTier: { status: "strong", details: "10,000 MAU", reference: "https://clerk.com/pricing" }, + paidPricing: { status: "strong", details: "$25/mo + $0.02/MAU", reference: "https://clerk.com/pricing" }, + openSource: { status: "none", details: "Proprietary", reference: "https://clerk.com/pricing" }, + selfHosted: { status: "none", details: "Cloud-only SaaS", reference: "https://clerk.com/pricing" }, oauthProviders: { + status: "strong", + details: "20+ social, enterprise, Web3 providers", + + reference: "https://clerk.com/pricing", }, webhooks: { + status: "strong", + details: "Real-time event webhooks (Svix)", + + reference: "https://clerk.com/pricing", }, thirdPartyIntegrations: { + status: "strong", + details: "Segment, Vercel, Netlify, analytics tools", + + reference: "https://clerk.com/pricing", }, }, }; diff --git a/src/data/auth/firebase.tsx b/src/data/auth/firebase.tsx index 600a239..98e6468 100644 --- a/src/data/auth/firebase.tsx +++ b/src/data/auth/firebase.tsx @@ -19,94 +19,177 @@ export const firebase: Provider = { logo: , website: "https://firebase.google.com/products/auth", tagline: { + status: "strong", - details: - "Simple, multi-platform sign-in with backend services and ready-made UI", + + details: "Simple, multi-platform sign-in with backend services and ready-made UI", + + reference: "https://firebase.google.com/pricing", }, features: { emailPassword: { + status: "strong", + details: "Email + password with verification links", + + reference: "https://firebase.google.com/pricing", }, passwordless: { + status: "strong", + details: "Email links & anonymous auth", + + reference: "https://firebase.google.com/pricing", }, socialLogins: { + status: "strong", + details: "Google, Facebook, Apple, Microsoft, GitHub, Twitter", + + reference: "https://firebase.google.com/pricing", }, enterpriseSSO: { + status: "strong", + details: "SAML & OIDC (Identity Platform)", + + reference: "https://firebase.google.com/pricing", }, passkeys: { + status: "partial", + details: "Via Firebase Extensions or custom", + + reference: "https://firebase.google.com/pricing", }, - mfa: { status: "strong", details: "SMS, TOTP (Google Authenticator)" }, - rbac: { status: "partial", details: "Custom claims + Security Rules" }, + mfa: { status: "strong", details: "SMS, TOTP (Google Authenticator)", reference: "https://firebase.google.com/pricing" }, + rbac: { status: "partial", details: "Custom claims + Security Rules", reference: "https://firebase.google.com/pricing" }, userProfiles: { + status: "partial", + details: "Store in Firestore with custom logic", + + reference: "https://firebase.google.com/pricing", }, organizations: { + status: "partial", + details: "Build with Firestore & Security Rules", + + reference: "https://firebase.google.com/pricing", }, frontendSDKs: { + status: "strong", + details: "Web, iOS, Android, Flutter, Unity, C++", + + reference: "https://firebase.google.com/docs/auth", }, prebuiltUI: { + status: "strong", + details: "FirebaseUI for Web, iOS, Android", + + reference: "https://firebase.google.com/pricing", }, documentation: { + status: "strong", + details: "Excellent docs with video courses", + + reference: "https://firebase.google.com/docs/auth", }, apiApproach: { + status: "strong", + details: "Client SDKs + Admin SDK for backend", + + reference: "https://firebase.google.com/docs/auth", }, sessionManagement: { + status: "strong", + details: "ID tokens with automatic refresh", + + reference: "https://firebase.google.com/pricing", }, - jwtSupport: { status: "strong", details: "Firebase ID tokens (JWTs)" }, + jwtSupport: { status: "strong", details: "Firebase ID tokens (JWTs)", reference: "https://firebase.google.com/pricing" }, compliance: { + status: "strong", + details: "SOC 2, SOC 3, ISO 27001, GDPR", + + reference: "https://policies.google.com/privacy", }, rateLimiting: { + status: "strong", + details: "App Check + Cloud Armor integration", + + reference: "https://firebase.google.com/pricing", }, freeTier: { + status: "strong", + details: "Unlimited auth users (no MAU limits)", + + reference: "https://firebase.google.com/pricing", }, paidPricing: { + status: "partial", + details: "Free auth; phone SMS $0.06/verification", + + reference: "https://firebase.google.com/pricing", }, openSource: { + status: "none", + details: "Proprietary (Firebase Emulators for dev)", + + reference: "https://firebase.google.com/pricing", }, - selfHosted: { status: "none", details: "Cloud-only Google service" }, + selfHosted: { status: "none", details: "Cloud-only Google service", reference: "https://firebase.google.com/pricing" }, oauthProviders: { + status: "strong", + details: "6+ social + custom OAuth/SAML", + + reference: "https://firebase.google.com/pricing", }, webhooks: { + status: "partial", + details: "Cloud Functions triggers for auth events", + + reference: "https://firebase.google.com/pricing", }, thirdPartyIntegrations: { + status: "strong", + details: "Google ecosystem + Firebase Extensions", + + reference: "https://firebase.google.com/pricing", }, }, }; diff --git a/src/data/auth/keycloak.tsx b/src/data/auth/keycloak.tsx index 8f4c29b..083921d 100644 --- a/src/data/auth/keycloak.tsx +++ b/src/data/auth/keycloak.tsx @@ -20,91 +20,170 @@ export const keycloak: Provider = { logo: , website: "https://www.keycloak.org", tagline: { + status: "strong", - details: - "Open source identity and access management - add authentication with minimum effort", + + details: "Open source identity and access management - add authentication with minimum effort", + + reference: "https://www.keycloak.org", }, features: { - emailPassword: { status: "strong", details: "Username/email + password" }, - passwordless: { status: "partial", details: "WebAuthn or custom flows" }, + emailPassword: { status: "strong", details: "Username/email + password", reference: "https://www.keycloak.org" }, + passwordless: { status: "partial", details: "WebAuthn or custom flows", reference: "https://www.keycloak.org" }, socialLogins: { + status: "strong", + details: "Google, GitHub, Facebook, LinkedIn, etc.", + + reference: "https://www.keycloak.org", }, enterpriseSSO: { + status: "strong", + details: "SAML 2.0, OIDC, LDAP, Kerberos", + + reference: "https://www.keycloak.org", }, - passkeys: { status: "strong", details: "WebAuthn/FIDO2 built-in" }, - mfa: { status: "strong", details: "OTP, WebAuthn/FIDO2, SMS (via SPI)" }, + passkeys: { status: "strong", details: "WebAuthn/FIDO2 built-in", reference: "https://www.keycloak.org" }, + mfa: { status: "strong", details: "OTP, WebAuthn/FIDO2, SMS (via SPI)", reference: "https://www.keycloak.org" }, rbac: { + status: "strong", + details: "Fine-grained authorization with policies", + + reference: "https://www.keycloak.org", }, userProfiles: { + status: "strong", + details: "Customizable attributes & federation", + + reference: "https://www.keycloak.org", }, organizations: { + status: "strong", + details: "Realms & organizations (multi-tenancy)", + + reference: "https://www.keycloak.org", }, frontendSDKs: { + status: "strong", + details: "JavaScript, Java, Python, .NET, Go adapters", + + reference: "https://www.keycloak.org/documentation", }, prebuiltUI: { + status: "partial", + details: "Admin console + customizable login themes", + + reference: "https://www.keycloak.org", }, documentation: { + status: "strong", + details: "Comprehensive official docs", + + reference: "https://www.keycloak.org/documentation", }, apiApproach: { + status: "strong", + details: "REST Admin API + standard OAuth/OIDC", + + reference: "https://www.keycloak.org/documentation", }, sessionManagement: { + status: "strong", + details: "SSO sessions, offline tokens, revocation", + + reference: "https://www.keycloak.org", }, jwtSupport: { + status: "strong", + details: "JWTs with custom claims & mappers", + + reference: "https://www.keycloak.org", }, compliance: { + status: "partial", + details: "Your responsibility (self-hosted)", + + reference: "https://www.keycloak.org", }, rateLimiting: { + status: "partial", + details: "Via reverse proxy or extensions", + + reference: "https://www.keycloak.org", }, freeTier: { + status: "strong", + details: "Unlimited (self-hosted, open source)", + + reference: "https://www.keycloak.org", }, paidPricing: { + status: "none", + details: "Free (Red Hat support available)", + + reference: "https://www.keycloak.org", }, - openSource: { status: "strong", details: "Apache 2.0 License" }, + openSource: { status: "strong", details: "Apache 2.0 License", reference: "https://www.keycloak.org" }, selfHosted: { + status: "strong", + details: "Required (Java app, Docker, Kubernetes)", + + reference: "https://www.keycloak.org", }, oauthProviders: { + status: "strong", + details: "OAuth 2.0, OIDC, SAML, LDAP, social providers", + + reference: "https://www.keycloak.org", }, webhooks: { + status: "partial", + details: "Event listeners via SPI extensions", + + reference: "https://www.keycloak.org", }, thirdPartyIntegrations: { + status: "strong", + details: "Extensive via SPIs & adapters", + + reference: "https://www.keycloak.org", }, }, }; diff --git a/src/data/auth/lucia.tsx b/src/data/auth/lucia.tsx index c5bb3d1..d3a05ce 100644 --- a/src/data/auth/lucia.tsx +++ b/src/data/auth/lucia.tsx @@ -30,75 +30,135 @@ export const lucia: Provider = { logo: , website: "https://lucia-auth.com", tagline: { + status: "strong", + details: "Open source library to implement authentication using JavaScript", + + reference: "https://lucia-auth.com", }, features: { emailPassword: { + status: "strong", + details: "Build your own with database", + + reference: "https://lucia-auth.com", }, passwordless: { + status: "partial", + details: "Implement yourself with email service", + + reference: "https://lucia-auth.com", }, socialLogins: { + status: "strong", + details: "Arctic library: 50+ OAuth providers", + + reference: "https://lucia-auth.com", }, enterpriseSSO: { + status: "partial", + details: "Custom SAML/OIDC implementation needed", + + reference: "https://lucia-auth.com", }, - passkeys: { status: "partial", details: "Use SimpleWebAuthn library" }, - mfa: { status: "partial", details: "Build your own TOTP/SMS logic" }, + passkeys: { status: "partial", details: "Use SimpleWebAuthn library", reference: "https://lucia-auth.com" }, + mfa: { status: "partial", details: "Build your own TOTP/SMS logic", reference: "https://lucia-auth.com" }, rbac: { + status: "partial", + details: "Implement with your database schema", + + reference: "https://lucia-auth.com", }, userProfiles: { + status: "partial", + details: "Your database, your schema", + + reference: "https://lucia-auth.com", }, - organizations: { status: "partial", details: "Build from scratch" }, + organizations: { status: "partial", details: "Build from scratch", reference: "https://lucia-auth.com" }, frontendSDKs: { + status: "partial", + details: "Framework-agnostic TypeScript library", + + reference: "https://lucia-auth.com", }, - prebuiltUI: { status: "none", details: "No pre-built UI (you build it)" }, - documentation: { status: "strong", details: "Clear docs with examples" }, - apiApproach: { status: "strong", details: "Session-based auth library" }, + prebuiltUI: { status: "none", details: "No pre-built UI (you build it)", reference: "https://lucia-auth.com" }, + documentation: { status: "strong", details: "Clear docs with examples", reference: "https://lucia-auth.com" }, + apiApproach: { status: "strong", details: "Session-based auth library", reference: "https://lucia-auth.com" }, sessionManagement: { + status: "strong", + details: "Secure database-backed sessions", + + reference: "https://lucia-auth.com", }, jwtSupport: { + status: "partial", + details: "Use jose or other JWT library", + + reference: "https://lucia-auth.com", }, compliance: { + status: "partial", + details: "Your responsibility (self-implemented)", + + reference: "https://lucia-auth.com", }, - rateLimiting: { status: "partial", details: "Implement via middleware" }, + rateLimiting: { status: "partial", details: "Implement via middleware", reference: "https://lucia-auth.com" }, freeTier: { + status: "strong", + details: "Unlimited (library, not a service)", + + reference: "https://lucia-auth.com", }, - paidPricing: { status: "none", details: "Free forever (MIT license)" }, - openSource: { status: "strong", details: "MIT License (fully open)" }, + paidPricing: { status: "none", details: "Free forever (MIT license)", reference: "https://lucia-auth.com" }, + openSource: { status: "strong", details: "MIT License (fully open)", reference: "https://lucia-auth.com" }, selfHosted: { + status: "strong", + details: "Required (TypeScript library)", + + reference: "https://lucia-auth.com", }, oauthProviders: { + status: "strong", + details: "Arctic: 50+ OAuth providers", + + reference: "https://lucia-auth.com", }, - webhooks: { status: "partial", details: "Build your own event system" }, + webhooks: { status: "partial", details: "Build your own event system", reference: "https://lucia-auth.com" }, thirdPartyIntegrations: { + status: "none", + details: "Minimal (DIY approach)", + + reference: "https://lucia-auth.com", }, }, }; diff --git a/src/data/auth/supabase.tsx b/src/data/auth/supabase.tsx index b811522..127d584 100644 --- a/src/data/auth/supabase.tsx +++ b/src/data/auth/supabase.tsx @@ -59,90 +59,170 @@ export const supabase: Provider = { logo: , website: "https://supabase.com/auth", tagline: { + status: "strong", + details: "Open source auth with PostgreSQL Row Level Security", + + reference: "https://supabase.com/pricing", }, features: { emailPassword: { + status: "strong", + details: "Email + password with confirmation", + + reference: "https://supabase.com/pricing", }, - passwordless: { status: "strong", details: "Magic links via email" }, + passwordless: { status: "strong", details: "Magic links via email", reference: "https://supabase.com/pricing" }, socialLogins: { + status: "strong", + details: "Google, GitHub, GitLab, Slack, 10+ providers", + + reference: "https://supabase.com/pricing", }, enterpriseSSO: { + status: "partial", + details: "SAML (Enterprise plan only)", + + reference: "https://supabase.com/pricing", }, - passkeys: { status: "partial", details: "Experimental WebAuthn support" }, - mfa: { status: "strong", details: "TOTP authenticator apps" }, + passkeys: { status: "partial", details: "Experimental WebAuthn support", reference: "https://supabase.com/pricing" }, + mfa: { status: "strong", details: "TOTP authenticator apps", reference: "https://supabase.com/pricing" }, rbac: { + status: "strong", + details: "Row Level Security (RLS) with PostgreSQL policies", + + reference: "https://supabase.com/pricing", }, userProfiles: { + status: "strong", + details: "Stored in users table with custom fields", + + reference: "https://supabase.com/pricing", }, organizations: { + status: "partial", + details: "Build your own with RLS policies", + + reference: "https://supabase.com/pricing", }, frontendSDKs: { + status: "strong", + details: "JavaScript, React, Vue, Svelte, Angular, Flutter", + + reference: "https://supabase.com/docs/guides/auth", }, prebuiltUI: { + status: "strong", + details: "Auth UI library with customizable components", + + reference: "https://supabase.com/pricing", }, documentation: { + status: "strong", + details: "Excellent docs with video tutorials", + + reference: "https://supabase.com/docs/guides/auth", }, apiApproach: { + status: "strong", + details: "RESTful + Realtime + GraphQL (pg_graphql)", + + reference: "https://supabase.com/docs/guides/auth", }, sessionManagement: { + status: "strong", + details: "JWT with refresh tokens & auto-refresh", + + reference: "https://supabase.com/pricing", }, jwtSupport: { + status: "strong", + details: "JWTs with custom claims via PostgreSQL functions", + + reference: "https://supabase.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2 Type II, GDPR, HIPAA (Enterprise)", + + reference: "https://supabase.com/privacy", }, rateLimiting: { + status: "strong", + details: "Built-in rate limiting per endpoint", + + reference: "https://supabase.com/pricing", }, - freeTier: { status: "strong", details: "50,000 MAU" }, - paidPricing: { status: "strong", details: "$25/mo + $0.00325/MAU" }, + freeTier: { status: "strong", details: "50,000 MAU", reference: "https://supabase.com/pricing" }, + paidPricing: { status: "strong", details: "$25/mo + $0.00325/MAU", reference: "https://supabase.com/pricing" }, openSource: { + status: "strong", + details: "MIT License (fully open source)", + + reference: "https://supabase.com/pricing", }, selfHosted: { + status: "strong", + details: "Docker self-hosting available", + + reference: "https://supabase.com/pricing", }, oauthProviders: { + status: "strong", + details: "10+ providers with custom OAuth", + + reference: "https://supabase.com/pricing", }, webhooks: { + status: "strong", + details: "Database webhooks via pg_net or Edge Functions", + + reference: "https://supabase.com/pricing", }, thirdPartyIntegrations: { + status: "partial", + details: "Growing ecosystem with partner integrations", + + reference: "https://supabase.com/pricing", }, }, }; diff --git a/src/data/auth/workos.tsx b/src/data/auth/workos.tsx index ef812ed..e0b1333 100644 --- a/src/data/auth/workos.tsx +++ b/src/data/auth/workos.tsx @@ -30,73 +30,128 @@ export const workos: Provider = { logo: , website: "https://workos.com", tagline: { + status: "strong", - details: - "Your app, enterprise ready - APIs for SSO, SCIM, and user management", + + details: "Your app, enterprise ready - APIs for SSO, SCIM, and user management", + + reference: "https://workos.com/pricing", }, features: { - emailPassword: { status: "strong", details: "AuthKit email + password" }, - passwordless: { status: "strong", details: "Magic links via AuthKit" }, + emailPassword: { status: "strong", details: "AuthKit email + password", reference: "https://workos.com/pricing" }, + passwordless: { status: "strong", details: "Magic links via AuthKit", reference: "https://workos.com/pricing" }, socialLogins: { + status: "strong", + details: "Microsoft, Google, GitHub via AuthKit", + + reference: "https://workos.com/pricing", }, enterpriseSSO: { + status: "strong", + details: "SAML, OIDC (enterprise focus)", + + reference: "https://workos.com/pricing", }, - passkeys: { status: "partial", details: "Coming soon to AuthKit" }, - mfa: { status: "strong", details: "TOTP, SMS included in AuthKit" }, + passkeys: { status: "partial", details: "Coming soon to AuthKit", reference: "https://workos.com/pricing" }, + mfa: { status: "strong", details: "TOTP, SMS included in AuthKit", reference: "https://workos.com/pricing" }, rbac: { + status: "strong", + details: "Built-in with AuthKit & Organizations API", + + reference: "https://workos.com/pricing", }, userProfiles: { + status: "strong", + details: "User Management API with metadata", + + reference: "https://workos.com/pricing", }, organizations: { + status: "strong", + details: "Organizations API (B2B focus)", + + reference: "https://workos.com/pricing", }, frontendSDKs: { + status: "strong", + details: "React, Next.js, Node.js SDKs", + + reference: "https://workos.com/docs", }, prebuiltUI: { + status: "strong", + details: "AuthKit hosted UI with customization", + + reference: "https://workos.com/pricing", }, - documentation: { status: "strong", details: "Developer-focused docs" }, + documentation: { status: "strong", details: "Developer-focused docs", reference: "https://workos.com/docs" }, apiApproach: { + status: "strong", + details: "Modern REST APIs with webhooks", + + reference: "https://workos.com/docs", }, sessionManagement: { + status: "strong", + details: "Managed sessions via AuthKit", + + reference: "https://workos.com/pricing", }, - jwtSupport: { status: "strong", details: "JWTs for API authentication" }, - compliance: { status: "strong", details: "SOC 2 Type II, GDPR, HIPAA" }, + jwtSupport: { status: "strong", details: "JWTs for API authentication", reference: "https://workos.com/pricing" }, + compliance: { status: "strong", details: "SOC 2 Type II, GDPR, HIPAA", reference: "https://workos.com/legal/privacy-policy" }, rateLimiting: { + status: "strong", + details: "Enterprise-grade rate limiting", + + reference: "https://workos.com/pricing", }, - freeTier: { status: "strong", details: "1 million MAU (generous)" }, - paidPricing: { status: "strong", details: "$2,500/mo per 1M MAU" }, - openSource: { status: "none", details: "Proprietary" }, - selfHosted: { status: "none", details: "Cloud-only SaaS" }, + freeTier: { status: "strong", details: "1 million MAU (generous)", reference: "https://workos.com/pricing" }, + paidPricing: { status: "strong", details: "$2,500/mo per 1M MAU", reference: "https://workos.com/pricing" }, + openSource: { status: "none", details: "Proprietary", reference: "https://workos.com/pricing" }, + selfHosted: { status: "none", details: "Cloud-only SaaS", reference: "https://workos.com/pricing" }, oauthProviders: { + status: "strong", + details: "Social + enterprise SSO providers", + + reference: "https://workos.com/pricing", }, webhooks: { + status: "strong", + details: "Event-driven webhooks for all APIs", + + reference: "https://workos.com/pricing", }, thirdPartyIntegrations: { + status: "strong", + details: "Directory Sync (SCIM), Audit Logs, MFA", + + reference: "https://workos.com/pricing", }, }, }; diff --git a/src/data/featureflags/configcat.tsx b/src/data/featureflags/configcat.tsx index bf953a3..36a1215 100644 --- a/src/data/featureflags/configcat.tsx +++ b/src/data/featureflags/configcat.tsx @@ -26,142 +26,278 @@ export const configcat: Provider = { logo: , website: "https://configcat.com", tagline: { + status: "strong", + details: "Feature flag service with 10-minute setup", + + reference: "https://configcat.com/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://configcat.com/pricing" }, multivariateFlags: { + status: "strong", + details: "String, number, JSON", + + reference: "https://configcat.com/pricing", }, jsonFlags: { + status: "strong", + details: "JSON setting values", + + reference: "https://configcat.com/pricing", }, flagDependencies: { + status: "partial", + details: "Via targeting rules", + + reference: "https://configcat.com/pricing", }, scheduledRollouts: { + status: "partial", + details: "Manual time-based changes", + + reference: "https://configcat.com/pricing", }, userTargeting: { + status: "strong", + details: "User object targeting", + + reference: "https://configcat.com/pricing", }, percentageRollouts: { + status: "strong", + details: "Percentage options", + + reference: "https://configcat.com/pricing", }, customSegments: { + status: "strong", + details: "Segments with conditions", + + reference: "https://configcat.com/pricing", }, geoTargeting: { + status: "partial", + details: "Via custom attributes", + + reference: "https://configcat.com/pricing", }, contextualTargeting: { + status: "strong", + details: "Custom attribute targeting", + + reference: "https://configcat.com/pricing", }, abTesting: { + status: "partial", + details: "Basic A/B via percentages", + + reference: "https://configcat.com/pricing", }, multivariateExperiments: { + status: "partial", + details: "Via integrations", + + reference: "https://configcat.com/pricing", }, statisticalAnalysis: { + status: "none", + details: "External tools needed", + + reference: "https://configcat.com/pricing", }, metricsTracking: { + status: "partial", + details: "Via integrations", + + reference: "https://configcat.com/pricing", }, experimentGoals: { + status: "none", + details: "Not built-in", + + reference: "https://configcat.com/pricing", }, sdkLanguages: { + status: "strong", + details: "25+ languages (JS, Java, Python, .NET, Go, etc.)", + + reference: "https://configcat.com/docs", }, localEvaluation: { + status: "strong", + details: "Auto-polling with caching", + + reference: "https://configcat.com/pricing", }, typeSafety: { + status: "strong", + details: "Strongly typed SDKs", + + reference: "https://configcat.com/pricing", }, documentation: { + status: "strong", + details: "Clear documentation", + + reference: "https://configcat.com/docs", }, apiQuality: { + status: "strong", + details: "Public Management API", + + reference: "https://configcat.com/docs", }, rbac: { + status: "strong", + details: "Permission groups (Team+)", + + reference: "https://configcat.com/pricing", }, auditLogs: { + status: "strong", + details: "Product audit log", + + reference: "https://configcat.com/pricing", }, environments: { + status: "strong", + details: "Unlimited configs & environments", + + reference: "https://configcat.com/pricing", }, approvalWorkflows: { + status: "partial", + details: "Two-step save", + + reference: "https://configcat.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR, CCPA", + + reference: "https://configcat.com/privacy", }, freeTier: { + status: "strong", + details: "Free: 10 flags, 2 environments, 5M config downloads", + + reference: "https://configcat.com/pricing", }, paidPricing: { + status: "strong", + details: "Pro: $110/mo (100 flags), Smart: $325/mo (unlimited)", + + reference: "https://configcat.com/pricing", }, openSource: { + status: "partial", + details: "Open source SDKs", + + reference: "https://configcat.com/pricing", }, selfHosted: { + status: "none", + details: "Cloud-only", + + reference: "https://configcat.com/pricing", }, cloudHosted: { + status: "strong", + details: "Fully managed SaaS", + + reference: "https://configcat.com/pricing", }, analytics: { + status: "strong", + details: "Google Analytics, Mixpanel, Amplitude", + + reference: "https://configcat.com/pricing", }, dataWarehouses: { + status: "partial", + details: "Webhook-based export", + + reference: "https://configcat.com/pricing", }, cicd: { + status: "strong", + details: "Slack, Jira, Trello, Zapier, GitHub", + + reference: "https://configcat.com/pricing", }, webhooks: { + status: "strong", + details: "Config change webhooks", + + reference: "https://configcat.com/pricing", }, }, }; diff --git a/src/data/featureflags/devcycle.tsx b/src/data/featureflags/devcycle.tsx index d8ac14c..4206275 100644 --- a/src/data/featureflags/devcycle.tsx +++ b/src/data/featureflags/devcycle.tsx @@ -26,142 +26,278 @@ export const devcycle: Provider = { logo: , website: "https://devcycle.com", tagline: { + status: "strong", + details: "Developer-first feature flag management platform", + + reference: "https://devcycle.com/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://devcycle.com/pricing" }, multivariateFlags: { + status: "strong", + details: "Multi-value variables", + + reference: "https://devcycle.com/pricing", }, jsonFlags: { + status: "strong", + details: "JSON variables", + + reference: "https://devcycle.com/pricing", }, flagDependencies: { + status: "partial", + details: "Via targeting rules", + + reference: "https://devcycle.com/pricing", }, scheduledRollouts: { + status: "strong", + details: "Scheduled changes", + + reference: "https://devcycle.com/pricing", }, userTargeting: { + status: "strong", + details: "User & custom targeting", + + reference: "https://devcycle.com/pricing", }, percentageRollouts: { + status: "strong", + details: "Percentage-based distribution", + + reference: "https://devcycle.com/pricing", }, customSegments: { + status: "strong", + details: "Custom audiences", + + reference: "https://devcycle.com/pricing", }, geoTargeting: { + status: "partial", + details: "Via custom properties", + + reference: "https://devcycle.com/pricing", }, contextualTargeting: { + status: "strong", + details: "Custom property targeting", + + reference: "https://devcycle.com/pricing", }, abTesting: { + status: "strong", + details: "Built-in experimentation", + + reference: "https://devcycle.com/pricing", }, multivariateExperiments: { + status: "strong", + details: "Multi-variant tests", + + reference: "https://devcycle.com/pricing", }, statisticalAnalysis: { + status: "partial", + details: "Basic statistics", + + reference: "https://devcycle.com/pricing", }, metricsTracking: { + status: "strong", + details: "Event tracking", + + reference: "https://devcycle.com/pricing", }, experimentGoals: { + status: "strong", + details: "Goal metrics", + + reference: "https://devcycle.com/pricing", }, sdkLanguages: { + status: "strong", + details: "12+ languages (JS, React, Node, Python, Go, etc.)", + + reference: "https://docs.devcycle.com", }, localEvaluation: { + status: "strong", + details: "Local bucketing", + + reference: "https://devcycle.com/pricing", }, typeSafety: { + status: "strong", + details: "Type-safe SDKs", + + reference: "https://devcycle.com/pricing", }, documentation: { + status: "strong", + details: "Developer-focused docs", + + reference: "https://docs.devcycle.com", }, apiQuality: { + status: "strong", + details: "Management API + SDKs", + + reference: "https://docs.devcycle.com", }, rbac: { + status: "strong", + details: "Team permissions", + + reference: "https://devcycle.com/pricing", }, auditLogs: { + status: "strong", + details: "Activity logs", + + reference: "https://devcycle.com/pricing", }, environments: { + status: "strong", + details: "Multiple environments", + + reference: "https://devcycle.com/pricing", }, approvalWorkflows: { + status: "partial", + details: "Review process", + + reference: "https://devcycle.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR", + + reference: "https://devcycle.com/privacy-policy", }, freeTier: { + status: "strong", + details: "Free: 1K client MAUs", + + reference: "https://devcycle.com/pricing", }, paidPricing: { + status: "strong", + details: "Developer: $10/mo (annual), Business: $500/mo (annual)", + + reference: "https://devcycle.com/pricing", }, openSource: { + status: "partial", + details: "Open source SDKs", + + reference: "https://devcycle.com/pricing", }, selfHosted: { + status: "none", + details: "Cloud-only", + + reference: "https://devcycle.com/pricing", }, cloudHosted: { + status: "strong", + details: "Managed SaaS", + + reference: "https://devcycle.com/pricing", }, analytics: { + status: "strong", + details: "Analytics integrations", + + reference: "https://devcycle.com/pricing", }, dataWarehouses: { + status: "partial", + details: "Data export", + + reference: "https://devcycle.com/pricing", }, cicd: { + status: "strong", + details: "GitHub integration, API", + + reference: "https://devcycle.com/pricing", }, webhooks: { + status: "strong", + details: "Event webhooks", + + reference: "https://devcycle.com/pricing", }, }, }; diff --git a/src/data/featureflags/flagsmith.tsx b/src/data/featureflags/flagsmith.tsx index 64ec636..ce74a22 100644 --- a/src/data/featureflags/flagsmith.tsx +++ b/src/data/featureflags/flagsmith.tsx @@ -21,139 +21,271 @@ export const flagsmith: Provider = { logo: , website: "https://flagsmith.com", tagline: { + status: "strong", + details: "Open source feature flag and remote config service", + + reference: "https://flagsmith.com/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://flagsmith.com/pricing" }, multivariateFlags: { + status: "strong", + details: "String, number, boolean variants", + + reference: "https://flagsmith.com/pricing", }, - jsonFlags: { status: "strong", details: "JSON remote config" }, + jsonFlags: { status: "strong", details: "JSON remote config", reference: "https://flagsmith.com/pricing" }, flagDependencies: { + status: "partial", + details: "Via segment rules", + + reference: "https://flagsmith.com/pricing", }, scheduledRollouts: { + status: "strong", + details: "Scheduled flag changes", + + reference: "https://flagsmith.com/pricing", }, userTargeting: { + status: "strong", + details: "Identity-based targeting", + + reference: "https://flagsmith.com/pricing", }, percentageRollouts: { + status: "strong", + details: "Percentage-based splits", + + reference: "https://flagsmith.com/pricing", }, customSegments: { + status: "strong", + details: "Segment rules & conditions", + + reference: "https://flagsmith.com/pricing", }, geoTargeting: { + status: "partial", + details: "Via custom traits", + + reference: "https://flagsmith.com/pricing", }, contextualTargeting: { + status: "strong", + details: "Custom trait targeting", + + reference: "https://flagsmith.com/pricing", }, abTesting: { + status: "partial", + details: "Basic A/B via integrations", + + reference: "https://flagsmith.com/pricing", }, multivariateExperiments: { + status: "partial", + details: "Via integrations", + + reference: "https://flagsmith.com/pricing", }, statisticalAnalysis: { + status: "partial", + details: "Via analytics integrations", + + reference: "https://flagsmith.com/pricing", }, metricsTracking: { + status: "partial", + details: "Via integrations (Mixpanel, Heap)", + + reference: "https://flagsmith.com/pricing", }, experimentGoals: { + status: "partial", + details: "External analytics required", + + reference: "https://flagsmith.com/pricing", }, sdkLanguages: { + status: "strong", + details: "15+ languages (JS, Python, Java, .NET, Go, etc.)", + + reference: "https://docs.flagsmith.com", }, localEvaluation: { + status: "strong", + details: "Local evaluation mode", + + reference: "https://flagsmith.com/pricing", }, typeSafety: { + status: "strong", + details: "TypeScript support", + + reference: "https://flagsmith.com/pricing", }, documentation: { + status: "strong", + details: "Good docs with examples", + + reference: "https://docs.flagsmith.com", }, apiQuality: { + status: "strong", + details: "REST API + client SDKs", + + reference: "https://docs.flagsmith.com", }, rbac: { + status: "strong", + details: "Roles & permissions (paid)", + + reference: "https://flagsmith.com/pricing", }, auditLogs: { + status: "strong", + details: "Audit log (paid)", + + reference: "https://flagsmith.com/pricing", }, environments: { + status: "strong", + details: "Multiple environments", + + reference: "https://flagsmith.com/pricing", }, approvalWorkflows: { + status: "partial", + details: "4-eyes via external process", + + reference: "https://flagsmith.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2 Type II, GDPR", + + reference: "https://flagsmith.com/privacy-policy", }, freeTier: { + status: "strong", + details: "Free: 50K requests/month, 1 team member", + + reference: "https://flagsmith.com/pricing", }, paidPricing: { + status: "strong", + details: "Start-Up: $45/mo, 1M requests, 3 team members", + + reference: "https://flagsmith.com/pricing", }, openSource: { + status: "strong", + details: "MIT & BSD licenses", + + reference: "https://flagsmith.com/pricing", }, selfHosted: { + status: "strong", + details: "Docker, Kubernetes, full self-host", + + reference: "https://flagsmith.com/pricing", }, cloudHosted: { + status: "strong", + details: "SaaS available", + + reference: "https://flagsmith.com/pricing", }, analytics: { + status: "strong", + details: "Mixpanel, Heap, Amplitude, Segment", + + reference: "https://flagsmith.com/pricing", }, dataWarehouses: { + status: "partial", + details: "Via data export API", + + reference: "https://flagsmith.com/pricing", }, cicd: { + status: "strong", + details: "GitHub Actions, API-based", + + reference: "https://flagsmith.com/pricing", }, webhooks: { + status: "strong", + details: "Change webhooks", + + reference: "https://flagsmith.com/pricing", }, }, }; diff --git a/src/data/featureflags/growthbook.tsx b/src/data/featureflags/growthbook.tsx index fa6421f..881e418 100644 --- a/src/data/featureflags/growthbook.tsx +++ b/src/data/featureflags/growthbook.tsx @@ -24,142 +24,278 @@ export const growthbook: Provider = { logo: , website: "https://www.growthbook.io", tagline: { + status: "strong", + details: "Open source feature flagging & A/B testing platform", + + reference: "https://www.growthbook.io/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://www.growthbook.io/pricing" }, multivariateFlags: { + status: "strong", + details: "Multi-value features", + + reference: "https://www.growthbook.io/pricing", }, jsonFlags: { + status: "strong", + details: "JSON feature values", + + reference: "https://www.growthbook.io/pricing", }, flagDependencies: { + status: "partial", + details: "Via targeting conditions", + + reference: "https://www.growthbook.io/pricing", }, scheduledRollouts: { + status: "partial", + details: "Manual scheduling", + + reference: "https://www.growthbook.io/pricing", }, userTargeting: { + status: "strong", + details: "Attribute-based targeting", + + reference: "https://www.growthbook.io/pricing", }, percentageRollouts: { + status: "strong", + details: "Gradual rollouts", + + reference: "https://www.growthbook.io/pricing", }, customSegments: { + status: "strong", + details: "Saved audiences", + + reference: "https://www.growthbook.io/pricing", }, geoTargeting: { + status: "partial", + details: "Via custom attributes", + + reference: "https://www.growthbook.io/pricing", }, contextualTargeting: { + status: "strong", + details: "Custom attribute targeting", + + reference: "https://www.growthbook.io/pricing", }, abTesting: { + status: "strong", + details: "Visual A/B test builder", + + reference: "https://www.growthbook.io/pricing", }, multivariateExperiments: { + status: "strong", + details: "Multi-variant experiments", + + reference: "https://www.growthbook.io/pricing", }, statisticalAnalysis: { + status: "strong", + details: "Bayesian & Frequentist engines", + + reference: "https://www.growthbook.io/pricing", }, metricsTracking: { + status: "strong", + details: "Metrics from data warehouses", + + reference: "https://www.growthbook.io/pricing", }, experimentGoals: { + status: "strong", + details: "Primary & secondary metrics", + + reference: "https://www.growthbook.io/pricing", }, sdkLanguages: { + status: "strong", + details: "15+ languages (JS, Python, Go, Ruby, PHP, etc.)", + + reference: "https://docs.growthbook.io", }, localEvaluation: { + status: "strong", + details: "Edge-optimized evaluation", + + reference: "https://www.growthbook.io/pricing", }, typeSafety: { + status: "strong", + details: "TypeScript support", + + reference: "https://www.growthbook.io/pricing", }, documentation: { + status: "strong", + details: "Good documentation", + + reference: "https://docs.growthbook.io", }, apiQuality: { + status: "strong", + details: "REST API + SDKs", + + reference: "https://docs.growthbook.io", }, rbac: { + status: "strong", + details: "Role-based permissions (Pro)", + + reference: "https://www.growthbook.io/pricing", }, auditLogs: { + status: "strong", + details: "Audit log", + + reference: "https://www.growthbook.io/pricing", }, environments: { + status: "strong", + details: "Multiple environments", + + reference: "https://www.growthbook.io/pricing", }, approvalWorkflows: { + status: "partial", + details: "Via external process", + + reference: "https://www.growthbook.io/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR", + + reference: "https://www.growthbook.io/privacy", }, freeTier: { + status: "strong", + details: "Unlimited (self-hosted), Cloud free tier", + + reference: "https://www.growthbook.io/pricing", }, paidPricing: { + status: "strong", + details: "$20/seat/mo Pro, custom Enterprise", + + reference: "https://www.growthbook.io/pricing", }, openSource: { + status: "strong", + details: "MIT license", + + reference: "https://www.growthbook.io/pricing", }, selfHosted: { + status: "strong", + details: "Docker self-host", + + reference: "https://www.growthbook.io/pricing", }, cloudHosted: { + status: "strong", + details: "Managed cloud", + + reference: "https://www.growthbook.io/pricing", }, analytics: { + status: "strong", + details: "Connects to data warehouses", + + reference: "https://www.growthbook.io/pricing", }, dataWarehouses: { + status: "strong", + details: "Snowflake, BigQuery, Redshift, Mixpanel, GA", + + reference: "https://www.growthbook.io/pricing", }, cicd: { + status: "strong", + details: "API-based automation", + + reference: "https://www.growthbook.io/pricing", }, webhooks: { + status: "strong", + details: "Feature change webhooks", + + reference: "https://www.growthbook.io/pricing", }, }, }; diff --git a/src/data/featureflags/launchdarkly.tsx b/src/data/featureflags/launchdarkly.tsx index b0bc4a9..8213523 100644 --- a/src/data/featureflags/launchdarkly.tsx +++ b/src/data/featureflags/launchdarkly.tsx @@ -27,126 +27,236 @@ export const launchdarkly: Provider = { logo: , website: "https://launchdarkly.com", tagline: { + status: "strong", - details: - "Enterprise-grade feature management platform with advanced targeting", + + details: "Enterprise-grade feature management platform with advanced targeting", + + reference: "https://launchdarkly.com/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://launchdarkly.com/pricing" }, multivariateFlags: { + status: "strong", + details: "String, number, JSON variants", + + reference: "https://launchdarkly.com/pricing", }, jsonFlags: { + status: "strong", + details: "Complex JSON configurations", + + reference: "https://launchdarkly.com/pricing", }, flagDependencies: { + status: "strong", + details: "Prerequisites and dependencies", + + reference: "https://launchdarkly.com/pricing", }, scheduledRollouts: { + status: "strong", + details: "Time-based rollout schedules", + + reference: "https://launchdarkly.com/pricing", }, userTargeting: { + status: "strong", + details: "Individual user & segment targeting", + + reference: "https://launchdarkly.com/pricing", }, percentageRollouts: { + status: "strong", + details: "Gradual rollouts with targeting", + + reference: "https://launchdarkly.com/pricing", }, customSegments: { + status: "strong", + details: "Advanced segment builder with rules", + + reference: "https://launchdarkly.com/pricing", }, geoTargeting: { + status: "strong", + details: "Country, region, city targeting", + + reference: "https://launchdarkly.com/pricing", }, contextualTargeting: { + status: "strong", + details: "Custom context attributes", + + reference: "https://launchdarkly.com/pricing", }, abTesting: { + status: "strong", + details: "Built-in experimentation platform", + + reference: "https://launchdarkly.com/pricing", }, multivariateExperiments: { + status: "strong", + details: "Multi-armed bandit testing", + + reference: "https://launchdarkly.com/pricing", }, statisticalAnalysis: { + status: "strong", + details: "Bayesian statistics engine", + + reference: "https://launchdarkly.com/pricing", }, - metricsTracking: { status: "strong", details: "Custom metrics & events" }, + metricsTracking: { status: "strong", details: "Custom metrics & events", reference: "https://launchdarkly.com/pricing" }, experimentGoals: { + status: "strong", + details: "Primary & secondary goals", + + reference: "https://launchdarkly.com/pricing", }, sdkLanguages: { + status: "strong", + details: "25+ languages (JS, Python, Go, Java, .NET, etc.)", + + reference: "https://docs.launchdarkly.com", }, localEvaluation: { + status: "strong", + details: "Edge evaluation with streaming updates", + + reference: "https://launchdarkly.com/pricing", }, - typeSafety: { status: "strong", details: "TypeScript, strongly typed" }, - documentation: { status: "strong", details: "Comprehensive docs" }, + typeSafety: { status: "strong", details: "TypeScript, strongly typed", reference: "https://launchdarkly.com/pricing" }, + documentation: { status: "strong", details: "Comprehensive docs", reference: "https://docs.launchdarkly.com" }, apiQuality: { + status: "strong", + details: "REST API + GraphQL + SDKs", + + reference: "https://docs.launchdarkly.com", }, rbac: { + status: "strong", + details: "Custom roles & permissions", + + reference: "https://launchdarkly.com/pricing", }, auditLogs: { + status: "strong", + details: "Complete audit trail", + + reference: "https://launchdarkly.com/pricing", }, environments: { + status: "strong", + details: "Unlimited environments", + + reference: "https://launchdarkly.com/pricing", }, approvalWorkflows: { + status: "strong", + details: "Change requests & approvals", + + reference: "https://launchdarkly.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR, HIPAA, FedRAMP", + + reference: "https://launchdarkly.com/policies/privacy", }, freeTier: { + status: "strong", - details: - "Developer: Free, unlimited seats, 5 service connections, 1K client MAUs", + + details: "Developer: Free, unlimited seats, 5 service connections, 1K client MAUs", + + reference: "https://launchdarkly.com/pricing", }, paidPricing: { + status: "strong", + details: "Foundation: $12/service connection + $10/1K client MAU", + + reference: "https://launchdarkly.com/pricing", }, - openSource: { status: "none", details: "Proprietary" }, + openSource: { status: "none", details: "Proprietary", reference: "https://launchdarkly.com/pricing" }, selfHosted: { + status: "partial", + details: "Relay Proxy for on-prem", + + reference: "https://launchdarkly.com/pricing", }, - cloudHosted: { status: "strong", details: "Fully managed SaaS" }, + cloudHosted: { status: "strong", details: "Fully managed SaaS", reference: "https://launchdarkly.com/pricing" }, analytics: { + status: "strong", + details: "DataDog, New Relic, Segment, mParticle", + + reference: "https://launchdarkly.com/pricing", }, dataWarehouses: { + status: "strong", + details: "Snowflake, BigQuery data export", + + reference: "https://launchdarkly.com/pricing", }, cicd: { + status: "strong", + details: "GitHub Actions, GitLab CI, Terraform", + + reference: "https://launchdarkly.com/pricing", }, - webhooks: { status: "strong", details: "Flag change webhooks" }, + webhooks: { status: "strong", details: "Flag change webhooks", reference: "https://launchdarkly.com/pricing" }, }, }; diff --git a/src/data/featureflags/posthog.tsx b/src/data/featureflags/posthog.tsx index 5334f55..75afd32 100644 --- a/src/data/featureflags/posthog.tsx +++ b/src/data/featureflags/posthog.tsx @@ -27,142 +27,278 @@ export const posthog: Provider = { logo: , website: "https://posthog.com", tagline: { + status: "strong", + details: "All-in-one product OS with feature flags built-in", + + reference: "https://posthog.com/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://posthog.com/pricing" }, multivariateFlags: { + status: "strong", + details: "Multivariate flags", + + reference: "https://posthog.com/pricing", }, jsonFlags: { + status: "strong", + details: "JSON payloads", + + reference: "https://posthog.com/pricing", }, flagDependencies: { + status: "partial", + details: "Via property filters", + + reference: "https://posthog.com/pricing", }, scheduledRollouts: { + status: "partial", + details: "Manual scheduling", + + reference: "https://posthog.com/pricing", }, userTargeting: { + status: "strong", + details: "Person & group targeting", + + reference: "https://posthog.com/pricing", }, percentageRollouts: { + status: "strong", + details: "Percentage-based rollouts", + + reference: "https://posthog.com/pricing", }, customSegments: { + status: "strong", + details: "Cohorts & property filters", + + reference: "https://posthog.com/pricing", }, geoTargeting: { + status: "strong", + details: "GeoIP person properties", + + reference: "https://posthog.com/pricing", }, contextualTargeting: { + status: "strong", + details: "Custom properties", + + reference: "https://posthog.com/pricing", }, abTesting: { + status: "strong", + details: "Native experimentation platform", + + reference: "https://posthog.com/pricing", }, multivariateExperiments: { + status: "strong", + details: "Multi-variant experiments", + + reference: "https://posthog.com/pricing", }, statisticalAnalysis: { + status: "strong", + details: "Bayesian & Frequentist stats", + + reference: "https://posthog.com/pricing", }, metricsTracking: { + status: "strong", + details: "Full product analytics built-in", + + reference: "https://posthog.com/pricing", }, experimentGoals: { + status: "strong", + details: "Primary & secondary metrics", + + reference: "https://posthog.com/pricing", }, sdkLanguages: { + status: "strong", + details: "15+ languages (JS, Python, Go, PHP, Ruby, etc.)", + + reference: "https://posthog.com/docs", }, localEvaluation: { + status: "strong", + details: "Local evaluation mode", + + reference: "https://posthog.com/pricing", }, typeSafety: { + status: "strong", + details: "TypeScript support", + + reference: "https://posthog.com/pricing", }, documentation: { + status: "strong", + details: "Great docs & tutorials", + + reference: "https://posthog.com/docs", }, apiQuality: { + status: "strong", + details: "REST API + client SDKs", + + reference: "https://posthog.com/docs", }, rbac: { + status: "strong", + details: "Organizations & permissions", + + reference: "https://posthog.com/pricing", }, auditLogs: { + status: "strong", + details: "Activity log", + + reference: "https://posthog.com/pricing", }, environments: { + status: "strong", + details: "Multiple projects", + + reference: "https://posthog.com/pricing", }, approvalWorkflows: { + status: "none", + details: "Not currently available", + + reference: "https://posthog.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR-compliant", + + reference: "https://posthog.com/privacy", }, freeTier: { + status: "strong", + details: "1M events/mo free", + + reference: "https://posthog.com/pricing", }, paidPricing: { + status: "strong", + details: "Pay-as-you-go: $0.00005/request after 1M", + + reference: "https://posthog.com/pricing", }, openSource: { + status: "strong", + details: "MIT license", + + reference: "https://posthog.com/pricing", }, selfHosted: { + status: "strong", + details: "Docker, Kubernetes self-host", + + reference: "https://posthog.com/pricing", }, cloudHosted: { + status: "strong", + details: "PostHog Cloud (US & EU)", + + reference: "https://posthog.com/pricing", }, analytics: { + status: "strong", + details: "Built-in product analytics", + + reference: "https://posthog.com/pricing", }, dataWarehouses: { + status: "strong", + details: "Snowflake, BigQuery export", + + reference: "https://posthog.com/pricing", }, cicd: { + status: "strong", + details: "API-based, Terraform provider", + + reference: "https://posthog.com/pricing", }, webhooks: { + status: "strong", + details: "Action webhooks", + + reference: "https://posthog.com/pricing", }, }, }; diff --git a/src/data/featureflags/reflag.tsx b/src/data/featureflags/reflag.tsx index a772614..e70423b 100644 --- a/src/data/featureflags/reflag.tsx +++ b/src/data/featureflags/reflag.tsx @@ -54,120 +54,236 @@ export const reflag: Provider = { reference: "https://reflag.com/docs/rollouts", }, userTargeting: { + status: "strong", + details: "User & attribute targeting", + + reference: "https://reflag.com/pricing", }, percentageRollouts: { + status: "strong", + details: "Gradual percentage-based rollouts", + + reference: "https://reflag.com/pricing", }, customSegments: { + status: "strong", + details: "Advanced segment builder", + + reference: "https://reflag.com/pricing", }, geoTargeting: { + status: "strong", + details: "Geographic targeting built-in", + + reference: "https://reflag.com/pricing", }, contextualTargeting: { + status: "strong", + details: "Rich context targeting", + + reference: "https://reflag.com/pricing", }, abTesting: { + status: "strong", + details: "Native A/B testing", + + reference: "https://reflag.com/pricing", }, multivariateExperiments: { + status: "strong", + details: "Multi-variant experiments", + + reference: "https://reflag.com/pricing", }, statisticalAnalysis: { + status: "strong", + details: "Built-in statistical analysis", + + reference: "https://reflag.com/pricing", }, metricsTracking: { + status: "strong", + details: "Custom metrics & goals", + + reference: "https://reflag.com/pricing", }, experimentGoals: { + status: "strong", + details: "Multiple goal tracking", + + reference: "https://reflag.com/pricing", }, sdkLanguages: { + status: "strong", + details: "JavaScript, TypeScript, React, Node.js, Python, Go (expanding)", + + reference: "https://reflag.com/docs", }, localEvaluation: { + status: "strong", + details: "Edge-optimized local evaluation", + + reference: "https://reflag.com/pricing", }, typeSafety: { + status: "strong", + details: "Full TypeScript support, auto-generated types", + + reference: "https://reflag.com/pricing", }, documentation: { + status: "strong", + details: "Comprehensive docs with examples", + + reference: "https://reflag.com/docs", }, apiQuality: { + status: "strong", + details: "Modern REST API + GraphQL + SDKs", + + reference: "https://reflag.com/docs", }, rbac: { + status: "strong", + details: "Granular role-based permissions", + + reference: "https://reflag.com/pricing", }, auditLogs: { + status: "strong", + details: "Complete audit trail", + + reference: "https://reflag.com/pricing", }, environments: { + status: "strong", + details: "Unlimited environments", + + reference: "https://reflag.com/pricing", }, approvalWorkflows: { + status: "strong", + details: "Multi-stage approval workflows", + + reference: "https://reflag.com/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR, CCPA compliant", + + reference: "https://reflag.com/privacy", }, freeTier: { + status: "strong", + details: "Generous free tier for developers", + + reference: "https://reflag.com/pricing", }, paidPricing: { + status: "strong", + details: "Competitive pricing, transparent tiers", + + reference: "https://reflag.com/pricing", }, openSource: { + status: "partial", + details: "Open source SDKs", + + reference: "https://reflag.com/pricing", }, selfHosted: { + status: "strong", + details: "Self-hosted option available", + + reference: "https://reflag.com/pricing", }, cloudHosted: { + status: "strong", + details: "Fully managed cloud", + + reference: "https://reflag.com/pricing", }, analytics: { + status: "strong", + details: "Native integrations with major analytics platforms", + + reference: "https://reflag.com/pricing", }, dataWarehouses: { + status: "strong", + details: "Direct data warehouse connections", + + reference: "https://reflag.com/pricing", }, cicd: { + status: "strong", + details: "GitHub Actions, GitLab CI, API automation", + + reference: "https://reflag.com/pricing", }, webhooks: { + status: "strong", + details: "Real-time webhooks for all events", + + reference: "https://reflag.com/pricing", }, }, }; diff --git a/src/data/featureflags/split.tsx b/src/data/featureflags/split.tsx index a45e4b6..865e957 100644 --- a/src/data/featureflags/split.tsx +++ b/src/data/featureflags/split.tsx @@ -20,142 +20,278 @@ export const split: Provider = { logo: , website: "https://www.split.io", tagline: { + status: "strong", + details: "Feature delivery platform with built-in impact monitoring", + + reference: "https://www.split.io/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://www.split.io/pricing" }, multivariateFlags: { + status: "strong", + details: "Multi-treatment splits", + + reference: "https://www.split.io/pricing", }, jsonFlags: { + status: "strong", + details: "Dynamic configurations", + + reference: "https://www.split.io/pricing", }, flagDependencies: { + status: "strong", + details: "Split dependencies", + + reference: "https://www.split.io/pricing", }, scheduledRollouts: { + status: "strong", + details: "Scheduled rollout plans", + + reference: "https://www.split.io/pricing", }, userTargeting: { + status: "strong", + details: "Targeting rules & allow lists", + + reference: "https://www.split.io/pricing", }, percentageRollouts: { + status: "strong", + details: "Traffic allocation", + + reference: "https://www.split.io/pricing", }, customSegments: { + status: "strong", + details: "Segment definitions", + + reference: "https://www.split.io/pricing", }, geoTargeting: { + status: "strong", + details: "Geo-based targeting", + + reference: "https://www.split.io/pricing", }, contextualTargeting: { + status: "strong", + details: "Attribute-based targeting", + + reference: "https://www.split.io/pricing", }, abTesting: { + status: "strong", + details: "Built-in experimentation", + + reference: "https://www.split.io/pricing", }, multivariateExperiments: { + status: "strong", + details: "Multi-treatment tests", + + reference: "https://www.split.io/pricing", }, statisticalAnalysis: { + status: "strong", + details: "Statistical engine", + + reference: "https://www.split.io/pricing", }, metricsTracking: { + status: "strong", + details: "Impact metrics & tracking", + + reference: "https://www.split.io/pricing", }, experimentGoals: { + status: "strong", + details: "Guardrail & primary metrics", + + reference: "https://www.split.io/pricing", }, sdkLanguages: { + status: "strong", + details: "12+ languages (JS, Java, Python, .NET, Go, etc.)", + + reference: "https://help.split.io/hc/en-us", }, localEvaluation: { + status: "strong", + details: "In-memory evaluation", + + reference: "https://www.split.io/pricing", }, typeSafety: { + status: "strong", + details: "TypeScript definitions", + + reference: "https://www.split.io/pricing", }, documentation: { + status: "strong", + details: "Comprehensive documentation", + + reference: "https://help.split.io/hc/en-us", }, apiQuality: { + status: "strong", + details: "REST API + Admin API", + + reference: "https://help.split.io/hc/en-us", }, rbac: { + status: "strong", + details: "Team-based permissions", + + reference: "https://www.split.io/pricing", }, auditLogs: { + status: "strong", + details: "Complete audit trail", + + reference: "https://www.split.io/pricing", }, environments: { + status: "strong", + details: "Multiple environments", + + reference: "https://www.split.io/pricing", }, approvalWorkflows: { + status: "strong", + details: "Approval workflows", + + reference: "https://www.split.io/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR", + + reference: "https://www.split.io/privacy-policy", }, freeTier: { + status: "partial", + details: "14-day trial, no free tier", + + reference: "https://www.split.io/pricing", }, paidPricing: { + status: "strong", + details: "Custom pricing (Team & Enterprise)", + + reference: "https://www.split.io/pricing", }, openSource: { + status: "none", + details: "Proprietary", + + reference: "https://www.split.io/pricing", }, selfHosted: { + status: "none", + details: "Cloud-only", + + reference: "https://www.split.io/pricing", }, cloudHosted: { + status: "strong", + details: "Fully managed SaaS", + + reference: "https://www.split.io/pricing", }, analytics: { + status: "strong", + details: "DataDog, New Relic, Segment integrations", + + reference: "https://www.split.io/pricing", }, dataWarehouses: { + status: "strong", + details: "Data pipeline to warehouses", + + reference: "https://www.split.io/pricing", }, cicd: { + status: "strong", + details: "CI/CD integrations", + + reference: "https://www.split.io/pricing", }, webhooks: { + status: "strong", + details: "Webhook notifications", + + reference: "https://www.split.io/pricing", }, }, }; diff --git a/src/data/featureflags/unleash.tsx b/src/data/featureflags/unleash.tsx index 214979d..98afbf9 100644 --- a/src/data/featureflags/unleash.tsx +++ b/src/data/featureflags/unleash.tsx @@ -26,142 +26,278 @@ export const unleash: Provider = { logo: , website: "https://www.getunleash.io", tagline: { + status: "strong", + details: "Privacy-first open source feature toggle system", + + reference: "https://www.getunleash.io/pricing", }, features: { - booleanFlags: { status: "strong", details: "Full support" }, + booleanFlags: { status: "strong", details: "Full support", reference: "https://www.getunleash.io/pricing" }, multivariateFlags: { + status: "strong", + details: "Variants with payloads", + + reference: "https://www.getunleash.io/pricing", }, jsonFlags: { + status: "strong", + details: "JSON payloads in variants", + + reference: "https://www.getunleash.io/pricing", }, flagDependencies: { + status: "partial", + details: "Via strategy constraints", + + reference: "https://www.getunleash.io/pricing", }, scheduledRollouts: { + status: "partial", + details: "Via external scheduling", + + reference: "https://www.getunleash.io/pricing", }, userTargeting: { + status: "strong", + details: "User ID targeting", + + reference: "https://www.getunleash.io/pricing", }, percentageRollouts: { + status: "strong", + details: "Gradual rollout strategy", + + reference: "https://www.getunleash.io/pricing", }, customSegments: { + status: "strong", + details: "Constraint-based segments", + + reference: "https://www.getunleash.io/pricing", }, geoTargeting: { + status: "partial", + details: "Via custom constraints", + + reference: "https://www.getunleash.io/pricing", }, contextualTargeting: { + status: "strong", + details: "Context fields & constraints", + + reference: "https://www.getunleash.io/pricing", }, abTesting: { + status: "partial", + details: "Basic via variant weights", + + reference: "https://www.getunleash.io/pricing", }, multivariateExperiments: { + status: "partial", + details: "Variants, no built-in analysis", + + reference: "https://www.getunleash.io/pricing", }, statisticalAnalysis: { + status: "none", + details: "External tools required", + + reference: "https://www.getunleash.io/pricing", }, metricsTracking: { + status: "partial", + details: "Impression data, no analysis", + + reference: "https://www.getunleash.io/pricing", }, experimentGoals: { + status: "none", + details: "Not built-in", + + reference: "https://www.getunleash.io/pricing", }, sdkLanguages: { + status: "strong", + details: "20+ languages (JS, Java, Go, Python, .NET, etc.)", + + reference: "https://docs.getunleash.io", }, localEvaluation: { + status: "strong", + details: "Edge SDK for local eval", + + reference: "https://www.getunleash.io/pricing", }, typeSafety: { + status: "strong", + details: "TypeScript, strongly typed SDKs", + + reference: "https://www.getunleash.io/pricing", }, documentation: { + status: "strong", + details: "Excellent documentation", + + reference: "https://docs.getunleash.io", }, apiQuality: { + status: "strong", + details: "REST API + Admin API", + + reference: "https://docs.getunleash.io", }, rbac: { + status: "strong", + details: "RBAC (Enterprise)", + + reference: "https://www.getunleash.io/pricing", }, auditLogs: { + status: "strong", + details: "Event log & audit trail", + + reference: "https://www.getunleash.io/pricing", }, environments: { + status: "strong", + details: "Projects & environments", + + reference: "https://www.getunleash.io/pricing", }, approvalWorkflows: { + status: "strong", + details: "Change requests (Enterprise)", + + reference: "https://www.getunleash.io/pricing", }, compliance: { + status: "strong", + details: "SOC 2, GDPR-ready", + + reference: "https://www.getunleash.io/privacy-policy", }, freeTier: { + status: "strong", + details: "Open source (unlimited), Pro free tier", + + reference: "https://www.getunleash.io/pricing", }, paidPricing: { + status: "strong", + details: "Pay-as-you-go: $75/seat/mo, 53M API requests (Cloud)", + + reference: "https://www.getunleash.io/pricing", }, openSource: { + status: "strong", + details: "Apache 2.0", + + reference: "https://www.getunleash.io/pricing", }, selfHosted: { + status: "strong", + details: "Docker, Kubernetes, full self-host", + + reference: "https://www.getunleash.io/pricing", }, cloudHosted: { + status: "strong", + details: "Managed cloud available", + + reference: "https://www.getunleash.io/pricing", }, analytics: { + status: "partial", + details: "Webhook-based integrations", + + reference: "https://www.getunleash.io/pricing", }, dataWarehouses: { + status: "partial", + details: "Event export via webhooks", + + reference: "https://www.getunleash.io/pricing", }, cicd: { + status: "strong", + details: "API-driven, GitHub Actions", + + reference: "https://www.getunleash.io/pricing", }, webhooks: { + status: "strong", + details: "Event webhooks", + + reference: "https://www.getunleash.io/pricing", }, }, };