The Chingu.io web application, built with TanStack Start.
- Framework: TanStack Start (React 19)
- Routing: TanStack Router (file-based)
- Styling: Tailwind CSS v4
- Components: Base UI, shadcn/ui, Tabler Icons, Lucide React
- Testing: Vitest + Playwright
- Linting/Formatting: Biome
- Monitoring: Sentry
- Package Manager: pnpm
pnpm install
cp .env.example .env.local # add your environment variables
pnpm devThe dev server runs at http://localhost:3000.
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm test |
Run tests |
pnpm lint |
Lint with Biome |
pnpm format |
Format with Biome |
pnpm check |
Lint + format check |
pnpm storybook |
Run Storybook at port 6006 |
src/
├── routes/ # File-based routes (TanStack Router)
├── components/ # UI components organized by tier:
│ ├── ui/ # Shadcn components (BaseUI)
│ ├── shared/ # Composed components (Shared across pages, e.g. ActionButton)
│ └── layout/ # Full structural components (e.g. Navbar, Footer)
├── features/ # Feature modules
├── content/ # Static data (nav items, copy, config)
├── lib/ # Utility functions and helpers
├── styles/ # Global styles (CSS custom properties, theme)
├── stories/ # Storybook stories for component showcase
└── types/ # TypeScript type definitions
Storybook is used for component development and documentation. Start the Storybook dev server with:
pnpm storybookStories are located in src/stories/ and correspond to components throughout the application.
https://jokma.com/chingu/site-redesign/
Copy .env.example to .env.local and fill in the required values. Variables include Sentry configuration for error monitoring.
This project includes nixpacks.toml for Railway deployment:
- Push to GitHub
- Create a new project at railway.com from your repo
- Add environment variables from
.env.examplein the Variables tab