You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Add site URL to astro.config.mjs (enables sitemap, canonical URLs)
- Add Organization + WebSite JSON-LD structured data site-wide
- Add Open Graph and Twitter Card meta tags site-wide
- Create public/robots.txt with sitemap reference
- Improve homepage <title> (keyword-rich, no emoji) and meta description
- Add answer-first lead paragraphs for AEO on all package pages
- Improve meta descriptions on all 8 content pages (120-155 chars, specific)
- Add FAQPage JSON-LD schema to store and query pages
- Build verified: sitemap auto-generates with all pages
Co-Authored-By: Oz <oz-agent@warp.dev>
Copy file name to clipboardExpand all lines: www/src/content/docs/form/client.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Add client validation
3
-
description: Add client validation to your forms
3
+
description: "Generate client-validated form components with Simple Form's CLI using the reward-early-punish-late pattern for accessible, framework-agnostic validation."
Copy file name to clipboardExpand all lines: www/src/content/docs/form/index.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Simple form
3
-
description: The simple way to validate forms in your fullstack app.
3
+
description: "Simple Form (simple-stack-form) is a deprecated Astro integration for Zod-based form validation. Use Astro Form Actions instead for server-side form handling."
Copy file name to clipboardExpand all lines: www/src/content/docs/form/parse.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Parse form requests
3
-
description: Validate forms server-side
3
+
description: "Server-side form validation with Simple Form using validateForm() and Astro.locals.form helpers. Parse and validate FormData with Zod schemas."
Copy file name to clipboardExpand all lines: www/src/content/docs/index.mdx
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,15 @@
1
1
---
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, zero-config developer tools for Astro and Vite. Includes a reactive store, scoped IDs, and DOM query utilities.
4
4
tableOfContents: false
5
5
head:
6
6
- tag: title
7
-
content: Simple stack 🌱
7
+
content: Simple Stack — Lightweight Developer Tools for Astro & Vite
8
8
---
9
9
10
-
A collection of tools I've built to **make web development simpler.**
10
+
Simple Stack is a collection of lightweight developer tools for Astro and Vite. Each package solves a single, focused use case with minimal configuration and zero unnecessary features — a reactive store with selectors, build-time scoped IDs, and a DOM query library for Astro components.
11
11
12
-
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.
12
+
They follow a common theme: solve a simple use case without too many features.
Copy file name to clipboardExpand all lines: www/src/content/docs/query.mdx
+29-2Lines changed: 29 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,40 @@
1
1
---
2
2
title: 💰 Simple Query
3
-
description: A simple library to query the DOM from your Astro components.
3
+
description: "Simple Query (@simplestack/query) is an Astro integration for querying DOM elements with scoped data-target selectors, signal-based reactivity, and server data passing."
4
+
head:
5
+
- tag: script
6
+
attrs:
7
+
type: application/ld+json
8
+
content: |
9
+
{
10
+
"@context": "https://schema.org",
11
+
"@type": "FAQPage",
12
+
"mainEntity": [
13
+
{
14
+
"@type": "Question",
15
+
"name": "How do I install Simple Query in Astro?",
16
+
"acceptedAnswer": {
17
+
"@type": "Answer",
18
+
"text": "Run 'astro add @simplestack/query' to install and configure the integration automatically. It sets up RootElement, scoped data-target attributes, and TypeScript types."
19
+
}
20
+
},
21
+
{
22
+
"@type": "Question",
23
+
"name": "How does Simple Query scope DOM selectors?",
24
+
"acceptedAnswer": {
25
+
"@type": "Answer",
26
+
"text": "Simple Query automatically scopes data-target attribute values to prevent conflicts between components. Use RootElement.ready() with the $() function to select elements by their data-target name."
A simple library to query the DOM from your Astro components.
37
+
Simple Query (`@simplestack/query`) is an Astro integration that provides a lightweight, scoped way to query DOM elements from Astro components. It uses `data-target` attributes with automatic scoping to prevent selector conflicts, and supports signal-based reactivity via the TC39 Signals proposal polyfill.
Copy file name to clipboardExpand all lines: www/src/content/docs/scope.mdx
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,13 +1,13 @@
1
1
---
2
2
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: "Simple Scope (vite-plugin-simple-scope) is a Vite plugin that generates unique, deterministic scoped IDs per file at buildtime with zero client-side JavaScript."
Get a scoped ID for whatever file you're in. Resolved at build-time with zero client JS.
10
+
Simple Scope (`vite-plugin-simple-scope`) is a Vite plugin that generates unique, deterministic scoped IDs for any file at buildtime — with zero client-side JavaScript. It works with any Vite-based framework (Astro, Nuxt, SvelteKit) and produces the same ID on both server and client, preventing hydration mismatches.
Copy file name to clipboardExpand all lines: www/src/content/docs/store.mdx
+37-2Lines changed: 37 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,51 @@
1
1
---
2
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.
3
+
description: "Simple Store (@simplestack/store) is a lightweight reactive state library for React, Next.js, and Vite. Combines signal-like simplicity with Zustand-style selectors and nested sub-stores."
4
4
sidebar:
5
5
label: Get started
6
6
order: 1
7
+
head:
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": "How do I install Simple Store?",
19
+
"acceptedAnswer": {
20
+
"@type": "Answer",
21
+
"text": "Install from npm with: npm i @simplestack/store. Then import the store function: import { store } from '@simplestack/store'."
22
+
}
23
+
},
24
+
{
25
+
"@type": "Question",
26
+
"name": "Does Simple Store work with Next.js?",
27
+
"acceptedAnswer": {
28
+
"@type": "Answer",
29
+
"text": "Yes. Simple Store is compatible with Next.js App Router. Stores initialize once per server request and client components hydrate with the initial value. Any component using useStoreValue must be a 'use client' component."
30
+
}
31
+
},
32
+
{
33
+
"@type": "Question",
34
+
"name": "What are sub-stores in Simple Store?",
35
+
"acceptedAnswer": {
36
+
"@type": "Answer",
37
+
"text": "Sub-stores let you operate on specific parts of a nested store by calling select('key') on the parent. Changes to a sub-store automatically update the parent, and vice versa."
A reactive store that combines the simplicity of signals with the power of "selectors" you'd find in Zustand or Redux.
48
+
Simple Store (`@simplestack/store`) is a lightweight reactive state management library for React, Next.js, and Vite applications. It combines the simplicity of signals with the power of "selectors" you'd find in Zustand or Redux — letting you create stores, select nested values with `select()`, and subscribe to fine-grained updates.
Copy file name to clipboardExpand all lines: www/src/content/docs/stream.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: Simple stream 🌊
3
-
description: Suspend Astro components with fallback content. Like React Server Components, but Just HTML ™️
3
+
description: "Simple Stream (simple-stack-stream) is a deprecated Astro integration for suspending components with fallback content. Use Astro Server Islands instead."
0 commit comments