From b8fd04d3a742dc9ecb5be380227dd9f209ef27f6 Mon Sep 17 00:00:00 2001 From: Ben Holmes Date: Wed, 13 May 2026 09:15:59 +0000 Subject: [PATCH] =?UTF-8?q?feat(www):=20SEO/AEO=20audit=20=E2=80=94=20site?= =?UTF-8?q?=20config,=20robots.txt,=20structured=20data,=20improved=20meta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add site URL (https://simple-stack.dev) to enable sitemap, canonical URLs, and OpenGraph - Add Starlight-level description as fallback meta description - Add WebSite + Organization JSON-LD structured data via Starlight head config - Create robots.txt with sitemap reference - Improve homepage title and description for keyword relevance and AEO - Improve all content page descriptions to be AEO-friendly (40-60 word direct answers) - Clean up page titles: remove decorative emoji, add (Deprecated) where applicable - Remove redundant custom tag from homepage frontmatter Co-Authored-By: Oz <oz-agent@warp.dev> --- www/astro.config.mjs | 31 +++++++++++++++++++++++++++++ www/public/robots.txt | 4 ++++ www/src/content/docs/form/client.md | 4 ++-- www/src/content/docs/form/index.mdx | 4 ++-- www/src/content/docs/form/parse.md | 4 ++-- www/src/content/docs/index.mdx | 7 ++----- 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 ++-- 10 files changed, 51 insertions(+), 19 deletions(-) create mode 100644 www/public/robots.txt diff --git a/www/astro.config.mjs b/www/astro.config.mjs index 0d7e4c1..53a7925 100644 --- a/www/astro.config.mjs +++ b/www/astro.config.mjs @@ -2,9 +2,40 @@ import starlight from "@astrojs/starlight"; import { defineConfig } from "astro/config"; export default defineConfig({ + site: "https://simple-stack.dev", integrations: [ starlight({ title: "Simple Stack 🌱", + description: + "Simple Stack is a collection of lightweight tools for web development including a reactive store, scoped IDs, and DOM query utilities for Astro.", + head: [ + { + tag: "script", + attrs: { type: "application/ld+json" }, + content: JSON.stringify({ + "@context": "https://schema.org", + "@graph": [ + { + "@type": "WebSite", + name: "Simple Stack", + url: "https://simple-stack.dev", + description: + "A collection of lightweight tools for web development: reactive store, scoped IDs, and DOM query utilities for Astro.", + }, + { + "@type": "Organization", + name: "Simple Stack", + url: "https://simple-stack.dev", + logo: "https://simple-stack.dev/favicon.svg", + sameAs: [ + "https://github.com/bholmesdev/simple-stack", + "https://wtw.dev/chat", + ], + }, + ], + }), + }, + ], social: [ { icon: "github", 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/form/client.md b/www/src/content/docs/form/client.md index 884c722..bb036b7 100644 --- a/www/src/content/docs/form/client.md +++ b/www/src/content/docs/form/client.md @@ -1,6 +1,6 @@ --- -title: Add client validation -description: Add client validation to your forms +title: Add Client Validation +description: "Add client-side form validation using the reward-early, punish-late UX pattern. Generate accessible form components with the simple-form CLI." sidebar: order: 3 --- diff --git a/www/src/content/docs/form/index.mdx b/www/src/content/docs/form/index.mdx index 3e1654e..55a1222 100644 --- a/www/src/content/docs/form/index.mdx +++ b/www/src/content/docs/form/index.mdx @@ -1,6 +1,6 @@ --- -title: Simple form -description: The simple way to validate forms in your fullstack app. +title: Simple Form (Deprecated) +description: "Simple Form was a Zod-based form validation library for Astro with auto-generated input props, server-side parsing, and client-side validation. Now deprecated in favor of Astro Form Actions." sidebar: label: Get started order: 1 diff --git a/www/src/content/docs/form/parse.md b/www/src/content/docs/form/parse.md index 35116f9..5f5fd04 100644 --- a/www/src/content/docs/form/parse.md +++ b/www/src/content/docs/form/parse.md @@ -1,6 +1,6 @@ --- -title: Parse form requests -description: Validate forms server-side +title: Parse Form Requests +description: "Validate and parse form submissions server-side using Zod schemas with Simple Form's validateForm() helper and Astro.locals.form API." sidebar: order: 2 --- diff --git a/www/src/content/docs/index.mdx b/www/src/content/docs/index.mdx index 1e6d15c..2de0be3 100644 --- a/www/src/content/docs/index.mdx +++ b/www/src/content/docs/index.mdx @@ -1,10 +1,7 @@ --- -title: Simple stack 🌱 -description: A suite of tools built for Astro to simplify your workflow. +title: Simple Stack — Lightweight Web Development Tools for Astro +description: Simple Stack is a collection of lightweight, focused tools for web development. Includes a reactive store with selectors, build-time scoped IDs, and a DOM query library for Astro components. tableOfContents: false -head: - - tag: title - content: Simple stack 🌱 --- A collection of tools I've built to **make web development simpler.** diff --git a/www/src/content/docs/query.mdx b/www/src/content/docs/query.mdx index 5549582..d244c6d 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 +description: "Simple Query is an Astro integration for querying DOM elements with scoped selectors, typed element access, and optional signal-based reactivity via the TC39 Signals proposal polyfill." --- 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..75fdc80 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 +description: "Simple Scope is a Vite plugin that generates deterministic scoped IDs for any file at build time with zero client-side JavaScript. Compatible with Astro, Nuxt, SvelteKit, and any Vite-based framework." --- import { LinkCard } from '@astrojs/starlight/components'; diff --git a/www/src/content/docs/store.mdx b/www/src/content/docs/store.mdx index cda86d1..eb2247c 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 +description: "Simple Store is a reactive state management library that combines the simplicity of signals with selector-based access like Zustand or Redux. Works with React, Next.js, and vanilla JS with sub-store selection and middleware support." sidebar: label: Get started order: 1 diff --git a/www/src/content/docs/stream.md b/www/src/content/docs/stream.md index 5c734fb..90e1b8b 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 (Deprecated) +description: "Simple Stream was an Astro integration for suspending components with fallback content, similar to React Server Components but using plain HTML streaming. Now deprecated in favor of Astro Server Islands." --- :::caution