diff --git a/src/App.jsx b/src/App.jsx
index ccbf355..87043ea 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -9,6 +9,7 @@ import Home from './components/Home/Home';
import Leaderboard from './components/Leaderboard/Leaderboard';
import Supporter from './components/Supporter/Supporter';
import Shortcut from './components/Shortcut/Shortcut';
+import Resources from './components/Resources/Resources';
import ScoringMethodology from './components/ScoringMethodology/ScoringMethodology';
import Terms from './components/PrivacyTerms/Terms';
import Privacy from './components/PrivacyTerms/Privacy';
@@ -37,6 +38,7 @@ const App = () => {
} />
} />
} />
+ } />
} />
} />
} />
diff --git a/src/accountData.js b/src/accountData.js
index 4bedff0..7e8871c 100644
--- a/src/accountData.js
+++ b/src/accountData.js
@@ -488,45 +488,48 @@ function calculateEngagementMetrics(engagementsReceived = {}, onlyPosts = 0, fol
}
function calculateSocialStatus({ ageInDays = 0, followersCount = 0, followsCount = 0, engagementRate = 0 }) {
- // Define engagement thresholds
- const ENGAGEMENT_THRESHOLDS = {
- high: 0.03, // 3%
- moderate: 0.01, // 1%
- low: 0.005 // 0.5%
- };
-
- // Calculate follow percentage
- const followPercentage = followersCount > 0 ? followsCount / followersCount : 0;
-
- // Determine base status
- let baseStatus = "Explorer";
+ // Define the minimum engagement rate threshold for advancing to higher tiers
+ const MIN_ENGAGEMENT_RATE = 0.01; // 1%
- // Check for Newcomer first
+ // Check for Newcomer first (less than 30 days old)
if (ageInDays < 30) {
- baseStatus = "Newcomer";
+ return "Newcomer";
}
- // Only check other statuses if not a newcomer
- else if (followPercentage < 0.5) {
- if (followersCount >= 100000) {
- baseStatus = "Leader";
- } else if (followersCount >= 10000) {
- baseStatus = "Guide";
- } else if (followersCount >= 1000) {
- baseStatus = "Pathfinder";
+
+ // Default status for accounts older than 30 days
+ let status = "Explorer";
+
+ // Check follower counts and engagement rate for higher tiers
+ if (followersCount >= 100000) {
+ if (engagementRate >= MIN_ENGAGEMENT_RATE) {
+ status = "Leader";
+ } else {
+ // Fallback to Guide if engagement requirement not met
+ status = "Guide";
}
+ } else if (followersCount >= 10000) {
+ if (engagementRate >= MIN_ENGAGEMENT_RATE) {
+ status = "Guide";
+ } else {
+ // Fallback to Pathfinder if engagement requirement not met
+ status = "Pathfinder";
+ }
+ } else if (followersCount >= 1000) {
+ if (engagementRate >= MIN_ENGAGEMENT_RATE) {
+ status = "Pathfinder";
+ }
+ // Fallback to Explorer if engagement requirement not met
}
-
- // Add engagement qualifier for all status levels
- if (engagementRate <= ENGAGEMENT_THRESHOLDS.low) {
- return `${baseStatus}`;
- } else if (engagementRate <= ENGAGEMENT_THRESHOLDS.moderate) {
- return `Engaging ${baseStatus}`;
- } else if (engagementRate >= ENGAGEMENT_THRESHOLDS.high) {
- return `Highly Engaging ${baseStatus}`;
+
+ // Add engagement qualifier based on rate
+ if (engagementRate > 0.03) { // 3%
+ return `Highly Engaging ${status}`;
+ } else if (engagementRate > 0.01) { // 1%
+ return `Engaging ${status}`;
}
-
- // Return base status if engagement doesn't meet any threshold
- return baseStatus;
+
+ // Return base status
+ return status;
}
function calculateActivityStatus(rate) {
diff --git a/src/components/Navbar/Navbar.js b/src/components/Navbar/Navbar.js
index f1e0418..b5cbc2d 100644
--- a/src/components/Navbar/Navbar.js
+++ b/src/components/Navbar/Navbar.js
@@ -26,6 +26,7 @@ const Navbar = () => {
score
compare
leaderboard
+ resources
alt text
about
diff --git a/src/components/Resources/Resources.css b/src/components/Resources/Resources.css
new file mode 100644
index 0000000..3b366f9
--- /dev/null
+++ b/src/components/Resources/Resources.css
@@ -0,0 +1,271 @@
+/* src/components/Resources/Resources.css */
+
+.resources-page {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 20px;
+ font-family: sans-serif;
+}
+
+.resources-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-bottom: 20px;
+}
+
+.resources-title h1 {
+ font-size: 2rem;
+ margin-bottom: 8px;
+ color: #0066cc;
+}
+
+.resources-title p {
+ font-size: 1rem;
+ color: #666;
+ margin: 0;
+}
+
+.share-button-container {
+ margin-left: 20px;
+}
+
+.share-button {
+ background-color: #0066cc;
+ color: white;
+ padding: 10px 16px;
+ border: none;
+ border-radius: 20px;
+ font-size: 0.9rem;
+ font-weight: 600;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ transition: background-color 0.3s ease;
+}
+
+.share-button:hover {
+ background-color: #0055aa;
+}
+
+.resources-disclaimer {
+ background-color: #f8f9fa;
+ border-left: 4px solid #ffd700;
+ padding: 12px 16px;
+ margin-bottom: 24px;
+ border-radius: 4px;
+}
+
+.resources-disclaimer p {
+ margin: 0;
+ font-size: 0.9rem;
+ color: #555;
+}
+
+.resources-filters {
+ margin-bottom: 30px;
+}
+
+.search-container {
+ margin-bottom: 16px;
+}
+
+.search-input {
+ width: 100%;
+ padding: 12px 16px;
+ font-size: 1rem;
+ border: 1px solid #ddd;
+ border-radius: 8px;
+ box-sizing: border-box;
+}
+
+.filter-options {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 12px;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.category-filters {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 8px;
+}
+
+.category-filter {
+ background-color: #f0f0f0;
+ border: none;
+ padding: 8px 16px;
+ border-radius: 16px;
+ font-size: 0.9rem;
+ cursor: pointer;
+ transition: all 0.2s ease;
+}
+
+.category-filter:hover {
+ background-color: #e0e0e0;
+}
+
+.category-filter.active {
+ background-color: #0066cc;
+ color: white;
+}
+
+.quality-select {
+ padding: 8px 16px;
+ border: 1px solid #ddd;
+ border-radius: 8px;
+ font-size: 0.9rem;
+}
+
+.featured-section,
+.all-resources-section {
+ margin-bottom: 40px;
+}
+
+.featured-section h2,
+.all-resources-section h2 {
+ font-size: 1.5rem;
+ margin-bottom: 16px;
+ color: #333;
+ border-bottom: 2px solid #eee;
+ padding-bottom: 8px;
+}
+
+.resources-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
+ gap: 20px;
+}
+
+.resource-card {
+ border: 1px solid #eee;
+ border-radius: 8px;
+ overflow: hidden;
+ transition: transform 0.2s ease, box-shadow 0.2s ease;
+ text-decoration: none;
+ color: inherit;
+ background-color: white;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+}
+
+.resource-card:hover {
+ transform: translateY(-4px);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);
+}
+
+.resource-content {
+ padding: 16px;
+ flex-grow: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.resource-name {
+ font-size: 1.1rem;
+ margin: 0 0 8px 0;
+ color: #0066cc;
+}
+
+.resource-description {
+ font-size: 0.9rem;
+ color: #555;
+ margin: 0 0 16px 0;
+ flex-grow: 1;
+}
+
+.resource-meta {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ margin-top: auto;
+}
+
+.resource-category {
+ font-size: 0.8rem;
+ background-color: #f0f0f0;
+ padding: 4px 8px;
+ border-radius: 4px;
+ color: #666;
+}
+
+.resource-quality {
+ display: flex;
+}
+
+.quality-star {
+ font-size: 0.9rem;
+ margin-left: 2px;
+}
+
+.quality-star.filled {
+ color: #ffd700;
+}
+
+.quality-star.empty {
+ color: #ddd;
+}
+
+.no-results {
+ text-align: center;
+ padding: 40px;
+ color: #666;
+}
+
+/* Resource Loader */
+.resource-loader {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ padding: 40px;
+ text-align: center;
+}
+
+.loader-spinner {
+ border: 4px solid rgba(0, 0, 0, 0.1);
+ border-left-color: #0066cc;
+ border-radius: 50%;
+ width: 40px;
+ height: 40px;
+ animation: spin 1s linear infinite;
+ margin-bottom: 16px;
+}
+
+@keyframes spin {
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
+}
+
+/* Responsive adjustments */
+@media (max-width: 768px) {
+ .resources-header {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+
+ .share-button-container {
+ margin: 16px 0 0 0;
+ }
+
+ .filter-options {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+
+ .quality-filter {
+ width: 100%;
+ margin-top: 12px;
+ }
+
+ .quality-select {
+ width: 100%;
+ }
+
+ .resources-grid {
+ grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
+ }
+}
\ No newline at end of file
diff --git a/src/components/Resources/Resources.js b/src/components/Resources/Resources.js
new file mode 100644
index 0000000..f27bae8
--- /dev/null
+++ b/src/components/Resources/Resources.js
@@ -0,0 +1,488 @@
+// src/components/Resources/Resources.jsx
+import React, { useState, useEffect, useMemo } from 'react';
+import './Resources.css';
+import { Link } from 'react-router-dom';
+import ResourceLoader from './ResourceLoader';
+
+const Resources = () => {
+ // State management
+ const [activeCategory, setActiveCategory] = useState('All');
+ const [searchQuery, setSearchQuery] = useState('');
+ const [qualityFilter, setQualityFilter] = useState('All');
+ const [isLoading, setIsLoading] = useState(true);
+
+ // Resources data structure
+ const resourcesData = [
+ // Analytics & Metrics - Personal Stats
+ {
+ name: "Alt Text Rating Tool",
+ url: "https://dame.is/ratingalttext",
+ category: "Analytics",
+ subcategory: "Personal Stats",
+ description: "Check how consistently you use alt text",
+ quality: 5,
+ featured: true
+ },
+ {
+ name: "Skeet Reviewer",
+ url: "https://reviewer.skeet.tools",
+ category: "Analytics",
+ subcategory: "Personal Stats",
+ description: "Use the KonMari method to sort through your old posts",
+ quality: 5,
+ featured: true
+ },
+ {
+ name: "Venn Diagram",
+ url: "https://venn.aviva.gay/dame.bsky.social",
+ category: "Analytics",
+ subcategory: "Personal Stats",
+ description: "Visualize your social graph",
+ quality: 4,
+ featured: false
+ },
+ {
+ name: "SkyZoo",
+ url: "https://skyzoo.blue/",
+ category: "Analytics",
+ subcategory: "Personal Stats",
+ description: "Profile metrics and fun stats",
+ quality: 4,
+ featured: false
+ },
+ {
+ name: "SkyKit",
+ url: "http://skykit.blue",
+ category: "Analytics",
+ subcategory: "Personal Stats",
+ description: "Bluesky analytics",
+ quality: 4,
+ featured: true
+ },
+
+ // Analytics & Metrics - Platform Stats
+ {
+ name: "Bcounter",
+ url: "http://bcounter.nat.vg",
+ category: "Analytics",
+ subcategory: "Platform Stats",
+ description: "Realtime user growth dashboard",
+ quality: 4,
+ featured: false
+ },
+ {
+ name: "Emojistats",
+ url: "https://emojistats.bsky.sh",
+ category: "Analytics",
+ subcategory: "Platform Stats",
+ description: "Real-time emoji usage data",
+ quality: 3,
+ featured: false
+ },
+
+ // Services & AppViews
+ {
+ name: "Mutesky",
+ url: "https://mutesky.app/",
+ category: "Services",
+ subcategory: "AppViews",
+ description: "Manage your muted words in bulk",
+ quality: 4,
+ featured: false
+ },
+ {
+ name: "Frontpage",
+ url: "https://frontpage.fyi",
+ category: "Services",
+ subcategory: "AppViews",
+ description: "Decentralized link aggregator",
+ quality: 5,
+ featured: true
+ },
+ {
+ name: "Graze",
+ url: "https://www.graze.social/",
+ category: "Feeds",
+ subcategory: "Feed Tools",
+ description: "No-Code feed creator",
+ quality: 5,
+ featured: true
+ },
+
+ // Data Management
+ {
+ name: "Bulk Thread Gating",
+ url: "https://boat.kelinci.net/bsky-threadgate-applicator",
+ category: "Data",
+ subcategory: "Management",
+ description: "Bulk retroactive thread gating",
+ quality: 3,
+ featured: false
+ },
+ {
+ name: "SkySweeper",
+ url: "https://skysweeper.p8.lu",
+ category: "Data",
+ subcategory: "Management",
+ description: "Auto-delete old skeets",
+ quality: 4,
+ featured: false
+ },
+
+ // Network Management
+ {
+ name: "Network Analyzer",
+ url: "http://bsky-follow-finder.theo.io",
+ category: "Network",
+ subcategory: "Management",
+ description: "Find and analyze your network connections",
+ quality: 4,
+ featured: true
+ },
+ {
+ name: "Gentle Unfollow",
+ url: "https://bsky.cam.fyi/unfollow",
+ category: "Network",
+ subcategory: "Management",
+ description: "Track and manage who you're following",
+ quality: 4,
+ featured: true
+ },
+
+ // Alternative Clients
+ {
+ name: "deck.blue",
+ url: "http://deck.blue",
+ category: "Clients",
+ subcategory: "Alternative",
+ description: "TweetDeck for Bluesky",
+ quality: 4,
+ featured: false
+ },
+ {
+ name: "Graysky",
+ url: "https://graysky.app",
+ category: "Clients",
+ subcategory: "Alternative",
+ description: "Alternative mobile client",
+ quality: 5,
+ featured: false
+ },
+
+ // Labelers & Moderation
+ {
+ name: "US Politics Labeler",
+ url: "https://bsky.app/profile/uspol.bluesky.bot",
+ category: "Moderation",
+ subcategory: "Labelers",
+ description: "Labels political content",
+ quality: 4,
+ featured: true
+ },
+ {
+ name: "Pronouns Labeler",
+ url: "https://bsky.app/profile/pronouns.adorable.mom",
+ category: "Moderation",
+ subcategory: "Labelers",
+ description: "Adds pronoun information to profiles",
+ quality: 4,
+ featured: true
+ },
+
+ // Feeds & Discovery
+ {
+ name: "Quiet Posters",
+ url: "https://bsky.app/profile/did:plc:vpkhqolt662uhesyj6nxm7ys/feed/infreq",
+ category: "Feeds",
+ subcategory: "Discovery",
+ description: "Feed of less frequent posters",
+ quality: 3,
+ featured: false
+ },
+
+ // Visualizations
+ {
+ name: "Bluesky by the Second",
+ url: "https://sky.flikq.dev",
+ category: "Visualizations",
+ subcategory: "Firehose",
+ description: "Live visualization of the firehose",
+ quality: 3,
+ featured: false
+ },
+ {
+ name: "Final Words",
+ url: "https://deletions.bsky.bad-example.com",
+ category: "Visualizations",
+ subcategory: "Firehose",
+ description: "Glimpses of deleted posts",
+ quality: 3,
+ featured: true
+ },
+
+ // Developer Tools
+ {
+ name: "pdsls.dev",
+ url: "https://pdsls.dev/",
+ category: "Development",
+ subcategory: "Tools",
+ description: "Browse AtProto repositories",
+ quality: 5,
+ featured: true
+ },
+ {
+ name: "sdk.blue",
+ url: "http://sdk.blue",
+ category: "Development",
+ subcategory: "Tools",
+ description: "Libraries & SDKs for the AT Protocol",
+ quality: 4,
+ featured: false
+ },
+
+ // Guides & Documentation
+ {
+ name: "Verify Your Account",
+ url: "https://bsky.social/about/blog/4-28-2023-domain-handle-tutorial",
+ category: "Guides",
+ subcategory: "Documentation",
+ description: "How to verify your Bluesky account",
+ quality: 4,
+ featured: false
+ },
+ {
+ name: "Complete Guide to Bluesky",
+ url: "https://mackuba.eu/2024/02/21/bluesky-guide/",
+ category: "Guides",
+ subcategory: "Documentation",
+ description: "Comprehensive Bluesky guide",
+ quality: 5,
+ featured: false
+ },
+
+ // Miscellaneous
+ {
+ name: "Thread Composer",
+ url: "https://bluesky-thread-composer.pages.dev",
+ category: "Misc",
+ subcategory: "Tools",
+ description: "Create and organize threads",
+ quality: 3,
+ featured: false
+ },
+ {
+ name: "Skyview",
+ url: "https://skyview.social",
+ category: "Misc",
+ subcategory: "Tools",
+ description: "Share threads with people without an account",
+ quality: 4,
+ featured: false
+ },
+ {
+ name: "down.blue",
+ url: "https://down.blue",
+ category: "Misc",
+ subcategory: "Tools",
+ description: "Video downloader",
+ quality: 3,
+ featured: false
+ }
+ ];
+
+ // Add UTM parameters to all URLs
+ const resourcesWithUTM = resourcesData.map(resource => ({
+ ...resource,
+ url: `${resource.url}${resource.url.includes('?') ? '&' : '?'}utm_source=cred.blue&utm_medium=resources&utm_campaign=tools_directory`
+ }));
+
+ // Function to share the resources page on Bluesky
+ const shareOnBluesky = () => {
+ const shareText = `Check out this collection of Bluesky tools and resources from cred.blue! 🔧🦋\n\nFind analytics, feeds, alternative clients, and much more to enhance your Bluesky experience.\n\nExplore the tools: https://cred.blue/resources`;
+
+ window.open(
+ `https://bsky.app/intent/compose?text=${encodeURIComponent(shareText)}`,
+ '_blank'
+ );
+ };
+
+ // Get all categories
+ const categories = ['All', ...new Set(resourcesWithUTM.map(item => item.category))];
+
+ // Filter resources based on active category, search query, and quality filter
+ const filteredResources = useMemo(() => {
+ return resourcesWithUTM.filter(resource => {
+ // Filter by category
+ const categoryMatch = activeCategory === 'All' || resource.category === activeCategory;
+
+ // Filter by search query
+ const searchMatch =
+ resource.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
+ resource.description.toLowerCase().includes(searchQuery.toLowerCase());
+
+ // Filter by quality
+ const qualityMatch =
+ qualityFilter === 'All' ||
+ (qualityFilter === 'High' && resource.quality >= 4) ||
+ (qualityFilter === 'Medium' && resource.quality === 3) ||
+ (qualityFilter === 'Low' && resource.quality <= 2);
+
+ return categoryMatch && searchMatch && qualityMatch;
+ });
+ }, [resourcesWithUTM, activeCategory, searchQuery, qualityFilter]);
+
+ // Get featured resources
+ const featuredResources = useMemo(() => {
+ return resourcesWithUTM.filter(resource => resource.featured);
+ }, [resourcesWithUTM]);
+
+ // Simulate loading data
+ useEffect(() => {
+ // Simulate API fetch with a timeout
+ const loadTimer = setTimeout(() => {
+ setIsLoading(false);
+ }, 800);
+
+ return () => clearTimeout(loadTimer);
+ }, []);
+
+ return (
+ <>
+
+
+
+
Bluesky Resources
+
A curated collection of third-party tools, services, and guides for the Bluesky ecosystem
+
+
+
+
+ Share This Page
+
+
+
+
+
+
Disclaimer: These resources are third-party tools and services not affiliated with cred.blue or Bluesky.
+ Use them at your own risk and exercise caution when providing access to your data.
+
+
+ {isLoading ? (
+
+ ) : (
+ <>
+
+
+ setSearchQuery(e.target.value)}
+ className="search-input"
+ />
+
+
+
+
+ {categories.map(category => (
+ setActiveCategory(category)}
+ >
+ {category}
+
+ ))}
+
+
+
+ setQualityFilter(e.target.value)}
+ className="quality-select"
+ >
+ All Quality Levels
+ High Quality
+ Medium Quality
+ Low Quality
+
+
+
+
+
+ {featuredResources.length > 0 && (
+
+
Featured Resources
+
+ {featuredResources.map((resource, index) => (
+
+ ))}
+
+
+ )}
+
+
+
{activeCategory === 'All' ? 'All Resources' : activeCategory}
+ {filteredResources.length > 0 ? (
+
+ {filteredResources.map((resource, index) => (
+
+ ))}
+
+ ) : (
+
+
No resources found matching your filters.
+
+ )}
+
+ >
+ )}
+
+ >
+ );
+};
+
+// ResourceCard component for displaying individual resources
+const ResourceCard = ({ resource }) => {
+ // Function to render stars based on quality rating
+ const renderQualityStars = (quality) => {
+ const stars = [];
+ for (let i = 1; i <= 5; i++) {
+ stars.push(
+
+ ★
+
+ );
+ }
+ return stars;
+ };
+
+ return (
+
+
+
{resource.name}
+
{resource.description}
+
+
{resource.category}
+
+ {renderQualityStars(resource.quality)}
+
+
+
+
+ );
+};
+
+export default Resources;
\ No newline at end of file
diff --git a/src/components/ScoringMethodology/ScoringMethodology.js b/src/components/ScoringMethodology/ScoringMethodology.js
index 6fc0e51..aac675d 100644
--- a/src/components/ScoringMethodology/ScoringMethodology.js
+++ b/src/components/ScoringMethodology/ScoringMethodology.js
@@ -71,7 +71,7 @@ const ScoringMethodology = () => {
{
id: "bluesky-eras",
term: "Bluesky Eras",
- definition: "Ever since Bluesky was first incubated from within Twitter in 2019, it has been through numerous different defining eras. Each of these eras has had distinct qualities and even cultures. The main eras are as follows: 1. pre-history (early staff, advisors, friends), 2. invite-only (with the introduction of the invite system), 3. public release (anyone could create an account)",
+ definition: "Ever since Bluesky was first incubated from within Twitter in 2019, it has been through numerous different defining eras. Each of these eras has had distinct qualities and even cultures. The main eras are as follows: 1. pre-history (staff, advisors, friends), 2. invite-only (the introduction of the invite system), 3. public release (anyone could create an account)",
learnMoreLink: "https://atproto.com/guides/account-migration#updating-identity"
},
{
@@ -105,31 +105,26 @@ const ScoringMethodology = () => {
id: "newcomer",
name: "Newcomer",
description: "Accounts that are new to Bluesky or have minimal activity. These users are just getting started on the platform and beginning to build their presence. After 30 days, Newcomers become Explorers.",
- learnMoreLink: "https://cred.blue/social-status/newcomer"
},
{
id: "explorer",
name: "Explorer",
description: "Users who are actively engaging with the platform, discovering features, and building their initial network. They have established a basic presence but are still growing their connections and potentially finding their community.",
- learnMoreLink: "https://cred.blue/social-status/explorer"
},
{
id: "pathfinder",
name: "Pathfinder",
description: "Established users who have developed a consistent presence and are actively contributing to conversations. These accounts have a growing influence (1,000+ followers) and solid engagement within their communities.",
- learnMoreLink: "https://cred.blue/social-status/pathfinder"
},
{
id: "guide",
name: "Guide",
description: "Well-established users who have significant influence within specific communities (10,000+ followers). They often create valuable content and maintain strong engagement with their followers.",
- learnMoreLink: "https://cred.blue/social-status/guide"
},
{
id: "leader",
name: "Leader",
description: "Highly influential accounts with substantial followings (100,000+) and engagement. These users have a broad impact across multiple communities and consistently contribute high-value content to the platform.",
- learnMoreLink: "https://cred.blue/social-status/leader"
}
];