Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions www/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
4 changes: 4 additions & 0 deletions www/public/robots.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
User-agent: *
Allow: /

Sitemap: https://simple-stack.dev/sitemap-index.xml
4 changes: 2 additions & 2 deletions www/src/content/docs/form/client.md
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
4 changes: 2 additions & 2 deletions www/src/content/docs/form/parse.md
Original file line number Diff line number Diff line change
@@ -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
---
Expand Down
40 changes: 37 additions & 3 deletions www/src/content/docs/index.mdx
Original file line number Diff line number Diff line change
@@ -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.**
Expand Down
23 changes: 21 additions & 2 deletions www/src/content/docs/query.mdx
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
23 changes: 21 additions & 2 deletions www/src/content/docs/scope.mdx
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
23 changes: 21 additions & 2 deletions www/src/content/docs/store.mdx
Original file line number Diff line number Diff line change
@@ -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';
Expand Down
Loading