From 60ea78fa106140a3bd4d0fe873eef831daafaed4 Mon Sep 17 00:00:00 2001 From: Ben Holmes Date: Wed, 15 Apr 2026 09:08:41 +0000 Subject: [PATCH] feat(www): SEO/AEO audit improvements - Add site URL to enable sitemap generation - Add robots.txt with sitemap reference - Add Organization JSON-LD structured data - Add Open Graph meta tags - Improve page titles and meta descriptions for SEO - Restructure homepage content for AEO (answer-first format) Co-Authored-By: Oz --- www/astro.config.mjs | 34 ++++++++++++++++++++++++++++++++++ www/public/robots.txt | 4 ++++ www/src/content/docs/index.mdx | 18 +++++++++++++----- www/src/content/docs/query.mdx | 4 ++-- www/src/content/docs/scope.mdx | 4 ++-- www/src/content/docs/store.mdx | 4 ++-- www/src/content/docs/stream.md | 4 ++-- 7 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 www/public/robots.txt diff --git a/www/astro.config.mjs b/www/astro.config.mjs index 0d7e4c1..32cf193 100644 --- a/www/astro.config.mjs +++ b/www/astro.config.mjs @@ -2,6 +2,7 @@ import starlight from "@astrojs/starlight"; import { defineConfig } from "astro/config"; export default defineConfig({ + site: "https://simple-stack.dev", integrations: [ starlight({ title: "Simple Stack 🌱", @@ -43,6 +44,39 @@ export default defineConfig({ "@fontsource/atkinson-hyperlegible/700.css", "./src/styles/custom.css", ], + head: [ + { + tag: "meta", + attrs: { + property: "og:site_name", + content: "Simple Stack", + }, + }, + { + tag: "meta", + attrs: { + property: "og:type", + content: "website", + }, + }, + { + tag: "script", + attrs: { type: "application/ld+json" }, + content: JSON.stringify({ + "@context": "https://schema.org", + "@type": "WebSite", + name: "Simple Stack", + url: "https://simple-stack.dev", + description: + "A collection of lightweight, focused tools for Astro and web development. Includes Simple Store, Simple Scope, and Simple Query.", + author: { + "@type": "Person", + name: "Ben Holmes", + url: "https://bholmes.dev", + }, + }), + }, + ], }), ], }); diff --git a/www/public/robots.txt b/www/public/robots.txt new file mode 100644 index 0000000..3214756 --- /dev/null +++ b/www/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://simple-stack.dev/sitemap-index.xml diff --git a/www/src/content/docs/index.mdx b/www/src/content/docs/index.mdx index 1e6d15c..2ba27b7 100644 --- a/www/src/content/docs/index.mdx +++ b/www/src/content/docs/index.mdx @@ -1,15 +1,23 @@ --- -title: Simple stack 🌱 -description: A suite of tools built for Astro to simplify your workflow. +title: Simple Stack - Lightweight Tools for Astro & Web Development +description: Simple Stack is a collection of lightweight, focused tools for Astro and web development. Includes Simple Store (reactive state), Simple Scope (scoped IDs), and Simple Query (DOM querying for Astro components). tableOfContents: false head: - tag: title - content: Simple stack 🌱 + content: Simple Stack - Lightweight Tools for Astro & Web Development + - tag: meta + attrs: + property: og:title + content: Simple Stack - Lightweight Tools for Astro & Web Development + - tag: meta + attrs: + property: og:description + content: A collection of lightweight, focused tools for Astro and web development. Includes Simple Store, Simple Scope, and Simple Query. --- -A collection of tools I've built to **make web development simpler.** +Simple Stack is a collection of lightweight, focused tools for Astro and web development. Each package solves a single use case well, without unnecessary complexity. -To be honest, there isn't a "story" connecting these packages together (I'm no TanStack). But they follow a common theme: solve a simple use case without too many features. +Packages include **Simple Store** (reactive state management), **Simple Scope** (build-time scoped IDs), and **Simple Query** (DOM querying for Astro components). import { CardGrid, Card, LinkCard } from '@astrojs/starlight/components'; diff --git a/www/src/content/docs/query.mdx b/www/src/content/docs/query.mdx index 5549582..5016651 100644 --- a/www/src/content/docs/query.mdx +++ b/www/src/content/docs/query.mdx @@ -1,6 +1,6 @@ --- -title: 💰 Simple Query -description: A simple library to query the DOM from your Astro components. +title: Simple Query - DOM Querying for Astro Components +description: Simple Query is an Astro integration for querying the DOM from Astro components. Provides scoped element selection, type-safe selectors, and signal-based reactivity with zero framework overhead. --- import { Tabs, TabItem, LinkCard } from '@astrojs/starlight/components'; diff --git a/www/src/content/docs/scope.mdx b/www/src/content/docs/scope.mdx index 93740de..4504e7c 100644 --- a/www/src/content/docs/scope.mdx +++ b/www/src/content/docs/scope.mdx @@ -1,6 +1,6 @@ --- -title: 🔎 Simple scope -description: Get a scoped ID for whatever file you're in. Resolved at build-time with zero client JS. +title: Simple Scope - Build-Time Scoped IDs for Vite Projects +description: Simple Scope is a Vite plugin that generates scoped IDs at build-time with zero client JavaScript. Works with Astro, React, Vue, Svelte, and any Vite-based framework. Prevents ID collisions in forms and query selectors. --- import { LinkCard } from '@astrojs/starlight/components'; diff --git a/www/src/content/docs/store.mdx b/www/src/content/docs/store.mdx index cda86d1..16d6961 100644 --- a/www/src/content/docs/store.mdx +++ b/www/src/content/docs/store.mdx @@ -1,6 +1,6 @@ --- -title: 💾 Simple store -description: A reactive store that combines the simplicity of signals with the power of "selectors" you'd find in Zustand or Redux. +title: Simple Store - Reactive State Management for React & Astro +description: Simple Store is a lightweight reactive store that combines the simplicity of signals with Zustand-style selectors. Works with React, Next.js, and Astro. Supports nested state, middleware, and TypeScript. sidebar: label: Get started order: 1 diff --git a/www/src/content/docs/stream.md b/www/src/content/docs/stream.md index 5c734fb..d68204c 100644 --- a/www/src/content/docs/stream.md +++ b/www/src/content/docs/stream.md @@ -1,6 +1,6 @@ --- -title: Simple stream 🌊 -description: Suspend Astro components with fallback content. Like React Server Components, but Just HTML ™️ +title: Simple Stream - Suspense for Astro Components (Deprecated) +description: Simple Stream suspended Astro components with fallback content, similar to React Server Components but using only HTML. This package is deprecated in favor of Astro Server Islands. --- :::caution