SolidStart
Neon.Website.SolidStart builds SolidStart through Nitro’s Node target and adapts
its handler to Node 24 Fetch on Neon Functions. SSR and public assets share a
Function ZIP; the deployment is not a listening server, container, or S3 website.
Prepare the app
Section titled “Prepare the app”Use a compatible SolidStart app or the runnable SolidStart example. Configure deployment credentials, then install in the app directory:
Install Alchemy and its matching Effect dependencies first; use Node 24 for this build toolchain.
pnpm add -D @alchemy.run/frontend-frameworks @vercel/nftKeep solidStart() from @solidjs/start/config in vite.config.*. Do not add
nitroV2Plugin(): Alchemy owns the Nitro plugin and its preset. Use the resource’s
nitro prop for serializable options such as prerendering and route rules.
Define the stack
Section titled “Define the stack”import * as Alchemy from "alchemy";import * as Neon from "alchemy/Neon";import * as Effect from "effect/Effect";
export default Alchemy.Stack( "NeonSolidStart", { providers: Neon.providers(), state: Alchemy.localState() }, Effect.gen(function* () { const site = yield* Neon.Website.SolidStart("Web", { rootDir: ".", }); return { url: site.url }; }),);The framework handler receives SSR and API requests; prerendered files are served
from the packaged public output. Server code can read private env values from
process.env. Vite public variables are browser-visible build inputs, not secrets.
Develop and deploy
Section titled “Develop and deploy”pnpm exec alchemy devpnpm exec alchemy deploypnpm exec alchemy destroyRun separately, destroying when finished. Native dev uses SolidStart’s dev server
and HMR, returns a local URL, and creates no implicit Project or Function. Append
.pipe(Alchemy.remote()) to the Website Effect to opt into live deployment during dev.
Live deploy creates an Ohio Project if no scope is supplied. Pass either
project or branch for an existing backend; choose Ohio for storage. See
scope and credentials for branch
selection and token boundaries.