diff --git a/www/astro.config.mjs b/www/astro.config.mjs index 0d7e4c1..bd81076 100644 --- a/www/astro.config.mjs +++ b/www/astro.config.mjs @@ -2,9 +2,33 @@ import starlight from "@astrojs/starlight"; import { defineConfig } from "astro/config"; export default defineConfig({ + site: "https://simple-stack.dev", integrations: [ starlight({ title: "Simple Stack 🌱", + head: [ + { + tag: "script", + attrs: { type: "application/ld+json" }, + content: JSON.stringify({ + "@context": "https://schema.org", + "@type": "Organization", + name: "Simple Stack", + url: "https://simple-stack.dev", + logo: "https://simple-stack.dev/favicon.svg", + sameAs: [ + "https://github.com/bholmesdev/simple-stack", + ], + founder: { + "@type": "Person", + name: "Ben Holmes", + url: "https://bholmes.dev", + }, + description: + "A collection of simple, focused tools for web development built for Astro, Vite, React, and Next.js.", + }), + }, + ], social: [ { icon: "github", 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..8f6fa40 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 - Simple Form +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. sidebar: order: 3 --- diff --git a/www/src/content/docs/form/parse.md b/www/src/content/docs/form/parse.md index 35116f9..1bff6ae 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 - Simple Form +description: Validate and parse form submissions server-side using Zod schemas. Supports Astro frontmatter helpers, named forms, and the generic validateForm API. sidebar: order: 2 --- diff --git a/www/src/content/docs/index.mdx b/www/src/content/docs/index.mdx index 1e6d15c..7f63a16 100644 --- a/www/src/content/docs/index.mdx +++ b/www/src/content/docs/index.mdx @@ -1,10 +1,44 @@ --- -title: Simple stack 🌱 -description: A suite of tools built for Astro to simplify your workflow. +title: Simple Stack - Simple Tools for Web Development +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. tableOfContents: false head: - tag: title - content: Simple stack 🌱 + content: Simple Stack - Simple Tools for Web Development | Astro, React & Next.js + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "FAQPage", + "mainEntity": [ + { + "@type": "Question", + "name": "What is Simple Stack?", + "acceptedAnswer": { + "@type": "Answer", + "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." + } + }, + { + "@type": "Question", + "name": "What frameworks does Simple Stack support?", + "acceptedAnswer": { + "@type": "Answer", + "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." + } + }, + { + "@type": "Question", + "name": "How do I install Simple Stack packages?", + "acceptedAnswer": { + "@type": "Answer", + "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." + } + } + ] + } --- A collection of tools I've built to **make web development simpler.** diff --git a/www/src/content/docs/query.mdx b/www/src/content/docs/query.mdx index 5549582..15ffc97 100644 --- a/www/src/content/docs/query.mdx +++ b/www/src/content/docs/query.mdx @@ -1,6 +1,25 @@ --- -title: 💰 Simple Query -description: A simple library to query the DOM from your Astro components. +title: Simple Query - DOM Querying for Astro Components +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. +head: + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "SoftwareSourceCode", + "name": "@simplestack/query", + "description": "A simple Astro integration for querying the DOM from your components with scoped selectors and signal-based state management.", + "codeRepository": "https://github.com/bholmesdev/simplestack-query", + "programmingLanguage": "TypeScript", + "runtimePlatform": "Node.js", + "author": { + "@type": "Person", + "name": "Ben Holmes", + "url": "https://bholmes.dev" + } + } --- 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..4db8781 100644 --- a/www/src/content/docs/scope.mdx +++ b/www/src/content/docs/scope.mdx @@ -1,6 +1,25 @@ --- -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 - Scoped IDs for Vite Projects +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. +head: + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "SoftwareSourceCode", + "name": "vite-plugin-simple-scope", + "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.", + "codeRepository": "https://github.com/bholmesdev/simplestack-scope", + "programmingLanguage": "TypeScript", + "runtimePlatform": "Node.js", + "author": { + "@type": "Person", + "name": "Ben Holmes", + "url": "https://bholmes.dev" + } + } --- import { LinkCard } from '@astrojs/starlight/components'; diff --git a/www/src/content/docs/store.mdx b/www/src/content/docs/store.mdx index cda86d1..3e50f52 100644 --- a/www/src/content/docs/store.mdx +++ b/www/src/content/docs/store.mdx @@ -1,9 +1,28 @@ --- -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 - Reactive State Management for React +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. sidebar: label: Get started order: 1 +head: + - tag: script + attrs: + type: application/ld+json + content: | + { + "@context": "https://schema.org", + "@type": "SoftwareSourceCode", + "name": "@simplestack/store", + "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.", + "codeRepository": "https://github.com/bholmesdev/simplestack-store", + "programmingLanguage": "TypeScript", + "runtimePlatform": "Node.js", + "author": { + "@type": "Person", + "name": "Ben Holmes", + "url": "https://bholmes.dev" + } + } --- import { LinkCard, Tabs, TabItem } from '@astrojs/starlight/components';