| name | solidstart-config |
| description | SolidStart configuration: app.config.ts with defineConfig, deployment presets (Netlify/Vercel/Cloudflare/etc.), prerendering/SSG, Vite plugins, experimental features. |
| metadata | {"globs":["app.config.ts","vite.config.*"]} |
SolidStart Configuration
app.config.ts
import { defineConfig } from "@solidjs/start/config";
export default defineConfig({
ssr: true,
solid: {
},
extensions: ["js", "jsx", "ts", "tsx"],
server: {
preset: "node",
prerender: {
routes: ["/", "/about"],
}
},
appRoot: "./src",
routeDir: "./routes",
middleware: "src/middleware/index.ts",
devOverlay: true,
experimental: {
islands: false
},
vite: {
plugins: []
}
});
Vite Configuration
Can be object or function for per-router config:
vite: {
plugins: []
}
vite({ router }) {
if (router === "server") {
} else if (router === "client") {
} else if (router === "server-function") {
}
return { plugins: [] };
}
Deployment Presets
- Node.js:
"node" (default)
- Netlify:
"netlify" or "netlify_edge"
- Vercel:
"vercel" or "vercel_edge"
- Cloudflare:
"cloudflare", "cloudflare_pages", or "cloudflare_module"
- AWS:
"aws_lambda"
- Deno:
"deno_server" or "deno_deploy"
export default defineConfig({
server: {
preset: "netlify_edge"
}
});
Cloudflare Special Config
export default defineConfig({
server: {
preset: "cloudflare_module",
rollupConfig: {
external: ["__STATIC_CONTENT_MANIFEST", "node:async_hooks"]
}
}
});
Static Site Generation (SSG)
Specific Routes
export default defineConfig({
server: {
prerender: {
routes: ["/", "/about", "/contact"]
}
}
});
All Routes
export default defineConfig({
server: {
prerender: {
crawlLinks: true
}
}
});
Route Preloading
export const route = {
preload: ({ params }) => {
return getProductQuery(params.id);
}
} satisfies RouteDefinition;
export default function ProductPage(props: RouteSectionProps) {
const product = createAsync(() => getProductQuery(props.params.id));
return <div>{product()?.name}</div>;
}
Best Practices
- Configure deployment preset based on hosting platform
- Use prerendering for static pages (blogs, docs, marketing)
- Configure Vite plugins per router when needed
- Use experimental features with caution
- Set proper appRoot and routeDir if using custom structure