From a9a9f2442d6508389752dfd6873e03daf0756834 Mon Sep 17 00:00:00 2001
From: hyochan
Date: Sat, 15 Aug 2026 23:32:50 +0900
Subject: [PATCH 1/3] feat(docs): improve community discovery
Route showcase and community resource submissions through GitHub Discussions, share showcase data across entry points, and improve resource metadata.
Fix Meta wordmark theming and normalize the framework sponsor rail.
---
packages/docs/COMMUNITY_RESOURCES.md | 9 +-
packages/docs/SHOWCASE.md | 4 +-
packages/docs/src/components/MetaWordmark.tsx | 12 ++
.../docs/src/components/ShowcaseCards.tsx | 6 +-
packages/docs/src/lib/communityResources.ts | 68 ++++++---
packages/docs/src/lib/searchData.ts | 4 +-
.../docs/src/pages/community-resources.tsx | 134 ++++++++++--------
packages/docs/src/pages/home.tsx | 7 +-
packages/docs/src/pages/showcase.tsx | 8 +-
packages/docs/src/pages/sponsors.tsx | 58 +-------
packages/docs/src/styles/base.css | 14 ++
.../docs/src/styles/community-resources.css | 87 +++++++-----
packages/docs/src/styles/explore-pages.css | 63 +-------
packages/docs/src/styles/home.css | 9 +-
14 files changed, 235 insertions(+), 248 deletions(-)
create mode 100644 packages/docs/src/components/MetaWordmark.tsx
diff --git a/packages/docs/COMMUNITY_RESOURCES.md b/packages/docs/COMMUNITY_RESOURCES.md
index 0e3f3d114..d6be114ac 100644
--- a/packages/docs/COMMUNITY_RESOURCES.md
+++ b/packages/docs/COMMUNITY_RESOURCES.md
@@ -2,7 +2,7 @@
The [Community Resources page](https://openiap.dev/community-resources) is a
curated library of third-party knowledge about OpenIAP and the implementations
-built on its specification. The official OpenIAP blog is presented separately
+built on its specification. Official OpenIAP updates are presented separately
from this community-maintained collection.
Thank you to every developer, writer, speaker, and team who shares practical
@@ -53,10 +53,13 @@ these rules:
them.
5. Add accurate language metadata. English is the initial default; future
non-English additions should ship with a visible language filter.
-6. Do not add view counts or other metrics that will become stale.
+6. Add a verified `publishedAt` date in `YYYY-MM-DD` format. Use the original
+ publication date when available. For sources that only expose an update or
+ submission date, set `dateLabel` to `Updated` or `Submitted`.
+7. Do not add view counts or other metrics that will become stale.
Before opening a pull request, run the docs format check, typecheck, and build
described in [`README.md`](README.md).
If you prefer to introduce your work before editing the library, share it in
-[Show and Tell](https://github.com/hyodotdev/openiap/discussions/categories/show-and-tell).
+the [community resources discussion](https://github.com/hyodotdev/openiap/discussions/349).
diff --git a/packages/docs/SHOWCASE.md b/packages/docs/SHOWCASE.md
index fdd610045..6b804a447 100644
--- a/packages/docs/SHOWCASE.md
+++ b/packages/docs/SHOWCASE.md
@@ -68,11 +68,11 @@ are skipped at render time.
## Don't want to send a PR?
-Comment on [issue #280](https://github.com/hyodotdev/openiap/issues/280) or
+Reply to [discussion #350](https://github.com/hyodotdev/openiap/discussions/350) or
email **hyo@hyo.dev** with your app name, one-liner, logo, store links, and which
library you use — we'll add it for you.
## Removal and updates
Your app is listed only with your permission. To change or remove an entry, open
-a PR, comment on issue #280, or email hyo@hyo.dev anytime.
+a PR, comment on discussion #350, or email hyo@hyo.dev anytime.
diff --git a/packages/docs/src/components/MetaWordmark.tsx b/packages/docs/src/components/MetaWordmark.tsx
new file mode 100644
index 000000000..812456a3f
--- /dev/null
+++ b/packages/docs/src/components/MetaWordmark.tsx
@@ -0,0 +1,12 @@
+import type { ReactElement } from 'react';
+
+function MetaWordmark(): ReactElement {
+ return (
+
+
+
+
+ );
+}
+
+export default MetaWordmark;
diff --git a/packages/docs/src/components/ShowcaseCards.tsx b/packages/docs/src/components/ShowcaseCards.tsx
index 3a0ee2047..74d62e302 100644
--- a/packages/docs/src/components/ShowcaseCards.tsx
+++ b/packages/docs/src/components/ShowcaseCards.tsx
@@ -3,8 +3,8 @@ import { SiApple, SiGoogleplay } from 'react-icons/si';
import { Globe } from 'lucide-react';
import type { ShowcaseApp } from '../lib/showcase';
-export const SHOWCASE_ISSUE_URL =
- 'https://github.com/hyodotdev/openiap/issues/280';
+export const SHOWCASE_DISCUSSION_URL =
+ 'https://github.com/hyodotdev/openiap/discussions/350';
export const SHOWCASE_GUIDE_URL =
'https://github.com/hyodotdev/openiap/blob/main/packages/docs/SHOWCASE.md';
@@ -159,7 +159,7 @@ export function ShowcaseSubmitCard() {
Send your app name, icon, and store links — we'll add it here.
getEcosystemMeta(ecosystem).label
- ),
+ ...resource.ecosystems.flatMap((ecosystem) => {
+ const meta = getEcosystemMeta(ecosystem);
+ return [meta.label, meta.module];
+ }),
]
.filter((value): value is string => Boolean(value))
.some((value) => value.toLowerCase().includes(normalizedQuery));
}
function ResourceRow({ resource }: ResourceRowProps) {
- const ecosystemLabels = resource.ecosystems
- .map((ecosystem) => getEcosystemMeta(ecosystem).label)
+ const ecosystemModules = resource.ecosystems
+ .map((ecosystem) => getEcosystemMeta(ecosystem).module)
.join(' · ');
return (
@@ -208,8 +213,16 @@ function ResourceRow({ resource }: ResourceRowProps) {
{resource.author && resource.organization && (
{resource.organization}
)}
+
+
+ {resource.platform}
- {ecosystemLabels}
+ {ecosystemModules}
{resource.seriesLabel && {resource.seriesLabel}}