1# Hetzner Website: TanStack Start
2
3Deploys a [TanStack Start](https://tanstack.com/start) site to Hetzner
4with `Hetzner.Website.TanStackStart` — no adapter setup in the project
5config.
6
7The Node adapter bundle runs as a systemd unit on a Hetzner Cloud Server (port 3000).
8
9
10- `src/routes/index.tsx` is server-rendered on the Hetzner Server and reads `GREETING` from `process.env` through a server function.
11- `src/components/Card.tsx` is a React component styled with Tailwind utilities.
12
13```ts
14const site = yield* Hetzner.Website.TanStackStart("Website", {
15 env: { GREETING: "Hello from TanStack Start on Hetzner!" },
16});
17```
18
19The integration package must be installed in the project (it is loaded
20dynamically at deploy time):
21
22```sh
23bun add -d @alchemy.run/frontend-frameworks
24```
25
26## Deploy
27
28```sh
29bun run deploy
30```
31
32Unchanged sources skip the build entirely on subsequent deploys — the
33input files are content-hashed (scoped by `memo.include`).
34
35## Dev
36
37```sh
38bun run dev
39```
40
41`alchemy dev` runs the framework's own dev server (HMR included) and
42no cloud resources are created.
43
44## Destroy
45
46```sh
47bun run destroy
48```