Skip to content

SolidStart

Source: src/Fly/Website/SolidStart.ts

Deploy a SolidStart application to Fly: the SSR server on a Machine, static assets (prerendered pages included) baked into the image, served assets-first then the framework handler.

The build runs through @alchemy.run/frontend-frameworks/solidstart with the @alchemy.run/frontend-frameworks/solidstart/node deploy target — both must be installed in your project, alongside @solidjs/start and @solidjs/vite-plugin-nitro-2.

Your vite.config.ts needs no adapter wiring: the integration drives the project’s own vite build and appends its own nitro plugin instance carrying nitro’s node preset.

Basic SolidStart App

const site = yield* Fly.Website.SolidStart("Web", {
rootDir: "./app",
});

Custom Domain

const site = yield* Fly.Website.SolidStart("Web", {
rootDir: "./app",
domain: "app.example.com",
});
const site = yield* Fly.Website.SolidStart("Web", {
rootDir: "./app",
env: {
GREETING: "Hello from SolidStart on Fly!",
},
});

The integration owns the nitro plugin instance (a nitroV2Plugin() in your vite.config.* is rejected), so nitro options — prerendering included — go on the nitro prop. Prerendered pages are baked into the image and served as static files.

const site = yield* Fly.Website.SolidStart("Web", {
rootDir: "./app",
nitro: { prerender: { routes: ["/", "/about"] } },
});