diff --git a/www/astro.config.mjs b/www/astro.config.mjs
index 0d7e4c1..4220ab1 100644
--- a/www/astro.config.mjs
+++ b/www/astro.config.mjs
@@ -1,10 +1,23 @@
+import sitemap from "@astrojs/sitemap";
import starlight from "@astrojs/starlight";
import { defineConfig } from "astro/config";
export default defineConfig({
+ site: "https://simple-stack.dev",
integrations: [
+ sitemap(),
starlight({
title: "Simple Stack 🌱",
+ head: [
+ {
+ tag: "meta",
+ attrs: { property: "og:type", content: "website" },
+ },
+ {
+ tag: "meta",
+ attrs: { name: "twitter:card", content: "summary" },
+ },
+ ],
social: [
{
icon: "github",
diff --git a/www/package.json b/www/package.json
index 8afa5ca..ab969fe 100644
--- a/www/package.json
+++ b/www/package.json
@@ -17,6 +17,7 @@
},
"dependencies": {
"@astrojs/check": "^0.9.6",
+ "@astrojs/sitemap": "^3.7.0",
"@astrojs/starlight": "^0.37.1",
"@fontsource/atkinson-hyperlegible": "^5.0.18",
"astro": "^5.16.6",
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..bae9878 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 accessible client-side form validation using the Simple Form CLI. Generates framework components with the "reward early, punish late" UX pattern for inline error messaging.
sidebar:
order: 3
---
diff --git a/www/src/content/docs/form/index.mdx b/www/src/content/docs/form/index.mdx
index 3e1654e..4ccde7c 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.
+description: Simple Form is a fullstack form validation library for Astro and other frameworks. Define schemas with Zod, auto-generate HTML input props, and parse submissions with type safety.
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..313b35a 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 Simple Form. Use the validateForm() helper or Astro.locals.form API with Zod schemas for type-safe form handling.
sidebar:
order: 2
---
diff --git a/www/src/content/docs/index.mdx b/www/src/content/docs/index.mdx
index 1e6d15c..216fae0 100644
--- a/www/src/content/docs/index.mdx
+++ b/www/src/content/docs/index.mdx
@@ -1,15 +1,38 @@
---
-title: Simple stack 🌱
-description: A suite of tools built for Astro to simplify your workflow.
+title: Simple Stack – Lightweight Tools for Modern Web Development
+description: Simple Stack is a collection of lightweight, focused tools for modern web development. Includes a reactive store with selectors, scoped IDs via a Vite plugin, and a DOM query library for Astro components.
tableOfContents: false
head:
- tag: title
- content: Simple stack 🌱
+ content: Simple Stack – Lightweight Tools for Modern Web Development
+ - tag: script
+ attrs:
+ type: application/ld+json
+ content: |
+ {
+ "@context": "https://schema.org",
+ "@type": "SoftwareApplication",
+ "name": "Simple Stack",
+ "url": "https://simple-stack.dev",
+ "applicationCategory": "DeveloperApplication",
+ "description": "A collection of lightweight, focused tools for modern web development including a reactive store, scoped IDs, and DOM query utilities.",
+ "author": {
+ "@type": "Person",
+ "name": "Ben Holmes",
+ "url": "https://bholmes.dev"
+ },
+ "offers": {
+ "@type": "Offer",
+ "price": "0",
+ "priceCurrency": "USD"
+ },
+ "sameAs": [
+ "https://github.com/bholmesdev/simple-stack"
+ ]
+ }
---
-A collection of tools I've built to **make web development simpler.**
-
-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.
+Simple Stack is a collection of lightweight, focused JavaScript tools that each solve a single use case without unnecessary complexity. Built by [Ben Holmes](https://bholmes.dev).
import { CardGrid, Card, LinkCard } from '@astrojs/starlight/components';
@@ -17,19 +40,19 @@ import { CardGrid, Card, LinkCard } from '@astrojs/starlight/components';
A reactive store that combines the simplicity of signals with the power of "selectors" you'd find in Zustand.
-
+
A vite plugin that generates scoped IDs for any file you're in. Perfect for form label IDs and query selectors.
-
+
A simple way to add JS scripts to Astro components.
-
+
diff --git a/www/src/content/docs/query.mdx b/www/src/content/docs/query.mdx
index 5549582..1c0d00a 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.
+description: Simple Query is a lightweight DOM querying library for Astro components. Scope element selectors with data-target attributes and manage client-side state with signals.
---
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..fdc3d4b 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.
+description: Simple Scope is a Vite plugin that generates deterministic scoped IDs at build time with zero client JavaScript. Ideal for form labels, query selectors, and preventing hydration mismatches.
---
import { LinkCard } from '@astrojs/starlight/components';
diff --git a/www/src/content/docs/stream.md b/www/src/content/docs/stream.md
index 5c734fb..5b17f6e 100644
--- a/www/src/content/docs/stream.md
+++ b/www/src/content/docs/stream.md
@@ -9,7 +9,7 @@ description: Suspend Astro components with fallback content. Like React Server C
Suspend Astro components with fallback content. Like React Server Components, but Just HTML ™️
-
+
```astro
---