From 3e129c88e7e4c27f4b4b63841b29c74178d8e5ce Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Wed, 11 Mar 2026 14:47:03 +1100 Subject: [PATCH 1/8] Some layout tweaks --- website/src/styles/global.css | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/website/src/styles/global.css b/website/src/styles/global.css index c6b4ffbc6..9a738ff73 100644 --- a/website/src/styles/global.css +++ b/website/src/styles/global.css @@ -1077,6 +1077,7 @@ body:has(#main-content) { display: flex; align-items: center; gap: 10px; + margin: 0px; } .filter-group label { @@ -1095,6 +1096,7 @@ body:has(#main-content) { color: var(--color-text); min-width: 150px; cursor: pointer; + margin: 0px; } .filter-group select:focus { @@ -1103,6 +1105,10 @@ body:has(#main-content) { border-color: var(--color-accent); } +.filters-bar button { + margin: 0px; +} + .checkbox-label { display: flex; align-items: center; @@ -1361,6 +1367,10 @@ body:has(#main-content) { flex-shrink: 0; } +.resource-actions button { + margin: 0px; +} + /* Last Updated */ .last-updated { font-size: 12px; From 9b60af9871df4d9848761997dde456d85a23cd1e Mon Sep 17 00:00:00 2001 From: Aaron Powell Date: Wed, 11 Mar 2026 15:53:33 +1100 Subject: [PATCH 2/8] SSR resource listing pages Render resource listing pages in Astro for first paint and hydrate client filtering/search behavior on top. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- website/src/components/EmbeddedPageData.astro | 19 ++ website/src/pages/agents.astro | 12 +- website/src/pages/hooks.astro | 12 +- website/src/pages/instructions.astro | 12 +- .../pages/learning-hub/cookbook/index.astro | 34 ++- website/src/pages/plugins.astro | 12 +- website/src/pages/skills.astro | 12 +- website/src/pages/tools.astro | 26 +- website/src/pages/workflows.astro | 12 +- website/src/scripts/embedded-data.ts | 29 ++ website/src/scripts/pages/agents-render.ts | 115 ++++++++ website/src/scripts/pages/agents.ts | 91 +++--- website/src/scripts/pages/hooks-render.ts | 115 ++++++++ website/src/scripts/pages/hooks.ts | 148 +++------- .../src/scripts/pages/instructions-render.ts | 86 ++++++ website/src/scripts/pages/instructions.ts | 91 +++--- website/src/scripts/pages/plugins-render.ts | 92 ++++++ website/src/scripts/pages/plugins.ts | 84 ++---- website/src/scripts/pages/samples-render.ts | 251 ++++++++++++++++ website/src/scripts/pages/samples.ts | 278 ++---------------- website/src/scripts/pages/skills-render.ts | 111 +++++++ website/src/scripts/pages/skills.ts | 136 +++------ website/src/scripts/pages/tools-render.ts | 198 +++++++++++++ website/src/scripts/pages/tools.ts | 226 +++----------- website/src/scripts/pages/workflows-render.ts | 76 +++++ website/src/scripts/pages/workflows.ts | 102 +++---- website/src/scripts/utils.ts | 25 +- 27 files changed, 1514 insertions(+), 891 deletions(-) create mode 100644 website/src/components/EmbeddedPageData.astro create mode 100644 website/src/scripts/embedded-data.ts create mode 100644 website/src/scripts/pages/agents-render.ts create mode 100644 website/src/scripts/pages/hooks-render.ts create mode 100644 website/src/scripts/pages/instructions-render.ts create mode 100644 website/src/scripts/pages/plugins-render.ts create mode 100644 website/src/scripts/pages/samples-render.ts create mode 100644 website/src/scripts/pages/skills-render.ts create mode 100644 website/src/scripts/pages/tools-render.ts create mode 100644 website/src/scripts/pages/workflows-render.ts diff --git a/website/src/components/EmbeddedPageData.astro b/website/src/components/EmbeddedPageData.astro new file mode 100644 index 000000000..61a034550 --- /dev/null +++ b/website/src/components/EmbeddedPageData.astro @@ -0,0 +1,19 @@ +--- +import { + getEmbeddedDataElementId, + serializeEmbeddedData, +} from "../scripts/embedded-data"; + +interface Props { + filename: string; + data: unknown; +} + +const { filename, data } = Astro.props; +--- + + diff --git a/website/src/pages/agents.astro b/website/src/pages/agents.astro index d55a07883..0076ec57f 100644 --- a/website/src/pages/agents.astro +++ b/website/src/pages/agents.astro @@ -1,8 +1,13 @@ --- import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro'; +import agentsData from '../../public/data/agents.json'; import Modal from '../components/Modal.astro'; import ContributeCTA from '../components/ContributeCTA.astro'; +import EmbeddedPageData from '../components/EmbeddedPageData.astro'; import PageHeader from '../components/PageHeader.astro'; +import { renderAgentsHtml, sortAgents } from '../scripts/pages/agents-render'; + +const initialItems = sortAgents(agentsData.items, 'title'); --- @@ -42,16 +47,15 @@ import PageHeader from '../components/PageHeader.astro'; -
-
-
Loading agents...
-
+
{initialItems.length} of {initialItems.length} agents
+
+ diff --git a/website/src/pages/instructions.astro b/website/src/pages/instructions.astro index 5595c0238..d21bfaf26 100644 --- a/website/src/pages/instructions.astro +++ b/website/src/pages/instructions.astro @@ -1,8 +1,13 @@ --- import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro'; +import instructionsData from '../../public/data/instructions.json'; import Modal from '../components/Modal.astro'; import ContributeCTA from '../components/ContributeCTA.astro'; +import EmbeddedPageData from '../components/EmbeddedPageData.astro'; import PageHeader from '../components/PageHeader.astro'; +import { renderInstructionsHtml, sortInstructions } from '../scripts/pages/instructions-render'; + +const initialItems = sortInstructions(instructionsData.items, 'title'); --- @@ -31,16 +36,15 @@ import PageHeader from '../components/PageHeader.astro'; -
-
-
Loading instructions...
-
+
{initialItems.length} of {initialItems.length} instructions
+
+ diff --git a/website/src/pages/tools.astro b/website/src/pages/tools.astro index f011bb6c3..22ed6602d 100644 --- a/website/src/pages/tools.astro +++ b/website/src/pages/tools.astro @@ -1,7 +1,15 @@ --- import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro'; +import toolsData from '../../public/data/tools.json'; import ContributeCTA from "../components/ContributeCTA.astro"; +import EmbeddedPageData from "../components/EmbeddedPageData.astro"; import PageHeader from "../components/PageHeader.astro"; +import { renderToolsHtml } from "../scripts/pages/tools-render"; + +const initialItems = toolsData.items.map((item) => ({ + ...item, + title: item.name, +})); --- @@ -24,15 +32,18 @@ import PageHeader from "../components/PageHeader.astro"; -
+
{initialItems.length} of {initialItems.length} tools
-
+

More Tools Coming Soon

@@ -46,6 +57,8 @@ import PageHeader from "../components/PageHeader.astro";
+ +
diff --git a/website/src/pages/workflows.astro b/website/src/pages/workflows.astro index dd4f46630..740e1e16f 100644 --- a/website/src/pages/workflows.astro +++ b/website/src/pages/workflows.astro @@ -1,8 +1,13 @@ --- import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro'; +import workflowsData from '../../public/data/workflows.json'; import Modal from '../components/Modal.astro'; import ContributeCTA from '../components/ContributeCTA.astro'; +import EmbeddedPageData from '../components/EmbeddedPageData.astro'; import PageHeader from '../components/PageHeader.astro'; +import { renderWorkflowsHtml, sortWorkflows } from '../scripts/pages/workflows-render'; + +const initialItems = sortWorkflows(workflowsData.items, 'title'); --- @@ -33,16 +38,15 @@ import PageHeader from '../components/PageHeader.astro'; -
-
-
Loading workflows...
-
+
{initialItems.length} of {initialItems.length} workflows
+
+