Raypx

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.

Framework

TechnologyVersionWhy
TanStack Start^1.167File-based SSR routing with React. Full TypeScript support, integrates with Vite, and provides server functions for type-safe server calls.
Nitro^3.0Server engine for TanStack Start. Handles SSR rendering, API routes, and deployment presets.
Vite^8.0Build tool with fast HMR and native ES module support. TanStack Start is built on top of Vite.
React^19.2UI library with concurrent features, server components, and streaming SSR.
TypeScript^6.0Static type checking across the entire stack.

Database

TechnologyVersionWhy
PostgreSQL14+Reliable relational database with strong consistency, JSON support, and mature tooling.
Drizzle ORM1.0.0-beta.19Type-safe ORM that generates SQL from TypeScript schema definitions. Lightweight, no code generation step, and excellent PostgreSQL support.
drizzle-kit1.0.0-beta.19Migration management and schema push tooling for Drizzle.

Authentication

TechnologyVersionWhy
Better Auth1.5.6Full-featured auth library with email/password, OAuth, sessions, and admin. Database-agnostic with a Drizzle adapter.
Google OAuthSign-in with Google via OpenID Connect. Pre-configured with PKCE support.
GitHub OAuthSign-in with GitHub via OAuth 2.0. Pre-configured with PKCE support.

API

TechnologyVersionWhy
oRPC^1.13Type-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.13Zod integration for input validation. Infers TypeScript types from validators automatically.
oRPC + TanStack Query^1.13Generates TanStack Query hooks from oRPC procedures. Provides caching, refetching, and optimistic updates out of the box.
Zod^4.3Schema validation library. Used across all packages for runtime type checking.

UI

TechnologyVersionWhy
Tailwind CSS^4.2Utility-first CSS framework. Version 4 uses a CSS-first configuration approach with zero-content config files.
shadcn/uilatestCopy-paste component library built on Radix primitives. Components live in packages/ui so you own the code.
React Compiler^1.0Automatic memoization for React components. Compiles useState, useMemo, and useCallback patterns at build time.
next-themes^0.4Theme management with dark/light/system modes. Works with any React framework despite the name.
Sonner^2.0Toast notification library with a clean API and built-in promise support.
Lucide React^1.7Icon library with consistent stroke style and tree-shakeable exports.

Documentation

TechnologyVersionWhy
Fumadocs^16.7Documentation framework built on top of TanStack Start. Provides search, i18n, MDX support, and a polished default theme.
Fumadocs MDX^14.2MDX compilation for documentation content with typed frontmatter and component auto-imports.

Internationalization

TechnologyVersionWhy
use-intl^4.8i18n library for React with message catalogs, pluralization, and locale-prefixed routing.

Email

TechnologyVersionWhy
ResendTransactional email API. Simple HTTP interface with React Email integration.
React EmailBuild email templates with React components. Templates are rendered to HTML on the server and sent via Resend.

Storage

TechnologyVersionWhy
Local driverFile storage using the local filesystem. Default driver for development.
S3 driverFile storage using S3-compatible APIs (AWS S3, Cloudflare R2, etc.). Configurable via STORAGE_DRIVER=s3.

Tooling

TechnologyVersionWhy
pnpm10.33.0Fast, disk-efficient package manager with workspace support.
Turborepo^2.9Monorepo task runner with remote caching and parallel execution.
Biome^2.4Linter and formatter (replacement for ESLint + Prettier). Fast Rust-based tooling with zero config.
Lefthook^2.1Git hooks manager. Runs Biome checks and type checking before commits.
VitestUnit testing framework with Vite-native execution and JSX support.
Tauri^2.10Desktop application framework (optional). Wrap the web app as a native desktop app.

Dependency Catalog

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:"
  }
}

Next Steps

On this page