diff --git a/src/components/GitHubUserCard.astro b/src/components/GitHubUserCard.astro
new file mode 100644
index 0000000..9eee58d
--- /dev/null
+++ b/src/components/GitHubUserCard.astro
@@ -0,0 +1,45 @@
+---
+import { fetchGitHubUser } from '../utils/github'
+
+interface Props {
+ username: string
+}
+
+const { username } = Astro.props
+
+const cleanUsername = username.startsWith('@') ? username.slice(1) : username
+const user = await fetchGitHubUser(cleanUsername)
+const githubUrl = `https://github.com/${cleanUsername}`
+---
+
+{
+ user ? (
+
+
+
+ {user.name || user.login}
+
+
+ ) : (
+
+
+ {username}
+
+ )
+}
diff --git a/src/pages/articles/[slug].astro b/src/pages/articles/[slug].astro
index 5548f53..95a0cec 100644
--- a/src/pages/articles/[slug].astro
+++ b/src/pages/articles/[slug].astro
@@ -1,6 +1,7 @@
---
import DocsLayout from '../../layouts/DocsLayout.astro'
import ShareButtons from '../../components/ShareButtons.astro'
+import GitHubUserCard from '../../components/GitHubUserCard.astro'
import { getCollection, render } from 'astro:content'
import { SITE } from '../../config.mjs'
import { getLangFromUrl, t } from '../../i18n/index.ts'
@@ -63,7 +64,6 @@ const jsonLdArticle = {
const homeLabel = t(labels, 'article.home')
const articlesLabel = t(labels, 'nav.articles')
-const byLabel = t(labels, 'article.by')
const onThisPageLabel = t(labels, 'article.onThisPage')
---
@@ -118,9 +118,13 @@ const onThisPageLabel = t(labels, 'article.onThisPage')