···2626 }
2727 };
28282929+ // Helper function to add UTM parameters to links
3030+ const addUtmParams = (url, source = "term_definition") => {
3131+ // Check if URL already has parameters
3232+ const hasParams = url.includes('?');
3333+ const connector = hasParams ? '&' : '?';
3434+3535+ // Add UTM parameters
3636+ return `${url}${connector}utm_source=cred.blue&utm_medium=methodology&utm_campaign=${source}`;
3737+ };
3838+2939 // Definitions data with added links
3040 const definitions = [
3141 {
3242 id: "pds",
3343 term: "Personal Data Server (PDS)",
3444 definition: "A server that hosts your AT Protocol data and content. You can use Bluesky's PDS hosting or choose a third-party PDS host for more control over your data. By default, new Bluesky accounts use Bluesky's PDS hosting, so the vast majority of accounts right now do not use a third-party PDS. Having a third-party PDS host contributes to the further decentralization of the network, but it is currently difficult to do.",
3535- learnMoreLink: "https://atproto.com/guides/pds"
4545+ learnMoreLink: "https://atproto.com/guides/self-hosting"
3646 },
3747 {
4848+ id: "bsky-mushroom",
4949+ term: "Bluesky Mushroom",
5050+ definition: "All of Bluesky's PDS hosting servers are named after various types of mushrooms. If your account is on a Bluesky Mushroom, that means you are entrusting Bluesky with holding your data for you. To see a full list of the Bluesky Mushrooms, use the learn more link below.",
5151+ learnMoreLink: "https://bsky-debug.app/"
5252+ },
5353+ {
3854 id: "did",
3955 term: "DID",
4056 definition: "The AT Protocol uses Decentralized Identifiers (DIDs) as persistent, long-term account identifiers. DID is a W3C standard, with many standardized and proposed DID method implementations. There are currently two methods supported by the protocol: did:plc and did:web. New Bluesky accounts use the did:plc method.",
···4258 },
4359 {
4460 id: "lexicon",
4545- term: "Lexicon",
4646- definition: "The schema system used by the AT Protocol to define data structures. Lexicons are kind of like a file formats, and different AT Protocol apps can choose which of these file formats to support. Apps can have their own unique file formats as well. Third-party lexicons allow for custom features and extensions to the protocol.",
6161+ term: "Lexicon/Collection",
6262+ definition: "The schema system used by the AT Protocol to define data structures. Lexicons are kind of like a file formats, and different AT Protocol apps can choose which of these file formats to support. Apps can have their own unique file formats as well. Third-party lexicons allow for custom features and extensions to the protocol. Lexicons are written in JSON and are sometimes referred to as collections.",
4763 learnMoreLink: "https://atproto.com/guides/lexicon"
4864 },
4965 {
5066 id: "rotation-key",
5167 term: "Rotation Key",
5252- definition: "A security feature that allows you to recover your account if your primary credentials are compromised.",
5353- learnMoreLink: "https://bsky.app/profile/mattyoukhana.xyz/post/3ke5j53mxwt2o"
6868+ definition: "A security key that allows you to recover your account if your primary credentials are compromised.",
6969+ learnMoreLink: "https://atproto.com/guides/account-migration#updating-identity"
5470 },
5571 {
7272+ id: "bluesky-eras",
7373+ term: "Bluesky Eras",
7474+ 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)",
7575+ learnMoreLink: "https://atproto.com/guides/account-migration#updating-identity"
7676+ },
7777+ {
5678 id: "alt-text",
5779 term: "Alt Text",
5880 definition: "Text descriptions added to images that make content accessible to users with visual impairments or when images fail to load.",
5959- learnMoreLink: "https://help.bsky.app/en/articles/8754485-how-do-i-add-alt-text-to-my-images"
8181+ learnMoreLink: "https://accessibility.huit.harvard.edu/describe-content-images"
6082 },
6183 {
6284 id: "social-graph",
6385 term: "Social Graph",
6486 definition: "The network of connections between accounts, including followers, following, and engagement patterns.",
6565- learnMoreLink: "https://atproto.com/lexicons/app-bsky-graph"
8787+ learnMoreLink: "https://en.wikipedia.org/wiki/Social_graph"
6688 },
6789 {
6890 id: "labelers",
6991 term: "Labelers",
7092 definition: "Entities that can apply labels to content on Bluesky for moderation purposes. Users can choose which labelers they trust.",
7171- learnMoreLink: "https://bsky.social/about/blog/5-22-24-content-labeling-moderation"
9393+ learnMoreLink: "https://docs.bsky.app/docs/advanced-guides/moderation"
7294 },
7395 {
7496 id: "engagement-rate",
7597 term: "Engagement Rate",
7698 definition: "A metric that measures how much interaction your content receives relative to your audience size.",
7777- learnMoreLink: "https://cred.blue/methodology"
7899 }
79100 ];
80101···197218 {status.learnMoreLink && (
198219 <div className="learn-more-link">
199220 <a
200200- href={status.learnMoreLink}
221221+ href={addUtmParams(status.learnMoreLink, `social_status_${status.id}`)}
201222 target="_blank"
202223 rel="noopener noreferrer"
203224 >
···234255 {item.learnMoreLink && (
235256 <div className="learn-more-link">
236257 <a
237237- href={item.learnMoreLink}
258258+ href={addUtmParams(item.learnMoreLink, `term_${item.id}`)}
238259 target="_blank"
239260 rel="noopener noreferrer"
240261 >