Skip to content

Commit 4f93a2c

Browse files
bholmesdevoz-agent
andcommitted
feat(www): SEO & AEO audit — sitemap, robots.txt, structured data, improved metadata
- Add @astrojs/sitemap integration and site property to astro.config.mjs - Create public/robots.txt with crawl directives and sitemap reference - Add SoftwareSourceCode JSON-LD structured data to homepage, store, scope, and query pages - Improve meta descriptions across all pages (120-160 chars with keywords) - Remove redundant head title override on homepage - Add AEO-friendly lead-in paragraph on homepage for AI engine extraction - Add title attribute to video element in stream.md for accessibility - Improve form page descriptions for better search relevance Co-Authored-By: Oz <oz-agent@warp.dev>
1 parent 70cb101 commit 4f93a2c

12 files changed

Lines changed: 115 additions & 22 deletions

File tree

pnpm-lock.yaml

Lines changed: 6 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

www/astro.config.mjs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
import sitemap from "@astrojs/sitemap";
12
import starlight from "@astrojs/starlight";
23
import { defineConfig } from "astro/config";
34

5+
// TODO: Replace with your production URL
46
export default defineConfig({
7+
site: "https://simple-stack.dev",
58
integrations: [
69
starlight({
710
title: "Simple Stack 🌱",
@@ -44,5 +47,6 @@ export default defineConfig({
4447
"./src/styles/custom.css",
4548
],
4649
}),
50+
sitemap(),
4751
],
4852
});

www/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
},
1818
"dependencies": {
1919
"@astrojs/check": "^0.9.6",
20+
"@astrojs/sitemap": "^3.7.0",
2021
"@astrojs/starlight": "^0.37.1",
2122
"@fontsource/atkinson-hyperlegible": "^5.0.18",
2223
"astro": "^5.16.6",

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
3+
description: "Generate accessible client-validated form components using Simple Form's CLI with the reward-early-punish-late validation pattern for React and Astro."
44
sidebar:
55
order: 3
66
---

www/src/content/docs/form/index.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
2-
title: Simple form
3-
description: The simple way to validate forms in your fullstack app.
2+
title: Simple Form
3+
description: "Simple Form is a deprecated Astro integration for Zod-based form validation with automatic input prop generation, server-side parsing, and optional client-side validation."
44
sidebar:
55
label: Get started
66
order: 1

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
3+
description: "Server-side form validation in Astro using Simple Form's validateForm() helper and Astro.locals.form API for parsing and validating POST requests with Zod schemas."
44
sidebar:
55
order: 2
66
---

www/src/content/docs/index.mdx

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,31 @@
11
---
2-
title: Simple stack 🌱
3-
description: A suite of tools built for Astro to simplify your workflow.
2+
title: Simple Stack
3+
description: A collection of lightweight Astro tools — reactive stores, scoped IDs, and DOM querying — built to simplify common web development patterns without unnecessary complexity.
44
tableOfContents: false
55
head:
6-
- tag: title
7-
content: Simple stack 🌱
6+
- tag: script
7+
attrs:
8+
type: application/ld+json
9+
content: |
10+
{
11+
"@context": "https://schema.org",
12+
"@type": "SoftwareSourceCode",
13+
"name": "Simple Stack",
14+
"description": "A collection of lightweight Astro tools — reactive stores, scoped IDs, and DOM querying — built to simplify common web development patterns.",
15+
"url": "https://simple-stack.dev",
16+
"codeRepository": "https://github.com/bholmesdev/simple-stack",
17+
"programmingLanguage": "TypeScript",
18+
"runtimePlatform": "Astro",
19+
"author": {
20+
"@type": "Person",
21+
"name": "Ben Holmes",
22+
"url": "https://github.com/bholmesdev"
23+
},
24+
"license": "https://opensource.org/licenses/MIT"
25+
}
826
---
927

10-
A collection of tools I've built to **make web development simpler.**
28+
Simple Stack is a collection of lightweight tools for Astro that each solve a focused use case without unnecessary features. Packages include a reactive store with selectors, a build-time scoped ID generator, and a DOM querying utility for Astro components.
1129

1230
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.
1331

www/src/content/docs/query.mdx

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
11
---
22
title: 💰 Simple Query
3-
description: A simple library to query the DOM from your Astro components.
3+
description: "Simple Query is an Astro integration for scoped DOM querying with automatic element targeting, signal-based reactivity, and built-in cleanup for view transitions."
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": "Simple Query",
13+
"description": "An Astro integration for scoped DOM querying with automatic element targeting, signal-based reactivity via signal-polyfill, and built-in cleanup for view transitions.",
14+
"url": "https://simple-stack.dev/query",
15+
"codeRepository": "https://github.com/bholmesdev/simplestack-query",
16+
"programmingLanguage": "TypeScript",
17+
"runtimePlatform": "Astro",
18+
"author": {
19+
"@type": "Person",
20+
"name": "Ben Holmes",
21+
"url": "https://github.com/bholmesdev"
22+
},
23+
"license": "https://opensource.org/licenses/MIT"
24+
}
425
---
526

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

www/src/content/docs/scope.mdx

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
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
3+
description: "Simple Scope is a Vite plugin that generates deterministic scoped IDs at build-time with zero client JavaScript. 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": "Simple Scope",
13+
"description": "A Vite plugin that generates deterministic scoped IDs at build-time with zero client JavaScript. Compatible with Astro, Nuxt, SvelteKit, and any Vite-based framework.",
14+
"url": "https://simple-stack.dev/scope",
15+
"codeRepository": "https://github.com/bholmesdev/simplestack-scope",
16+
"programmingLanguage": "TypeScript",
17+
"runtimePlatform": "Vite",
18+
"author": {
19+
"@type": "Person",
20+
"name": "Ben Holmes",
21+
"url": "https://github.com/bholmesdev"
22+
},
23+
"license": "https://opensource.org/licenses/MIT"
24+
}
425
---
526

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

0 commit comments

Comments
 (0)