Skip to content

Commit 0a8d103

Browse files
bholmesdevoz-agent
andcommitted
feat(www): SEO/AEO audit — add sitemap, structured data, and improved meta tags
- Add site property to enable Starlight's built-in sitemap and canonical URLs - Create robots.txt with sitemap reference - Add Organization JSON-LD structured data site-wide - Add SoftwareSourceCode JSON-LD to store, scope, and query pages - Add FAQPage JSON-LD to homepage for AEO/AI citation optimization - Improve title tags and meta descriptions across all pages - Enrich thin descriptions on form/client and form/parse pages Co-Authored-By: Oz <oz-agent@warp.dev>
1 parent 70cb101 commit 0a8d103

8 files changed

Lines changed: 132 additions & 13 deletions

File tree

www/astro.config.mjs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,33 @@ import starlight from "@astrojs/starlight";
22
import { defineConfig } from "astro/config";
33

44
export default defineConfig({
5+
site: "https://simple-stack.dev",
56
integrations: [
67
starlight({
78
title: "Simple Stack 🌱",
9+
head: [
10+
{
11+
tag: "script",
12+
attrs: { type: "application/ld+json" },
13+
content: JSON.stringify({
14+
"@context": "https://schema.org",
15+
"@type": "Organization",
16+
name: "Simple Stack",
17+
url: "https://simple-stack.dev",
18+
logo: "https://simple-stack.dev/favicon.svg",
19+
sameAs: [
20+
"https://github.com/bholmesdev/simple-stack",
21+
],
22+
founder: {
23+
"@type": "Person",
24+
name: "Ben Holmes",
25+
url: "https://bholmes.dev",
26+
},
27+
description:
28+
"A collection of simple, focused tools for web development built for Astro, Vite, React, and Next.js.",
29+
}),
30+
},
31+
],
832
social: [
933
{
1034
icon: "github",

www/public/robots.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
User-agent: *
2+
Allow: /
3+
4+
Sitemap: https://simple-stack.dev/sitemap-index.xml

www/src/content/docs/form/client.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Add client validation
3-
description: Add client validation to your forms
2+
title: Add Client Validation - Simple Form
3+
description: Add client-side form validation to Astro apps using the "reward early, punish late" UX pattern. Generate accessible form components with the simple-form CLI.
44
sidebar:
55
order: 3
66
---

www/src/content/docs/form/parse.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Parse form requests
3-
description: Validate forms server-side
2+
title: Parse Form Requests - Simple Form
3+
description: Validate and parse form submissions server-side using Zod schemas. Supports Astro frontmatter helpers, named forms, and the generic validateForm API.
44
sidebar:
55
order: 2
66
---

www/src/content/docs/index.mdx

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,44 @@
11
---
2-
title: Simple stack 🌱
3-
description: A suite of tools built for Astro to simplify your workflow.
2+
title: Simple Stack - Simple Tools for Web Development
3+
description: A collection of simple, focused tools for web development. Includes a reactive store, scoped IDs, and DOM querying for Astro, Vite, React, and Next.js.
44
tableOfContents: false
55
head:
66
- tag: title
7-
content: Simple stack 🌱
7+
content: Simple Stack - Simple Tools for Web Development | Astro, React & Next.js
8+
- tag: script
9+
attrs:
10+
type: application/ld+json
11+
content: |
12+
{
13+
"@context": "https://schema.org",
14+
"@type": "FAQPage",
15+
"mainEntity": [
16+
{
17+
"@type": "Question",
18+
"name": "What is Simple Stack?",
19+
"acceptedAnswer": {
20+
"@type": "Answer",
21+
"text": "Simple Stack is a collection of focused web development tools built by Ben Holmes. It includes Simple Store (reactive state management), Simple Scope (scoped IDs via a Vite plugin), and Simple Query (DOM querying for Astro components). Each tool solves a single use case without unnecessary features."
22+
}
23+
},
24+
{
25+
"@type": "Question",
26+
"name": "What frameworks does Simple Stack support?",
27+
"acceptedAnswer": {
28+
"@type": "Answer",
29+
"text": "Simple Stack tools support multiple frameworks. Simple Store works with React (Vite and Next.js). Simple Scope is a Vite plugin compatible with Astro, Nuxt, SvelteKit, and any Vite-based framework. Simple Query is an Astro integration for DOM querying."
30+
}
31+
},
32+
{
33+
"@type": "Question",
34+
"name": "How do I install Simple Stack packages?",
35+
"acceptedAnswer": {
36+
"@type": "Answer",
37+
"text": "Each Simple Stack package is installed independently via npm. For example: npm i @simplestack/store for the reactive store, npm i vite-plugin-simple-scope for scoped IDs, or astro add @simplestack/query for the Astro DOM querying integration."
38+
}
39+
}
40+
]
41+
}
842
---
943

1044
A collection of tools I've built to **make web development simpler.**

www/src/content/docs/query.mdx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
11
---
2-
title: 💰 Simple Query
3-
description: A simple library to query the DOM from your Astro components.
2+
title: Simple Query - DOM Querying for Astro Components
3+
description: A simple Astro integration for querying the DOM from your components. Includes scoped selectors, signal-based state management, and server data passing with zero boilerplate.
4+
head:
5+
- tag: script
6+
attrs:
7+
type: application/ld+json
8+
content: |
9+
{
10+
"@context": "https://schema.org",
11+
"@type": "SoftwareSourceCode",
12+
"name": "@simplestack/query",
13+
"description": "A simple Astro integration for querying the DOM from your components with scoped selectors and signal-based state management.",
14+
"codeRepository": "https://github.com/bholmesdev/simplestack-query",
15+
"programmingLanguage": "TypeScript",
16+
"runtimePlatform": "Node.js",
17+
"author": {
18+
"@type": "Person",
19+
"name": "Ben Holmes",
20+
"url": "https://bholmes.dev"
21+
}
22+
}
423
---
524

625
import { Tabs, TabItem, LinkCard } from '@astrojs/starlight/components';

www/src/content/docs/scope.mdx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
11
---
2-
title: 🔎 Simple scope
3-
description: Get a scoped ID for whatever file you're in. Resolved at build-time with zero client JS.
2+
title: Simple Scope - Scoped IDs for Vite Projects
3+
description: A Vite plugin that generates scoped IDs for any file at build-time with zero client JS. Works with Astro, Nuxt, SvelteKit, and any Vite-based framework.
4+
head:
5+
- tag: script
6+
attrs:
7+
type: application/ld+json
8+
content: |
9+
{
10+
"@context": "https://schema.org",
11+
"@type": "SoftwareSourceCode",
12+
"name": "vite-plugin-simple-scope",
13+
"description": "A Vite plugin that generates scoped IDs for any file at build-time with zero client JS. Compatible with Astro, Nuxt, SvelteKit, and any Vite-based framework.",
14+
"codeRepository": "https://github.com/bholmesdev/simplestack-scope",
15+
"programmingLanguage": "TypeScript",
16+
"runtimePlatform": "Node.js",
17+
"author": {
18+
"@type": "Person",
19+
"name": "Ben Holmes",
20+
"url": "https://bholmes.dev"
21+
}
22+
}
423
---
524

625
import { LinkCard } from '@astrojs/starlight/components';

www/src/content/docs/store.mdx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,28 @@
11
---
2-
title: 💾 Simple store
3-
description: A reactive store that combines the simplicity of signals with the power of "selectors" you'd find in Zustand or Redux.
2+
title: Simple Store - Reactive State Management for React
3+
description: A reactive store combining the simplicity of signals with the power of selectors from Zustand or Redux. Works with React, Vite, and Next.js. Supports sub-stores, middleware, and TypeScript.
44
sidebar:
55
label: Get started
66
order: 1
7+
head:
8+
- tag: script
9+
attrs:
10+
type: application/ld+json
11+
content: |
12+
{
13+
"@context": "https://schema.org",
14+
"@type": "SoftwareSourceCode",
15+
"name": "@simplestack/store",
16+
"description": "A reactive store that combines the simplicity of signals with the power of selectors from Zustand or Redux. Works with React, Vite, and Next.js.",
17+
"codeRepository": "https://github.com/bholmesdev/simplestack-store",
18+
"programmingLanguage": "TypeScript",
19+
"runtimePlatform": "Node.js",
20+
"author": {
21+
"@type": "Person",
22+
"name": "Ben Holmes",
23+
"url": "https://bholmes.dev"
24+
}
25+
}
726
---
827

928
import { LinkCard, Tabs, TabItem } from '@astrojs/starlight/components';

0 commit comments

Comments
 (0)