Skip to content
For the complete Netlify documentation index, see llms.txt. Markdown versions of this page are available by appending .md to the URL.

More flexibility and credits now available for Pro plans 🎉

SolidStart on Netlify

For the complete documentation index, see llms.txt

SolidStart is a full-stack framework for building applications with Solid.

SolidStart 2 builds directly on Vite, so there's no SolidStart-specific Netlify adapter to install. A Vite plugin prepares your production build, and the same plugin gives you Netlify's platform features in local development.

  1. Install the Netlify Vite plugin:

    Terminal window
    npm install -D @netlify/vite-plugin
  2. Add the plugin to your Vite config, with its experimental build support enabled:

    vite.config.ts
    import netlify from "@netlify/vite-plugin";
    import { solidStart } from "@solidjs/start/config";
    import { defineConfig } from "vite";
    export default defineConfig({
    plugins: [solidStart(), netlify({ build: { enabled: true } })],
    });
  3. Create your new project on Netlify with Git or the Netlify CLI.

That's it. Netlify detects SolidStart and fills in your build command and publish directory, and SSR routes, server functions, and middleware all deploy to Netlify Functions — no adapter, preset, or extra configuration required.

The Netlify Vite plugin provides full emulation of the production Netlify platform inside your Vite dev server, so you get the same platform primitives locally that your project uses in production:

  • Serverless functions
  • Edge functions
  • Blobs
  • Cache API
  • Image CDN
  • Redirects & rewrites
  • Headers
  • Environment variables
  • AI Gateway

Run your dev server with vite dev as usual. Because the plugin emulates Netlify's platform primitives, you don't need Netlify CLI to run local dev.

In most cases, Netlify detects SolidStart and sets your build configuration for you, but you can set them yourself in a netlify.toml file in your project if needed:

netlify.toml
[build]
command = "vite build"
publish = "dist/client"
[dev]
command = "vite dev"
targetPort = 5173

You can also set build settings in the Netlify UI. For your chosen project, go to project configuration Build & deploy Continuous deployment Build settings.

SolidStart 2 also works with Nitro 3. Nitro auto-detects the Netlify build environment, so you don't need to name a preset:

vite.config.ts
import netlify from "@netlify/vite-plugin";
import { solidStart } from "@solidjs/start/config";
import { nitro } from "nitro/vite";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [solidStart(), nitro(), netlify()],
});

With Nitro handling the build, set your publish directory to dist instead of dist/client, and leave build.enabled off the Netlify plugin. Keep the Netlify plugin in your config for the local development features described above.

SolidStart 1 includes Nitro under the hood, which configures the build for deployment to Netlify automatically. You can also enable the Netlify preset explicitly:

app.config.ts
import { defineConfig } from "@solidjs/start/config";
export default defineConfig({
server: {
preset: "netlify",
},
});

Use vinxi build as your build command and dist as your publish directory.