1# Railway Website: SolidStart
2
3Deploys a [SolidStart](https://start.solidjs.com) site to Railway with
4`Railway.Website.SolidStart` — no adapter wiring in the project config.
5Alchemy runs the project's own `vite build` and appends nitro's Node
6preset: the SSR server plus client assets run on one `Railway.Service`.
7
8Alchemy generates a Dockerfile and uploads the build context; Railway builds the image. The Service listens on port 3000.
9
10
11- `src/routes/index.tsx` is server-rendered on the Railway Service and reads `GREETING` from `process.env`.
12- A Tailwind-styled Card component ships with the page.
13- `vite.config.ts` holds only `solidStart()` and the Tailwind plugin —
14 no `nitroV2Plugin()`; the deploy target owns the nitro plugin
15 instance.
16- Static assets under `public/` (or `static/`) deploy with the service.
17
18```ts
19const site = yield* Railway.Website.SolidStart("Website", {
20 env: { GREETING: "Hello from SolidStart on Railway!" },
21});
22```
23
24The integration package must be installed in the project (it is loaded
25dynamically at deploy time), alongside `@solidjs/vite-plugin-nitro-2`:
26
27```sh
28bun add -d @alchemy.run/frontend-frameworks
29bun add @solidjs/vite-plugin-nitro-2
30```
31
32## Deploy
33
34```sh
35bun install
36bun run deploy
37```
38
39Unchanged sources skip the build entirely on subsequent deploys — the
40input files are content-hashed (scoped by `memo.include`).
41
42## Dev
43
44```sh
45bun run dev
46```
47
48`alchemy dev` runs the framework's own dev server (HMR included) and
49no cloud resources are created.
50
51SolidStart 2's dev server (via `srvx/node`) misrenders under Bun, so
52run `alchemy dev` with Node for this example.
53
54## Destroy
55
56```sh
57bun run destroy
58```