diff --git a/.changeset/socials-and-nav-links.md b/.changeset/socials-and-nav-links.md
new file mode 100644
index 00000000..2abdae68
--- /dev/null
+++ b/.changeset/socials-and-nav-links.md
@@ -0,0 +1,10 @@
+---
+"@inkeep/open-knowledge": patch
+---
+
+Refresh social links and resource navigation across the app and docs site:
+
+- The editor's Resources popover drops the standalone "Website" row and adds an "Open Knowledge" entry (brand logo, desaturated to sit with the monochrome icons and regaining color on hover) as the last item.
+- The docs site nav gains brand icons for GitHub and Discord, with X rendered icon-only (its label preserved as the accessible name).
+- Social links now point at the Open Knowledge handle (`x.com/OpenKnowledgeAI`) and the project Discord, replacing the legacy Inkeep X/LinkedIn destinations in the footer and structured-data `sameAs`.
+- The home hero and bottom call-to-action add a subtle "or CLI" link beside the macOS download button, pointing at the CLI reference.
diff --git a/docs/src/app/(home)/footer.tsx b/docs/src/app/(home)/footer.tsx
index 075b6f0f..89fcdf30 100644
--- a/docs/src/app/(home)/footer.tsx
+++ b/docs/src/app/(home)/footer.tsx
@@ -1,13 +1,13 @@
import Link from 'next/link';
+import { DiscordIcon } from '@/components/icons/discord';
import { GitHubIcon } from '@/components/icons/github';
-import { LinkedInIcon } from '@/components/icons/linkedin';
import { XIcon } from '@/components/icons/x';
import { InkeepWordmark } from '@/components/inkeep-wordmark';
const socialLinks = [
{ href: 'https://github.com/inkeep/open-knowledge', label: 'GitHub', Icon: GitHubIcon },
- { href: 'https://www.linkedin.com/company/inkeep/', label: 'LinkedIn', Icon: LinkedInIcon },
- { href: 'https://x.com/inkeep', label: 'X', Icon: XIcon },
+ { href: 'https://discord.com/invite/YujKpFN49', label: 'Discord', Icon: DiscordIcon },
+ { href: 'https://x.com/OpenKnowledgeAI', label: 'X', Icon: XIcon },
];
const legalLinks = [
diff --git a/docs/src/app/(home)/sections/call-to-action.tsx b/docs/src/app/(home)/sections/call-to-action.tsx
index 0aea13e6..0c6a0929 100644
--- a/docs/src/app/(home)/sections/call-to-action.tsx
+++ b/docs/src/app/(home)/sections/call-to-action.tsx
@@ -1,6 +1,7 @@
'use client';
import Image from 'next/image';
+import Link from 'next/link';
import { useEffect, useState } from 'react';
import { DOWNLOAD_URL } from '@/lib/site';
import { useIsInView } from '@/lib/use-is-in-view';
@@ -102,9 +103,6 @@ export function CallToAction() {
-
- Read the docs
-
Download for macOS
+
+ or CLI
+
diff --git a/docs/src/app/(home)/sections/hero.tsx b/docs/src/app/(home)/sections/hero.tsx
index e90df696..2c0cf95f 100644
--- a/docs/src/app/(home)/sections/hero.tsx
+++ b/docs/src/app/(home)/sections/hero.tsx
@@ -1,6 +1,7 @@
'use client';
import Image from 'next/image';
+import Link from 'next/link';
import { useState } from 'react';
import { ClaudeIcon } from '@/components/icons/claude';
import { CodexBrandIcon } from '@/components/icons/codex';
@@ -43,7 +44,7 @@ export function Hero() {
Beautiful, AI-native markdown editor.
-
+
Download for macOS
+
+ or CLI
+
diff --git a/docs/src/app/(home)/site-nav.tsx b/docs/src/app/(home)/site-nav.tsx
index 7ab0bd6d..11f6ce17 100644
--- a/docs/src/app/(home)/site-nav.tsx
+++ b/docs/src/app/(home)/site-nav.tsx
@@ -2,14 +2,44 @@
import { Menu, X } from 'lucide-react';
import Link from 'next/link';
+import type { FC, SVGProps } from 'react';
import { useEffect, useRef, useState } from 'react';
+import { DiscordIcon } from '@/components/icons/discord';
+import { GitHubIcon } from '@/components/icons/github';
+import { XIcon } from '@/components/icons/x';
import { OkWordmark } from '@/components/ok-wordmark';
import { DOWNLOAD_URL } from '@/lib/site';
import { MarketingButton } from './marketing-button';
-const navLinks = [
+type NavLink = {
+ href: string;
+ label: string;
+ external: boolean;
+ icon?: FC
>;
+ iconOnly?: boolean;
+};
+
+const navLinks: NavLink[] = [
{ href: '/docs', label: 'Docs', external: false },
- { href: 'https://github.com/inkeep/open-knowledge', label: 'GitHub', external: true },
+ {
+ href: 'https://github.com/inkeep/open-knowledge',
+ label: 'GitHub',
+ external: true,
+ icon: GitHubIcon,
+ },
+ {
+ href: 'https://discord.com/invite/YujKpFN49',
+ label: 'Discord',
+ external: true,
+ icon: DiscordIcon,
+ },
+ {
+ href: 'https://x.com/OpenKnowledgeAI',
+ label: 'X',
+ external: true,
+ icon: XIcon,
+ iconOnly: true,
+ },
];
const FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), [tabindex]:not([tabindex="-1"])';
@@ -66,27 +96,36 @@ export function SiteNav() {
- {navLinks.map((link) =>
- link.external ? (
+ {navLinks.map((link) => {
+ const Icon = link.icon;
+ const content = (
+ <>
+ {Icon ? : null}
+ {link.iconOnly ? null : link.label}
+ >
+ );
+ return link.external ? (
- {link.label}
+ {content}
) : (
- {link.label}
+ {content}
- ),
- )}
+ );
+ })}
Download
@@ -116,27 +155,36 @@ export function SiteNav() {
className="border-t bg-fd-background md:hidden"
>
- {navLinks.map((link) =>
- link.external ? (
+ {navLinks.map((link) => {
+ const Icon = link.icon;
+ const content = (
+ <>
+ {Icon ? : null}
+ {link.iconOnly ? null : link.label}
+ >
+ );
+ return link.external ? (
- {link.label}
+ {content}
) : (
- {link.label}
+ {content}
- ),
- )}
+ );
+ })}
Download
diff --git a/docs/src/app/layout.tsx b/docs/src/app/layout.tsx
index 9a7623dd..1595211f 100644
--- a/docs/src/app/layout.tsx
+++ b/docs/src/app/layout.tsx
@@ -33,13 +33,7 @@ const orgLd = {
description:
'Ship Agent-powered assistants and automations that boost customer experience and 10x your teams.',
foundingDate: '2023',
- sameAs: [
- 'https://x.com/inkeep',
- 'https://linkedin.com/company/inkeep',
- 'https://github.com/inkeep',
- 'https://crunchbase.com/organization/inkeep',
- 'https://youtube.com/@inkeep-ai',
- ],
+ sameAs: ['https://x.com/OpenKnowledgeAI', 'https://github.com/inkeep/open-knowledge'],
} satisfies WithContext;
const siteLd = {
diff --git a/docs/src/components/icons/discord.tsx b/docs/src/components/icons/discord.tsx
new file mode 100644
index 00000000..5b0c38fe
--- /dev/null
+++ b/docs/src/components/icons/discord.tsx
@@ -0,0 +1,17 @@
+import type { SVGProps } from 'react';
+
+export function DiscordIcon(props: SVGProps) {
+ return (
+
+
+
+ );
+}
diff --git a/docs/src/components/icons/linkedin.tsx b/docs/src/components/icons/linkedin.tsx
deleted file mode 100644
index 6bd36563..00000000
--- a/docs/src/components/icons/linkedin.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import type { SVGProps } from 'react';
-
-export function LinkedInIcon(props: SVGProps) {
- return (
-
-
-
- );
-}
diff --git a/packages/app/src/components/HelpPopover.dom.test.tsx b/packages/app/src/components/HelpPopover.dom.test.tsx
index c3c69af0..918cbd11 100644
--- a/packages/app/src/components/HelpPopover.dom.test.tsx
+++ b/packages/app/src/components/HelpPopover.dom.test.tsx
@@ -67,7 +67,7 @@ describe('HelpPopover runtime behavior', () => {
})),
).toEqual([
{
- label: 'Documentation',
+ label: 'Docs',
href: 'https://openknowledge.ai/docs',
target: '_blank',
rel: 'noopener noreferrer',
@@ -81,22 +81,22 @@ describe('HelpPopover runtime behavior', () => {
hasIcon: true,
},
{
- label: 'Website',
- href: 'https://openknowledge.ai/',
+ label: 'Discord',
+ href: 'https://discord.com/invite/YujKpFN49',
target: '_blank',
rel: 'noopener noreferrer',
hasIcon: true,
},
{
- label: 'Discord',
- href: 'https://discord.com/invite/YujKpFN49',
+ label: 'X',
+ href: 'https://x.com/OpenKnowledgeAI',
target: '_blank',
rel: 'noopener noreferrer',
hasIcon: true,
},
{
- label: 'Twitter',
- href: 'https://x.com/inkeep',
+ label: 'Open Knowledge',
+ href: 'https://openknowledge.ai/',
target: '_blank',
rel: 'noopener noreferrer',
hasIcon: true,
diff --git a/packages/app/src/components/HelpPopover.tsx b/packages/app/src/components/HelpPopover.tsx
index d12339ca..c2013988 100644
--- a/packages/app/src/components/HelpPopover.tsx
+++ b/packages/app/src/components/HelpPopover.tsx
@@ -1,27 +1,35 @@
import type { MessageDescriptor } from '@lingui/core';
import { msg } from '@lingui/core/macro';
import { Trans, useLingui } from '@lingui/react/macro';
-import { BookOpen, CircleHelp, Globe } from 'lucide-react';
+import { BookOpen, CircleHelp } from 'lucide-react';
import type { ComponentProps, FC } from 'react';
import { useState } from 'react';
import { Button } from '@/components/ui/button';
import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
import { dispatchExternalLinkClick } from '@/lib/external-link';
+import { cn } from '@/lib/utils';
import { DiscordIcon } from './icons/discord';
import { GithubIcon } from './icons/github';
+import { OkIcon } from './icons/ok';
import { XTwitterIcon } from './icons/x-twitter';
const links: Array<{
label: string | MessageDescriptor;
href: string;
icon: FC>;
+ iconClassName?: string;
}> = [
- { label: msg`Documentation`, href: 'https://openknowledge.ai/docs', icon: BookOpen },
+ { label: msg`Docs`, href: 'https://openknowledge.ai/docs', icon: BookOpen },
{ label: 'GitHub', href: 'https://github.com/inkeep/open-knowledge', icon: GithubIcon },
- { label: msg`Website`, href: 'https://openknowledge.ai/', icon: Globe },
{ label: 'Discord', href: 'https://discord.com/invite/YujKpFN49', icon: DiscordIcon },
- { label: 'Twitter', href: 'https://x.com/inkeep', icon: XTwitterIcon },
+ { label: 'X', href: 'https://x.com/OpenKnowledgeAI', icon: XTwitterIcon },
+ {
+ label: 'Open Knowledge',
+ href: 'https://openknowledge.ai/',
+ icon: OkIcon,
+ iconClassName: 'scale-125 grayscale transition-[filter] group-hover:grayscale-0',
+ },
];
export const HelpPopover: FC = () => {
@@ -49,13 +57,13 @@ export const HelpPopover: FC = () => {
Resources
-
+
Resources
- {links.map(({ label, href, icon: Icon }) => (
+ {links.map(({ label, href, icon: Icon, iconClassName }) => (
{
rel="noopener noreferrer"
onClick={(e) => dispatchExternalLinkClick(e, href)}
onAuxClick={(e) => dispatchExternalLinkClick(e, href)}
- className="flex items-center gap-2.5 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-azure-900/5 dark:hover:bg-white/20 hover:text-primary"
+ className="group flex items-center gap-2.5 rounded-md px-2 py-1.5 text-sm text-muted-foreground transition-colors hover:bg-azure-900/5 dark:hover:bg-white/20 hover:text-primary"
>
-
+
{typeof label === 'string' ? label : t(label)}
diff --git a/packages/app/src/locales/en/messages.json b/packages/app/src/locales/en/messages.json
index cc5db1ce..3ea35f4e 100644
--- a/packages/app/src/locales/en/messages.json
+++ b/packages/app/src/locales/en/messages.json
@@ -827,7 +827,6 @@
"Okd2Xv": ["Toggle underline formatting."],
"OlAl5i": ["Expand all"],
"OmHTGj": ["Disable git auto-sync"],
- "On0aF2": ["Website"],
"Oo_WWc": ["No pages found"],
"Oos8fo": ["Copy command"],
"OuY8t9": ["Open in current branch"],
@@ -947,9 +946,9 @@
"TLIO3j": ["Toggle italic formatting."],
"T_wG4n": ["We couldn't check your GitHub connection."],
"Ta25TG": ["No history yet"],
+ "TbjyhA": ["Docs"],
"ThmUrC": ["Could not finalize project setup. Try again."],
"Tjc1pH": ["Section <0>(optional heading anchor)0>"],
- "TvY_XA": ["Documentation"],
"TwYboS": ["Navigate CodeMirror source search results or dismiss the search panel."],
"Tz0i8g": ["Settings"],
"Tz9pJB": ["Clone stream ended unexpectedly — check if the clone completed"],
diff --git a/packages/app/src/locales/en/messages.po b/packages/app/src/locales/en/messages.po
index 6f2b0024..55be63a6 100644
--- a/packages/app/src/locales/en/messages.po
+++ b/packages/app/src/locales/en/messages.po
@@ -1901,6 +1901,10 @@ msgstr "Display text"
msgid "Do you want to permanently delete instead?"
msgstr "Do you want to permanently delete instead?"
+#: src/components/HelpPopover.tsx
+msgid "Docs"
+msgstr "Docs"
+
#: src/components/CommandPalette.tsx
msgid "Docs tagged #{tagDocsName}"
msgstr "Docs tagged #{tagDocsName}"
@@ -1930,10 +1934,6 @@ msgstr "Document statistics"
msgid "Document the architecture of this repo: create an overview page that links to a page per major module describing its responsibilities and entry points."
msgstr "Document the architecture of this repo: create an overview page that links to a page per major module describing its responsibilities and entry points."
-#: src/components/HelpPopover.tsx
-msgid "Documentation"
-msgstr "Documentation"
-
#: src/components/FileTree.tsx
msgid "Documents response did not match expected shape."
msgstr "Documents response did not match expected shape."
@@ -6178,10 +6178,6 @@ msgstr "We'll build <0>openknowledge.skill0>, save it to <1>~/Downloads1>, a
msgid "We'll create a repository and start syncing — no terminal needed."
msgstr "We'll create a repository and start syncing — no terminal needed."
-#: src/components/HelpPopover.tsx
-msgid "Website"
-msgstr "Website"
-
#: src/components/ConfigSharingInfoTooltip.tsx
msgid "What config sharing covers"
msgstr "What config sharing covers"
diff --git a/packages/app/src/locales/pseudo/messages.json b/packages/app/src/locales/pseudo/messages.json
index dd058c30..091d9a8f 100644
--- a/packages/app/src/locales/pseudo/messages.json
+++ b/packages/app/src/locales/pseudo/messages.json
@@ -827,7 +827,6 @@
"Okd2Xv": ["Ţōĝĝĺē ũńďēŕĺĩńē ƒōŕḿàţţĩńĝ."],
"OlAl5i": ["Ēxƥàńď àĺĺ"],
"OmHTGj": ["Ďĩśàƀĺē ĝĩţ àũţō-śŷńć"],
- "On0aF2": ["Ŵēƀśĩţē"],
"Oo_WWc": ["Ńō ƥàĝēś ƒōũńď"],
"Oos8fo": ["Ćōƥŷ ćōḿḿàńď"],
"OuY8t9": ["Ōƥēń ĩń ćũŕŕēńţ ƀŕàńćĥ"],
@@ -947,9 +946,9 @@
"TLIO3j": ["Ţōĝĝĺē ĩţàĺĩć ƒōŕḿàţţĩńĝ."],
"T_wG4n": ["Ŵē ćōũĺďń'ţ ćĥēćķ ŷōũŕ ĜĩţĤũƀ ćōńńēćţĩōń."],
"Ta25TG": ["Ńō ĥĩśţōŕŷ ŷēţ"],
+ "TbjyhA": ["Ďōćś"],
"ThmUrC": ["Ćōũĺď ńōţ ƒĩńàĺĩźē ƥŕōĴēćţ śēţũƥ. Ţŕŷ àĝàĩń."],
"Tjc1pH": ["Śēćţĩōń <0>(ōƥţĩōńàĺ ĥēàďĩńĝ àńćĥōŕ)0>"],
- "TvY_XA": ["Ďōćũḿēńţàţĩōń"],
"TwYboS": ["Ńàvĩĝàţē ĆōďēḾĩŕŕōŕ śōũŕćē śēàŕćĥ ŕēśũĺţś ōŕ ďĩśḿĩśś ţĥē śēàŕćĥ ƥàńēĺ."],
"Tz0i8g": ["Śēţţĩńĝś"],
"Tz9pJB": ["Ćĺōńē śţŕēàḿ ēńďēď ũńēxƥēćţēďĺŷ — ćĥēćķ ĩƒ ţĥē ćĺōńē ćōḿƥĺēţēď"],
diff --git a/packages/app/src/locales/pseudo/messages.po b/packages/app/src/locales/pseudo/messages.po
index 8e2efbff..5afd3513 100644
--- a/packages/app/src/locales/pseudo/messages.po
+++ b/packages/app/src/locales/pseudo/messages.po
@@ -1896,6 +1896,10 @@ msgstr ""
msgid "Do you want to permanently delete instead?"
msgstr ""
+#: src/components/HelpPopover.tsx
+msgid "Docs"
+msgstr ""
+
#: src/components/CommandPalette.tsx
msgid "Docs tagged #{tagDocsName}"
msgstr ""
@@ -1925,10 +1929,6 @@ msgstr ""
msgid "Document the architecture of this repo: create an overview page that links to a page per major module describing its responsibilities and entry points."
msgstr ""
-#: src/components/HelpPopover.tsx
-msgid "Documentation"
-msgstr ""
-
#: src/components/FileTree.tsx
msgid "Documents response did not match expected shape."
msgstr ""
@@ -6173,10 +6173,6 @@ msgstr ""
msgid "We'll create a repository and start syncing — no terminal needed."
msgstr ""
-#: src/components/HelpPopover.tsx
-msgid "Website"
-msgstr ""
-
#: src/components/ConfigSharingInfoTooltip.tsx
msgid "What config sharing covers"
msgstr ""