From c86505dfdc37b05eb2c591991211dd0da3aaae39 Mon Sep 17 00:00:00 2001
From: Alexander Karan
+ Rendering capabilities supported by each framework, their recommended + default approach, and bundler. +
+ +| Framework | +SPA | +MPA | +SSG | +Recommended | +Default Bundler | +Other Bundlers | +
|---|---|---|---|---|---|---|
| {framework.name} | +{framework.supportsSPA ? 'Y' : 'N'} | +{framework.supportsMPA ? 'Y' : 'N'} | +{framework.supportsSSG === undefined ? '?' : framework.supportsSSG ? 'Y' : 'N'} | +{framework.recommended} | +{framework.bundler} | +{framework.otherBundlers?.join(', ') || '-'} | +
diff --git a/packages/docs/src/content/config.ts b/packages/docs/src/content/config.ts
index a1febe3..b00548f 100644
--- a/packages/docs/src/content/config.ts
+++ b/packages/docs/src/content/config.ts
@@ -1,5 +1,19 @@
import { defineCollection, z } from 'astro:content'
+const frameworksCollection = defineCollection({
+ type: 'data',
+ schema: z.object({
+ name: z.string(),
+ package: z.string(),
+ supportsSPA: z.boolean(),
+ supportsMPA: z.boolean(),
+ supportsSSG: z.boolean().optional(),
+ recommended: z.string(),
+ bundler: z.string(),
+ otherBundlers: z.array(z.string()).optional(),
+ }),
+})
+
const devtimeCollection = defineCollection({
type: 'data',
schema: z.object({
@@ -37,6 +51,7 @@ const runtimeCollection = defineCollection({
})
export const collections = {
+ frameworks: frameworksCollection,
devtime: devtimeCollection,
runtime: runtimeCollection,
}
diff --git a/packages/docs/src/content/frameworks/astro.json b/packages/docs/src/content/frameworks/astro.json
new file mode 100644
index 0000000..2434d47
--- /dev/null
+++ b/packages/docs/src/content/frameworks/astro.json
@@ -0,0 +1,9 @@
+{
+ "name": "Astro",
+ "package": "starter-astro",
+ "supportsSPA": true,
+ "supportsMPA": true,
+ "supportsSSG": true,
+ "recommended": "MPA/SSG - static HTML by default, zero JS",
+ "bundler": "Vite"
+}
diff --git a/packages/docs/src/content/frameworks/next-js.json b/packages/docs/src/content/frameworks/next-js.json
new file mode 100644
index 0000000..59478ea
--- /dev/null
+++ b/packages/docs/src/content/frameworks/next-js.json
@@ -0,0 +1,10 @@
+{
+ "name": "Next.js",
+ "package": "starter-next-js",
+ "supportsSPA": true,
+ "supportsMPA": true,
+ "supportsSSG": true,
+ "recommended": "MPA",
+ "bundler": "Turbopack",
+ "otherBundlers": ["Webpack"]
+}
diff --git a/packages/docs/src/content/frameworks/nuxt.json b/packages/docs/src/content/frameworks/nuxt.json
new file mode 100644
index 0000000..69a1dd8
--- /dev/null
+++ b/packages/docs/src/content/frameworks/nuxt.json
@@ -0,0 +1,10 @@
+{
+ "name": "Nuxt",
+ "package": "starter-nuxt",
+ "supportsSPA": true,
+ "supportsMPA": true,
+ "supportsSSG": true,
+ "recommended": "MPA",
+ "bundler": "Vite",
+ "otherBundlers": ["Webpack", "Rspack"]
+}
diff --git a/packages/docs/src/content/frameworks/react-router.json b/packages/docs/src/content/frameworks/react-router.json
new file mode 100644
index 0000000..91931e8
--- /dev/null
+++ b/packages/docs/src/content/frameworks/react-router.json
@@ -0,0 +1,10 @@
+{
+ "name": "React Router",
+ "package": "starter-react-router",
+ "supportsSPA": true,
+ "supportsMPA": true,
+ "supportsSSG": true,
+ "recommended": "MPA",
+ "bundler": "Vite",
+ "otherBundlers": ["Parcel"]
+}
diff --git a/packages/docs/src/content/frameworks/solid-start.json b/packages/docs/src/content/frameworks/solid-start.json
new file mode 100644
index 0000000..636fe72
--- /dev/null
+++ b/packages/docs/src/content/frameworks/solid-start.json
@@ -0,0 +1,9 @@
+{
+ "name": "SolidStart",
+ "package": "starter-solid-start",
+ "supportsSPA": true,
+ "supportsMPA": true,
+ "supportsSSG": true,
+ "recommended": "MPA",
+ "bundler": "Vinxi (Vite)"
+}
diff --git a/packages/docs/src/content/frameworks/sveltekit.json b/packages/docs/src/content/frameworks/sveltekit.json
new file mode 100644
index 0000000..43ae6d7
--- /dev/null
+++ b/packages/docs/src/content/frameworks/sveltekit.json
@@ -0,0 +1,10 @@
+{
+ "name": "SvelteKit",
+ "package": "starter-sveltekit",
+ "supportsSPA": true,
+ "supportsMPA": true,
+ "supportsSSG": true,
+ "recommended": "MPA",
+ "bundler": "Vite",
+ "otherBundlers": ["Rolldown"]
+}
diff --git a/packages/docs/src/content/frameworks/tanstack-start.json b/packages/docs/src/content/frameworks/tanstack-start.json
new file mode 100644
index 0000000..ef4908c
--- /dev/null
+++ b/packages/docs/src/content/frameworks/tanstack-start.json
@@ -0,0 +1,8 @@
+{
+ "name": "TanStack Start",
+ "package": "starter-tanstack-start-react",
+ "supportsSPA": true,
+ "supportsMPA": true,
+ "recommended": "MPA",
+ "bundler": "Vite"
+}
From 27dfbbee1f37cc07500c6f4487e1ae977254c82b Mon Sep 17 00:00:00 2001
From: Alexander Karan {framework.name}
{framework.supportsSPA ? 'Y' : 'N'}
{framework.supportsMPA ? 'Y' : 'N'}
- {framework.supportsSSG === undefined ? '?' : framework.supportsSSG ? 'Y' : 'N'}
+
+ {framework.supportsSSG === undefined
+ ? '?'
+ : framework.supportsSSG
+ ? 'Y'
+ : 'N'}
+
{framework.recommended}
{framework.bundler}
{framework.otherBundlers?.join(', ') || '-'}