1# Railway Website: TanStack Start
2
3Deploys a [TanStack Start](https://tanstack.com/start) site to Railway
4with `Railway.Website.TanStackStart` — no adapter or deployment preset
5in `vite.config.ts`. The SSR server plus client assets run on one
6`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` through a server function.
12- A Tailwind-styled Card component ships with the page.
13
14```ts
15const site = yield* Railway.Website.TanStackStart("Website", {
16 env: { GREETING: "Hello from TanStack Start on Railway!" },
17});
18```
19
20The integration package must be installed in the project (it is loaded
21dynamically at deploy time):
22
23```sh
24bun add -d @alchemy.run/frontend-frameworks
25```
26
27## Deploy
28
29```sh
30bun run deploy
31```
32
33Unchanged sources skip the build entirely on subsequent deploys — the
34input files are content-hashed (scoped by `memo.include`).
35
36## Dev
37
38```sh
39bun run dev
40```
41
42`alchemy dev` runs the framework's own dev server (HMR included) and
43no cloud resources are created.
44
45## Destroy
46
47```sh
48bun run destroy
49```