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
1 change: 1 addition & 0 deletions www/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import starlight from "@astrojs/starlight";
import { defineConfig } from "astro/config";

export default defineConfig({
site: "https://simple-stack.dev",
integrations: [
starlight({
title: "Simple Stack 🌱",
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
7 changes: 6 additions & 1 deletion www/src/content/docs/form/client.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
---
title: Add client validation
title: Add client validation
description: Add client validation to your forms
sidebar:
order: 3
head:
- tag: meta
attrs:
name: robots
content: noindex, follow
---

:::caution
Expand Down
7 changes: 6 additions & 1 deletion www/src/content/docs/form/index.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
---
title: Simple form
description: The simple way to validate forms in your fullstack app.
description: The simple way to validate forms in your fullstack app.
sidebar:
label: Get started
order: 1
head:
- tag: meta
attrs:
name: robots
content: noindex, follow
---

import { Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
7 changes: 6 additions & 1 deletion www/src/content/docs/form/parse.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
---
title: Parse form requests
title: Parse form requests
description: Validate forms server-side
sidebar:
order: 2
head:
- tag: meta
attrs:
name: robots
content: noindex, follow
---

:::caution
Expand Down
42 changes: 37 additions & 5 deletions www/src/content/docs/index.mdx
Original file line number Diff line number Diff line change
@@ -1,15 +1,47 @@
---
title: Simple stack 🌱
description: A suite of tools built for Astro to simplify your workflow.
title: Simple Stack – Lightweight Tools for Astro & Vite
description: Simple Stack is a collection of lightweight JavaScript libraries for Astro and Vite, including a reactive store, scoped IDs, and DOM query utilities.
tableOfContents: false
head:
- tag: title
content: Simple stack 🌱
content: Simple Stack – Lightweight Tools for Astro & Vite
- tag: meta
attrs:
property: og:title
content: Simple Stack – Lightweight Tools for Astro & Vite
- tag: meta
attrs:
property: og:description
content: Simple Stack is a collection of lightweight JavaScript libraries for Astro and Vite, including a reactive store, scoped IDs, and DOM query utilities.
- tag: meta
attrs:
property: og:type
content: website
- tag: meta
attrs:
property: og:url
content: https://simple-stack.dev
- tag: meta
attrs:
name: twitter:card
content: summary
- tag: meta
attrs:
name: twitter:title
content: Simple Stack – Lightweight Tools for Astro & Vite
- tag: meta
attrs:
name: twitter:description
content: Lightweight JavaScript libraries for Astro and Vite – reactive store, scoped IDs, and DOM query utilities.
- tag: script
attrs:
type: application/ld+json
content: '{"@context":"https://schema.org","@type":"SoftwareSourceCode","name":"Simple Stack","description":"A collection of lightweight JavaScript libraries for Astro and Vite, including a reactive store, scoped IDs, and DOM query utilities.","url":"https://simple-stack.dev","codeRepository":"https://github.com/bholmesdev/simple-stack","programmingLanguage":["TypeScript","JavaScript"],"author":{"@type":"Person","name":"Ben Holmes","url":"https://bholmes.dev"}}'
---

A collection of tools I've built to **make web development simpler.**
Simple Stack is a collection of lightweight JavaScript libraries built for Astro and Vite that solve common use cases without unnecessary complexity. Each package follows a common theme: do one thing well with minimal API surface.

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.
Below you'll find a reactive store with selector support, a build-time scoped ID generator, and a DOM query utility for Astro components.

import { CardGrid, Card, LinkCard } from '@astrojs/starlight/components';

Expand Down
13 changes: 11 additions & 2 deletions www/src/content/docs/query.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
---
title: 💰 Simple Query
description: A simple library to query the DOM from your Astro components.
title: 💰 Simple Query – DOM Query Utility for Astro Components
description: "Simple Query is a lightweight DOM query library for Astro that provides scoped element selection, signal-based state management, and automatic cleanup for view transitions."
head:
- tag: meta
attrs:
property: og:title
content: Simple Query – DOM Query Utility for Astro Components
- tag: meta
attrs:
property: og:description
content: Lightweight DOM query library for Astro with scoped selectors, signal-based state, and view transition cleanup.
---

import { Tabs, TabItem, LinkCard } from '@astrojs/starlight/components';
Expand Down
13 changes: 11 additions & 2 deletions www/src/content/docs/scope.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
---
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 – Build-Time Scoped IDs for Vite
description: "Simple Scope is a Vite plugin that generates scoped IDs at build time with zero client JavaScript. Works with Astro, Nuxt, SvelteKit, and any Vite-based framework."
head:
- tag: meta
attrs:
property: og:title
content: Simple Scope – Build-Time Scoped IDs for Vite
- tag: meta
attrs:
property: og:description
content: Vite plugin that generates scoped IDs at build time with zero client JS. Works with Astro, Nuxt, and SvelteKit.
---

import { LinkCard } from '@astrojs/starlight/components';
Expand Down
13 changes: 11 additions & 2 deletions www/src/content/docs/store.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
---
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: "Simple Store is a lightweight reactive store for React that combines signal-like simplicity with Zustand-style selectors. Supports nested sub-stores, middleware, and Next.js SSR."
sidebar:
label: Get started
order: 1
head:
- tag: meta
attrs:
property: og:title
content: Simple Store – Reactive State Management for React
- tag: meta
attrs:
property: og:description
content: Lightweight reactive store for React with signal-like API, nested selectors, middleware support, and Next.js compatibility.
---

import { LinkCard, Tabs, TabItem } from '@astrojs/starlight/components';
Expand Down
5 changes: 5 additions & 0 deletions www/src/content/docs/stream.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
---
title: Simple stream 🌊
description: Suspend Astro components with fallback content. Like React Server Components, but Just HTML ™️
head:
- tag: meta
attrs:
name: robots
content: noindex, follow
---

:::caution
Expand Down
Loading