Skip to content

Commit b94413d

Browse files
bholmesdevoz-agent
andcommitted
feat(www): SEO/AEO audit — add site config, robots.txt, structured data, and improved meta
- Add site URL to astro.config.mjs enabling canonical URLs and sitemap generation - Add Organization JSON-LD schema site-wide via Starlight head config - Create robots.txt with sitemap reference - Improve homepage: descriptive title, richer description, WebSite + FAQPage JSON-LD - Add OG meta tags on homepage - Override <title> on Store, Scope, Query pages to remove emojis for cleaner SERPs - Improve meta descriptions on all active package pages Co-Authored-By: Oz <oz-agent@warp.dev>
1 parent 70cb101 commit b94413d

6 files changed

Lines changed: 93 additions & 6 deletions

File tree

www/astro.config.mjs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ 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 🌱",
@@ -13,6 +14,22 @@ export default defineConfig({
1314
},
1415
{ icon: "discord", label: "Discord", href: "https://wtw.dev/chat" },
1516
],
17+
head: [
18+
{
19+
tag: "script",
20+
attrs: { type: "application/ld+json" },
21+
content: JSON.stringify({
22+
"@context": "https://schema.org",
23+
"@type": "Organization",
24+
name: "Simple Stack",
25+
url: "https://simple-stack.dev",
26+
logo: "https://simple-stack.dev/favicon.svg",
27+
sameAs: [
28+
"https://github.com/bholmesdev/simple-stack",
29+
],
30+
}),
31+
},
32+
],
1633
sidebar: [
1734
{
1835
label: "💾 Store",

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/index.mdx

Lines changed: 60 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,67 @@
11
---
2-
title: Simple stack 🌱
3-
description: A suite of tools built for Astro to simplify your workflow.
2+
title: Simple Stack
3+
description: Simple Stack is a collection of lightweight tools for Astro and Vite — including a reactive store, scoped IDs, and DOM query helpers — built to simplify web development.
44
tableOfContents: false
55
head:
66
- tag: title
7-
content: Simple stack 🌱
7+
content: "Simple Stack — Reactive Store, Scoped IDs & DOM Queries for Astro"
8+
- tag: meta
9+
attrs:
10+
property: "og:title"
11+
content: "Simple Stack — Reactive Store, Scoped IDs & DOM Queries for Astro"
12+
- tag: meta
13+
attrs:
14+
property: "og:description"
15+
content: "Simple Stack is a collection of lightweight tools for Astro and Vite — including a reactive store, scoped IDs, and DOM query helpers."
16+
- tag: meta
17+
attrs:
18+
property: "og:type"
19+
content: "website"
20+
- tag: script
21+
attrs:
22+
type: "application/ld+json"
23+
content: |
24+
{
25+
"@context": "https://schema.org",
26+
"@type": "WebSite",
27+
"name": "Simple Stack",
28+
"url": "https://simple-stack.dev",
29+
"description": "A collection of lightweight tools for Astro and Vite to simplify web development."
30+
}
31+
- tag: script
32+
attrs:
33+
type: "application/ld+json"
34+
content: |
35+
{
36+
"@context": "https://schema.org",
37+
"@type": "FAQPage",
38+
"mainEntity": [
39+
{
40+
"@type": "Question",
41+
"name": "What is Simple Store?",
42+
"acceptedAnswer": {
43+
"@type": "Answer",
44+
"text": "Simple Store is a reactive state management library that combines the simplicity of signals with the power of selectors found in Zustand or Redux. It supports nested sub-stores, React hooks, middleware, and Next.js SSR."
45+
}
46+
},
47+
{
48+
"@type": "Question",
49+
"name": "What is Simple Scope?",
50+
"acceptedAnswer": {
51+
"@type": "Answer",
52+
"text": "Simple Scope is a Vite plugin that generates scoped IDs for any file you are in, resolved at build time with zero client JavaScript. It is compatible with Astro, Nuxt, SvelteKit, and any Vite-based framework."
53+
}
54+
},
55+
{
56+
"@type": "Question",
57+
"name": "What is Simple Query?",
58+
"acceptedAnswer": {
59+
"@type": "Answer",
60+
"text": "Simple Query is an Astro integration that provides a simple way to query the DOM from Astro components using scoped data-target attributes and a lightweight ready() API with optional signal-based state management."
61+
}
62+
}
63+
]
64+
}
865
---
966

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

www/src/content/docs/query.mdx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
---
22
title: 💰 Simple Query
3-
description: A simple library to query the DOM from your Astro components.
3+
description: An Astro integration for querying the DOM from Astro components using scoped data-target attributes, with optional signal-based state management.
4+
head:
5+
- tag: title
6+
content: "Simple Query — DOM Queries and Scoped Selectors for Astro Components"
47
---
58

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

www/src/content/docs/scope.mdx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
---
22
title: 🔎 Simple scope
3-
description: Get a scoped ID for whatever file you're in. Resolved at build-time with zero client JS.
3+
description: A Vite plugin that generates scoped IDs for any file, resolved at build time with zero client JavaScript. Works with Astro, Nuxt, SvelteKit, and any Vite-based framework.
4+
head:
5+
- tag: title
6+
content: "Simple Scope — Scoped IDs for Vite at Build Time with Zero Client JS"
47
---
58

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

www/src/content/docs/store.mdx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
---
22
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.
3+
description: A reactive store that combines the simplicity of signals with the power of "selectors" you'd find in Zustand or Redux. Supports sub-stores, React hooks, middleware, and Next.js SSR.
44
sidebar:
55
label: Get started
66
order: 1
7+
head:
8+
- tag: title
9+
content: "Simple Store — Reactive State Management with Signals and Selectors"
710
---
811

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

0 commit comments

Comments
 (0)