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
9 changes: 6 additions & 3 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions www/astro.config.mjs
Original file line number Diff line number Diff line change
@@ -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 🌱",
Expand Down Expand Up @@ -44,5 +47,6 @@ export default defineConfig({
"./src/styles/custom.css",
],
}),
sitemap(),
],
});
1 change: 1 addition & 0 deletions www/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
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
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
---
Expand Down
4 changes: 2 additions & 2 deletions www/src/content/docs/form/index.mdx
Original file line number Diff line number Diff line change
@@ -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
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
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
---
Expand Down
28 changes: 23 additions & 5 deletions www/src/content/docs/index.mdx
Original file line number Diff line number Diff line change
@@ -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",?target=https://github.com
"programmingLanguage": "TypeScript",
"runtimePlatform": "Astro",
"author": {
"@type": "Person",
"name": "Ben Holmes",
"url": "https://github.com/bholmesdev"?target=https://github.com
},
"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.

Expand Down
23 changes: 22 additions & 1 deletion www/src/content/docs/query.mdx
Original file line number Diff line number Diff line change
@@ -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",?target=https://github.com
"programmingLanguage": "TypeScript",
"runtimePlatform": "Astro",
"author": {
"@type": "Person",
"name": "Ben Holmes",
"url": "https://github.com/bholmesdev"?target=https://github.com
},
"license": "https://opensource.org/licenses/MIT"
}
---

import { Tabs, TabItem, LinkCard } from '@astrojs/starlight/components';
Expand Down
25 changes: 23 additions & 2 deletions www/src/content/docs/scope.mdx
Original file line number Diff line number Diff line change
@@ -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",?target=https://github.com
"programmingLanguage": "TypeScript",
"runtimePlatform": "Vite",
"author": {
"@type": "Person",
"name": "Ben Holmes",
"url": "https://github.com/bholmesdev"?target=https://github.com
},
"license": "https://opensource.org/licenses/MIT"
}
---

import { LinkCard } from '@astrojs/starlight/components';
Expand Down
25 changes: 23 additions & 2 deletions www/src/content/docs/store.mdx
Original file line number Diff line number Diff line change
@@ -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",?target=https://github.com
"programmingLanguage": "TypeScript",
"runtimePlatform": "Node.js",
"author": {
"@type": "Person",
"name": "Ben Holmes",
"url": "https://github.com/bholmesdev"?target=https://github.com
},
"license": "https://opensource.org/licenses/MIT"
}
---

import { LinkCard, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
6 changes: 3 additions & 3 deletions www/src/content/docs/stream.md
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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 ™️

<video controls width="100%" style="aspect-ratio:1.65/1" src="/assets/simple-stream-intro.mov"></video>
<video controls width="100%" style="aspect-ratio:1.65/1" src="/assets/simple-stream-intro.mov" title="Simple Stream demo: Astro component suspense with fallback content and out-of-order HTML streaming"></video>

```astro
---
Expand Down
Loading