Overview
Who To Bother is built with modern web technologies focused on performance, type safety, and developer experience. The application is deployed on Cloudflare Pages and uses React 19 with TanStack Start for routing.Core Technologies
Frontend Framework
Modern React with concurrent features and server components support.
- Latest stable version with improved performance
- Server Components for optimal data fetching
- Suspense boundaries for progressive loading
Full type safety across the codebase.Configuration (
tsconfig.json):Routing & Server Framework
Full-stack React framework with file-based routing.
- Server-side rendering (SSR)
- API routes in
src/app/api/ - File-based routing in
src/app/ - Deployed as Cloudflare Workers
vite.config.ts):Type-safe routing with automatic route generation.
- Generated route tree in
src/routeTree.gen.ts - Type-safe navigation and params
- Nested layouts and error boundaries
Build Tools
Bundler & Development
Next-generation frontend tooling using Rolldown.Development Server:
- Port: 3311
- HMR timeout: 30 seconds
- Fast refresh for instant updates
- Advanced chunk splitting for React vendor code
- Tree-shaking and minification
- Asset optimization
Enables Cloudflare Pages integration with Vite.
Code Quality
Zero-config Biome preset for strict code quality standards.Commands:
- Rust-based for extremely fast linting
- Automatic formatting on save
- Most issues auto-fixable
Fast formatter and linter (underlying engine for Ultracite).Enforces:
- Code formatting standards
- React best practices
- Accessibility rules
- Performance optimizations
Styling
Utility-first CSS framework with Vite integration.
- JIT compilation for fast builds
- Custom design tokens
- Dark mode support
Animation utilities for Tailwind CSS
Additional animation utilities
Type-safe variant management for components.Used for creating reusable component variants with TypeScript support.
Conditional className utility
Merge Tailwind classes without conflicts
UI Components
Radix UI Primitives
Accessible, unstyled component primitives from Radix UI:- Form & Input
- Overlays
- Display
@radix-ui/react-checkbox(1.1.3)@radix-ui/react-label(2.1.1)@radix-ui/react-radio-group(1.2.2)@radix-ui/react-select(2.1.4)@radix-ui/react-slider(1.2.2)@radix-ui/react-switch(1.1.2)@radix-ui/react-toggle(1.1.1)@radix-ui/react-toggle-group(1.1.1)
Additional UI Libraries
Command menu component (Command+K interface)
Toast notifications system
Drawer component for mobile interfaces
Carousel/slider component
Icon library with 1000+ icons
Resizable panel layouts
Data & Validation
Schema validation library for runtime type checking.Key Features:See Data Schema for complete schema documentation.
- Single source of truth for data schema
- TypeScript type inference with
InferOutput - Custom error messages
- Pipe-based validation chains
Generate JSON Schema from Valibot schemas for IDE autocomplete support.
Forms & State
Headless form management with type-safe validation.
- Field-level validation
- Form state management
- Integration with Valibot via adapter
Adapter connecting TanStack Form with Valibot validation
Type-safe URL search params state management
Search & Data Visualization
Fuzzy search library for client-side search functionality.Used for searching companies and contacts.
Composable charting library for React.Used for statistics and data visualization.
Modern date utility library
Authentication
Authentication library for the contribution workflow.Manages user authentication for GitHub integration when contributing companies.
Deployment & Hosting
Cloudflare Pages
Cloudflare CLI for deployment and development.Configuration (Commands:
wrangler.jsonc):Vite integration for Cloudflare Workers
- who-to-bother-at.com
- bother.at
- whotobotherat.com
- whotobother.at
Fonts
Primary sans-serif font by Vercel
Monospace font for code
@fontsource packages for self-hosting and optimal performance.
Additional Utilities
Rust-powered helper utilities compiled to WebAssembly
WebAssembly runtime for performance-critical operations
One-time password input component
Date picker component
Build Scripts
Custom build scripts insrc/scripts/:
Favicon Generation
Sitemap Generation
sitemap.xml for SEO with all company pages.
Schema Validation
JSON Schema Generation
Development Workflow
Local Development
Git Hooks
Git hooks manager for running checks before commits.Typically runs:
- Code formatting (Ultracite)
- Type checking
- Schema validation
Architecture Decisions
Why Valibot over Zod?
- Performance: Smaller bundle size (~1kb vs ~10kb)
- Type Inference: Direct
InferOutputtype utility - Composability: Pipe-based validation chains
- Error Messages: Built-in custom error messages
Why TanStack Start?
- Type Safety: Full type inference for routes and loaders
- Performance: Automatic code splitting and streaming SSR
- Developer Experience: File-based routing with hot reload
- Cloudflare: First-class Workers/Pages support
Why Cloudflare Pages?
- Global Performance: Edge deployment in 300+ cities
- Cost: Free tier for open-source projects
- DX: Automatic deployments from GitHub
- Reliability: 100% uptime SLA
Related
- Data Schema - Complete schema documentation
- Project Structure - Codebase organization
- Contributing Guide - How to contribute