Welcome to your new TanStack Start app! # Getting Started To run this application: ```bash npm install npm run dev ``` # Building For Production To build this application for production: ```bash npm run build ``` ## Testing This project uses [Vitest](https://vitest.dev/) for testing. You can run the tests with: ```bash npm run test ``` ## Styling This project uses [Tailwind CSS](https://tailwindcss.com/) for styling. ### Removing Tailwind CSS If you prefer not to use Tailwind CSS: 1. Remove the demo pages in `src/routes/demo/` 2. Replace the Tailwind import in `src/styles.css` with your own styles 3. Remove `tailwindcss()` from the plugins array in `vite.config.ts` 4. Uninstall the packages: `npm install @tailwindcss/vite tailwindcss -D` ## Linting & Formatting This project uses [Biome](https://biomejs.dev/) for linting and formatting. The following scripts are available: ```bash npm run lint npm run format npm run check ``` # Paraglide i18n This add-on wires up ParaglideJS for localized routing and message formatting. - Messages live in `project.inlang/messages`. - URLs are localized through the Paraglide Vite plugin and router `rewrite` hooks. - Run the dev server or build to regenerate the `src/paraglide` outputs. ## T3Env - You can use T3Env to add type safety to your environment variables. - Add Environment variables to the `src/env.mjs` file. - Use the environment variables in your code. ### Usage ```ts import { env } from "#/env"; console.log(env.VITE_APP_TITLE); ``` ## Setting up PostHog 1. Create a PostHog account at [posthog.com](https://posthog.com) 2. Get your Project API Key from [Project Settings](https://app.posthog.com/project/settings) 3. Set `VITE_POSTHOG_KEY` in your `.env.local` ### Optional Configuration - `VITE_POSTHOG_HOST` - Set this if you're using PostHog Cloud EU (`https://eu.i.posthog.com`) or self-hosting ## Routing This project uses [TanStack Router](https://tanstack.com/router) with file-based routing. Routes are managed as files in `src/routes`. ### Adding A Route To add a new route to your application just add a new file in the `./src/routes` directory. TanStack will automatically generate the content of the route file for you. Now that you have two routes you can use a `Link` component to navigate between them. ### Adding Links To use SPA (Single Page Application) navigation you will need to import the `Link` component from `@tanstack/react-router`. ```tsx import { Link } from "@tanstack/react-router"; ``` Then anywhere in your JSX you can use it like so: ```tsx About ``` This will create a link that will navigate to the `/about` route. More information on the `Link` component can be found in the [Link documentation](https://tanstack.com/router/v1/docs/framework/react/api/router/linkComponent). ### Using A Layout In the File Based Routing setup the layout is located in `src/routes/__root.tsx`. Anything you add to the root route will appear in all the routes. The route content will appear in the JSX where you render `{children}` in the `shellComponent`. Here is an example layout that includes a header: ```tsx import { HeadContent, Scripts, createRootRoute } from '@tanstack/react-router' export const Route = createRootRoute({ head: () => ({ meta: [ { charSet: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { title: 'My App' }, ], }), shellComponent: ({ children }) => (