diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5657af7..c3bf108 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -205,6 +205,9 @@ importers: '@astrojs/check': specifier: ^0.9.6 version: 0.9.6(typescript@5.5.4) + '@astrojs/sitemap': + specifier: ^3.7.0 + version: 3.7.0 '@astrojs/starlight': specifier: ^0.37.1 version: 0.37.1(astro@5.16.6) @@ -442,8 +445,8 @@ packages: - vite dev: false - /@astrojs/sitemap@3.6.0: - resolution: {integrity: sha512-4aHkvcOZBWJigRmMIAJwRQXBS+ayoP5z40OklTXYXhUDhwusz+DyDl+nSshY6y9DvkVEavwNcFO8FD81iGhXjg==} + /@astrojs/sitemap@3.7.0: + resolution: {integrity: sha512-+qxjUrz6Jcgh+D5VE1gKUJTA3pSthuPHe6Ao5JCxok794Lewx8hBFaWHtOnN0ntb2lfOf7gvOi9TefUswQ/ZVA==} dependencies: sitemap: 8.0.2 stream-replace-string: 2.0.0 @@ -471,7 +474,7 @@ packages: dependencies: '@astrojs/markdown-remark': 6.3.10 '@astrojs/mdx': 4.3.13(astro@5.16.6) - '@astrojs/sitemap': 3.6.0 + '@astrojs/sitemap': 3.7.0 '@pagefind/default-ui': 1.4.0 '@types/hast': 3.0.4 '@types/js-yaml': 4.0.9 diff --git a/www/astro.config.mjs b/www/astro.config.mjs index 0d7e4c1..f65b14f 100644 --- a/www/astro.config.mjs +++ b/www/astro.config.mjs @@ -1,7 +1,10 @@ +import sitemap from "@astrojs/sitemap"; import starlight from "@astrojs/starlight"; import { defineConfig } from "astro/config"; +// TODO: Replace with your production URL export default defineConfig({ + site: "https://simple-stack.dev", integrations: [ starlight({ title: "Simple Stack 🌱", @@ -44,5 +47,6 @@ export default defineConfig({ "./src/styles/custom.css", ], }), + sitemap(), ], }); 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..0e5ee8c 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: "Generate accessible client-validated form components using Simple Form's CLI with the reward-early-punish-late validation pattern for React and Astro." sidebar: order: 3 --- diff --git a/www/src/content/docs/form/index.mdx b/www/src/content/docs/form/index.mdx index 3e1654e..8fbdc83 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. +title: Simple Form +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." 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..d8f71e6 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: "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." sidebar: order: 2 --- diff --git a/www/src/content/docs/index.mdx b/www/src/content/docs/index.mdx index 1e6d15c..bb757d5 100644 --- a/www/src/content/docs/index.mdx +++ b/www/src/content/docs/index.mdx @@ -1,13 +1,31 @@ --- -title: Simple stack 🌱 -description: A suite of tools built for Astro to simplify your workflow. +title: Simple Stack +description: A collection of lightweight Astro tools — reactive stores, scoped IDs, and DOM querying — built to simplify common web development patterns without unnecessary complexity. tableOfContents: false head: - - tag: title - content: Simple stack 🌱 + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "SoftwareSourceCode", + "name": "Simple Stack", + "description": "A collection of lightweight Astro tools — reactive stores, scoped IDs, and DOM querying — built to simplify common web development patterns.", + "url": "https://simple-stack.dev", + "codeRepository": "https://github.com/bholmesdev/simple-stack", + "programmingLanguage": "TypeScript", + "runtimePlatform": "Astro", + "author": { + "@type": "Person", + "name": "Ben Holmes", + "url": "https://github.com/bholmesdev" + }, + "license": "https://opensource.org/licenses/MIT" + } --- -A collection of tools I've built to **make web development simpler.** +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. 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. diff --git a/www/src/content/docs/query.mdx b/www/src/content/docs/query.mdx index 5549582..03942b0 100644 --- a/www/src/content/docs/query.mdx +++ b/www/src/content/docs/query.mdx @@ -1,6 +1,27 @@ --- title: 💰 Simple Query -description: A simple library to query the DOM from your Astro components. +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." +head: + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "SoftwareSourceCode", + "name": "Simple Query", + "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.", + "url": "https://simple-stack.dev/query", + "codeRepository": "https://github.com/bholmesdev/simplestack-query", + "programmingLanguage": "TypeScript", + "runtimePlatform": "Astro", + "author": { + "@type": "Person", + "name": "Ben Holmes", + "url": "https://github.com/bholmesdev" + }, + "license": "https://opensource.org/licenses/MIT" + } --- 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..9f222e2 100644 --- a/www/src/content/docs/scope.mdx +++ b/www/src/content/docs/scope.mdx @@ -1,6 +1,27 @@ --- -title: 🔎 Simple scope -description: Get a scoped ID for whatever file you're in. Resolved at build-time with zero client JS. +title: 🔎 Simple Scope +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." +head: + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "SoftwareSourceCode", + "name": "Simple Scope", + "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.", + "url": "https://simple-stack.dev/scope", + "codeRepository": "https://github.com/bholmesdev/simplestack-scope", + "programmingLanguage": "TypeScript", + "runtimePlatform": "Vite", + "author": { + "@type": "Person", + "name": "Ben Holmes", + "url": "https://github.com/bholmesdev" + }, + "license": "https://opensource.org/licenses/MIT" + } --- import { LinkCard } from '@astrojs/starlight/components'; diff --git a/www/src/content/docs/store.mdx b/www/src/content/docs/store.mdx index cda86d1..722b5b1 100644 --- a/www/src/content/docs/store.mdx +++ b/www/src/content/docs/store.mdx @@ -1,9 +1,30 @@ --- -title: 💾 Simple store -description: A reactive store that combines the simplicity of signals with the power of "selectors" you'd find in Zustand or Redux. +title: 💾 Simple Store +description: "Simple Store is a lightweight reactive state library for React and Astro. It combines signal-like simplicity with Zustand-style selectors for fine-grained nested state updates." sidebar: label: Get started order: 1 +head: + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "SoftwareSourceCode", + "name": "Simple Store", + "description": "A lightweight reactive store for React and Astro that combines signal-like simplicity with Zustand-style selectors for fine-grained nested state updates.", + "url": "https://simple-stack.dev/store", + "codeRepository": "https://github.com/bholmesdev/simplestack-store", + "programmingLanguage": "TypeScript", + "runtimePlatform": "Node.js", + "author": { + "@type": "Person", + "name": "Ben Holmes", + "url": "https://github.com/bholmesdev" + }, + "license": "https://opensource.org/licenses/MIT" + } --- import { LinkCard, Tabs, TabItem } from '@astrojs/starlight/components'; diff --git a/www/src/content/docs/stream.md b/www/src/content/docs/stream.md index 5c734fb..5e34744 100644 --- a/www/src/content/docs/stream.md +++ b/www/src/content/docs/stream.md @@ -1,6 +1,6 @@ --- -title: Simple stream 🌊 -description: Suspend Astro components with fallback content. Like React Server Components, but Just HTML ™️ +title: Simple Stream 🌊 +description: "Simple Stream is a deprecated Astro integration that suspended components with fallback content, enabling out-of-order HTML streaming similar to React Server Components." --- :::caution @@ -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 ---