diff --git a/app/llms-full.txt/route.ts b/app/llms-full.txt/route.ts index 546f478..a957e4b 100644 --- a/app/llms-full.txt/route.ts +++ b/app/llms-full.txt/route.ts @@ -230,7 +230,7 @@ ${CONTACT_HEADLINE.join(" ")} ${CONTACT_LEAD} -Email ${EMAIL} · GitHub ${links.github} · X ${links.x} · LinkedIn ${links.linkedin} +Email ${EMAIL} · GitHub ${links.github} · X ${links.x} · LinkedIn ${links.linkedin} · Discord ${links.discord} ## Field notes diff --git a/components/site/Contact.tsx b/components/site/Contact.tsx index 9f564ef..10295c0 100644 --- a/components/site/Contact.tsx +++ b/components/site/Contact.tsx @@ -11,8 +11,8 @@ import { FleetStatus } from "@/components/site/FleetStatus"; // shrink-0 keeps the box from compressing in the inline-flex link. The // envelope is an original geometric glyph; the X and LinkedIn glyphs are from // Simple Icons (CC0 / public domain) — the marks are trademarks of their -// owners, shown nominatively as links to our own profiles. The GitHub glyph is -// likewise from Simple Icons (CC0 / public domain). +// owners, shown nominatively as links to our own profiles. The GitHub and +// Discord glyphs are likewise from Simple Icons (CC0 / public domain). const iconClass = "size-[1.05em] shrink-0"; function MailIcon() { @@ -57,6 +57,19 @@ function GitHubIcon() { ); } +function DiscordIcon() { + return ( + + + + ); +} + function XIcon() { return ( + + + discord + + → + + diff --git a/docs/docs.json b/docs/docs.json index b777a52..8cd5c23 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -35,7 +35,8 @@ "sameAs": [ "https://github.com/decdn", "https://x.com/decdn_", - "https://www.linkedin.com/company/decdn" + "https://www.linkedin.com/company/decdn", + "https://discord.gg/vVbNswKVGX" ] } }, @@ -96,7 +97,8 @@ "website": "https://decdn.org", "github": "https://github.com/decdn", "x": "https://x.com/decdn_", - "linkedin": "https://www.linkedin.com/company/decdn" + "linkedin": "https://www.linkedin.com/company/decdn", + "discord": "https://discord.gg/vVbNswKVGX" }, "links": [ { diff --git a/lib/links.ts b/lib/links.ts index 1b595b8..d1a29c6 100644 --- a/lib/links.ts +++ b/lib/links.ts @@ -5,6 +5,7 @@ export const links = { github: "https://github.com/decdn", x: "https://x.com/decdn_", linkedin: "https://www.linkedin.com/company/decdn", + discord: "https://discord.gg/vVbNswKVGX", litepaper: "/decdn_litepaper.pdf", presskit: "/presskit/decdn-presskit.zip", docs: "https://docs.decdn.org/overview/introduction", diff --git a/lib/schema.test.ts b/lib/schema.test.ts index 12ad171..315397a 100644 --- a/lib/schema.test.ts +++ b/lib/schema.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "vitest"; import { blogPostingNode, listPosts, postImageUrl } from "./blog"; import { FAQ_ITEMS } from "./faq"; import { getLegalDoc, LEGAL_SLUGS } from "./legal"; -import { EMAIL, ORG_ID, SERVICE_ID, SITE_ID } from "./links"; +import { EMAIL, links, ORG_ID, SERVICE_ID, SITE_ID } from "./links"; import { blogNode, breadcrumbNode, @@ -25,6 +25,15 @@ describe("site-level @ids", () => { expect(faqPageNode["@id"]).toBe("https://decdn.org/#faq"); }); + it("lists every social profile as sameAs", () => { + expect(organizationNode.sameAs).toEqual([ + links.github, + links.x, + links.linkedin, + links.discord, + ]); + }); + it("builds each node from the shared constant", () => { expect(organizationNode["@id"]).toBe(ORG_ID); expect(websiteNode["@id"]).toBe(SITE_ID); diff --git a/lib/schema.ts b/lib/schema.ts index 8357428..7c1ae32 100644 --- a/lib/schema.ts +++ b/lib/schema.ts @@ -37,7 +37,7 @@ export const organizationNode: Schema<"Organization"> = { description: "Organization developing deCDN, a decentralized content delivery network with per-megabyte settlement in USDC.", email: EMAIL, - sameAs: [links.github, links.x, links.linkedin], + sameAs: [links.github, links.x, links.linkedin, links.discord], }; export const websiteNode: Schema<"WebSite"> = {