TanStack Start
Add to your project
Section titled “Add to your project”Paste this entry into the components list in diploi.yaml to add TanStack Start to your project.
components: - name: TanStack Start identifier: tanstack-start package: https://github.com/diploi/component-tanstack-start#v1.168.50TanStack Start reference
Section titled “TanStack Start reference”Readme
Section titled “Readme”Launch a trial, no account needed https://diploi.com/component/tanstack-start
Uses the official node Docker image.
A minimal setup to get TanStack Start working in Diploi, with React, file-based routing from TanStack Router and Tailwind CSS. Server-side rendering is handled by Nitro, preconfigured through its Vite plugin in vite.config.ts.
Operation
Section titled “Operation”Getting started
Section titled “Getting started”-
In the Dashboard, click Create Project +
-
Under Pick Components, choose TanStack Start
You can add other frameworks from this page if you want to build a monorepo application, eg, TanStack Start for the frontend and Hono for the backend.
-
In Pick Add-ons, select any databases or extra tools you need.
-
Choose Create Repository so Diploi generates a new GitHub repo for your project.
-
Click Launch Stack
Package managers
Section titled “Package managers”Supports Bun, Yarn, npm, and pnpm. The package manager is auto-detected from your lockfile (bun.lock, yarn.lock, package-lock.json, or pnpm-lock.yaml). The install and build steps always use the detected package manager.
Development
Section titled “Development”When the component is first initialized, dependencies are installed using the detected package manager. The development server is then started with:
npm run dev -- --hostThis can be changed with the containerCommands.developmentStart field in diploi.yaml.
Production
Section titled “Production”Builds a production-ready image. Image runs npm install & npm run build when being created, using the detected package manager. vite build writes the Nitro server to .output/.
Once the image runs, npm start is called, which starts the Nitro server:
node .output/server/index.mjsThis can be changed with the containerCommands.productionStart field in diploi.yaml.
TanStack Start reads environment variables at two different times:
- When the server runs. Server code, such as server functions (
createServerFn), server routes and middleware, readsprocess.envwhile the server runs. Use it for secrets, and for values that depend on a specific deployment (such as variables imported from other components indiploi.yaml, or configured in the Environment tab). - When the app is built.
import.meta.env.VITE_*is replaced during the build step. Only variables with theVITE_prefix reach code that runs in the browser, and everything they contain is visible there, so never give a secret aVITE_name. The build runs when the image is created, so only use these for values that are not deployment-dependent, and define those indiploi.yamlusing the static import syntax. The values are exposed to theDockerfileasARGvariables.
To use a deployment-dependent value in the browser, read it in a server function and return it from there, as in the runtime client environment variables guide.
To use a variable from another component in your code, import it in diploi.yaml. For example, to call a backend with the api identifier from server code:
- name: TanStack Start identifier: tanstack-start env: include: - api.APP_INTERNAL_ENDPOINT:API_URLServer code can use the <HOST>_INTERNAL_ENDPOINT address of a component, which stays inside the deployment. Code that runs in the browser needs the public <HOST>_ENDPOINT address.
The component serves on port 5173 in both development and production. If you change it, update all of these so they stay in sync:
hosts[].portindiploi.yamlEXPOSEandENV PORTinDockerfileandDockerfile.dev. The production server readsPORT- The fallback of
server.portinvite.config.ts, which the development server uses whenPORTis not set