Tech Stack Complete list of technologies and why they were chosen.
This page lists every significant dependency in Raypx and explains the reasoning behind each choice.
Technology Version Why TanStack Start ^1.167 File-based SSR routing with React. Full TypeScript support, integrates with Vite, and provides server functions for type-safe server calls. Nitro ^3.0 Server engine for TanStack Start. Handles SSR rendering, API routes, and deployment presets. Vite ^8.0 Build tool with fast HMR and native ES module support. TanStack Start is built on top of Vite. React ^19.2 UI library with concurrent features, server components, and streaming SSR. TypeScript ^6.0 Static type checking across the entire stack.
Technology Version Why PostgreSQL 14+ Reliable relational database with strong consistency, JSON support, and mature tooling. Drizzle ORM 1.0.0-beta.19 Type-safe ORM that generates SQL from TypeScript schema definitions. Lightweight, no code generation step, and excellent PostgreSQL support. drizzle-kit 1.0.0-beta.19 Migration management and schema push tooling for Drizzle.
Technology Version Why Better Auth 1.5.6 Full-featured auth library with email/password, OAuth, sessions, and admin. Database-agnostic with a Drizzle adapter. Google OAuth — Sign-in with Google via OpenID Connect. Pre-configured with PKCE support. GitHub OAuth — Sign-in with GitHub via OAuth 2.0. Pre-configured with PKCE support.
Technology Version Why oRPC ^1.13 Type-safe RPC framework. Unlike tRPC, oRPC separates the protocol from the transport, enabling direct procedure calls on the server without HTTP overhead. oRPC + Zod ^1.13 Zod integration for input validation. Infers TypeScript types from validators automatically. oRPC + TanStack Query ^1.13 Generates TanStack Query hooks from oRPC procedures. Provides caching, refetching, and optimistic updates out of the box. Zod ^4.3 Schema validation library. Used across all packages for runtime type checking.
Technology Version Why Tailwind CSS ^4.2 Utility-first CSS framework. Version 4 uses a CSS-first configuration approach with zero-content config files. shadcn/ui latest Copy-paste component library built on Radix primitives. Components live in packages/ui so you own the code. React Compiler ^1.0 Automatic memoization for React components. Compiles useState, useMemo, and useCallback patterns at build time. next-themes ^0.4 Theme management with dark/light/system modes. Works with any React framework despite the name. Sonner ^2.0 Toast notification library with a clean API and built-in promise support. Lucide React ^1.7 Icon library with consistent stroke style and tree-shakeable exports.
Technology Version Why Fumadocs ^16.7 Documentation framework built on top of TanStack Start. Provides search, i18n, MDX support, and a polished default theme. Fumadocs MDX ^14.2 MDX compilation for documentation content with typed frontmatter and component auto-imports.
Technology Version Why use-intl ^4.8 i18n library for React with message catalogs, pluralization, and locale-prefixed routing.
Technology Version Why Resend — Transactional email API. Simple HTTP interface with React Email integration. React Email — Build email templates with React components. Templates are rendered to HTML on the server and sent via Resend.
Technology Version Why Local driver — File storage using the local filesystem. Default driver for development. S3 driver — File storage using S3-compatible APIs (AWS S3, Cloudflare R2, etc.). Configurable via STORAGE_DRIVER=s3.
Technology Version Why pnpm 10.33.0 Fast, disk-efficient package manager with workspace support. Turborepo ^2.9 Monorepo task runner with remote caching and parallel execution. Biome ^2.4 Linter and formatter (replacement for ESLint + Prettier). Fast Rust-based tooling with zero config. Lefthook ^2.1 Git hooks manager. Runs Biome checks and type checking before commits. Vitest — Unit testing framework with Vite-native execution and JSX support. Tauri ^2.10 Desktop application framework (optional). Wrap the web app as a native desktop app.
Shared dependency versions are centralized in pnpm-workspace.yaml under the catalog: key. This ensures every package uses the same version of React, Zod, oRPC, and other shared libraries:
# pnpm-workspace.yaml
catalog :
react : ^19.2.4
react-dom : ^19.2.4
zod : ^4.3.6
"@orpc/client" : ^1.13.13
"@orpc/server" : ^1.13.13
better-auth : 1.5.6
drizzle-orm : 1.0.0-beta.19
tailwindcss : ^4.2.2
Packages reference catalog versions with the catalog: protocol:
// packages/auth/package.json
{
"dependencies" : {
"better-auth" : "catalog:" ,
"drizzle-orm" : "catalog:"
}
}