Overview
Evaly is built with modern, cutting-edge technologies focused on developer experience, performance, and scalability. The stack is carefully chosen to provide real-time capabilities, serverless architecture, and excellent TypeScript support.Frontend Stack
Core Framework
React 19
Latest React with improved performance and concurrent featuresVersion:
19.2.0TanStack Start
React 19 meta-framework with file-based routingVersion:
1.134.9TanStack Router
Type-safe routing with nested layoutsVersion:
1.134.4TanStack Query
Powerful data fetching and cachingVersion:
5.90.6Styling & UI
- Styling
- Component Library
- Additional UI
Tailwind CSS v4 (
4.1.12)- Custom design tokens
- JIT compilation
- Vite plugin integration (
@tailwindcss/vite) - Typography plugin (
@tailwindcss/typography) - Animation utilities (
tailwindcss-animate) - Utility merging (
tailwind-merge)
Rich Text Editing
TipTap (2.12.0) - Extensible rich text editor
Core
Core
@tiptap/react- React integration@tiptap/starter-kit- Essential extensions
Extensions
Extensions
@tiptap/extension-character-count- Character counting@tiptap/extension-code-block-lowlight- Syntax highlighting@tiptap/extension-image- Image support@tiptap/extension-link- Link handling@tiptap/extension-placeholder- Placeholder text@tiptap/extension-text-style- Text styling@tiptap/extension-underline- Underline formatting
Form Management
React Hook Form
Performant form state managementVersion:
7.56.3Zod
TypeScript-first schema validationVersion:
4.1.12Hookform Resolvers
Integration between React Hook Form and ZodVersion:
5.0.1TanStack Zod Adapter
Router integration with ZodVersion:
1.139.12Data Visualization
- Charts
- Animations
- Other
Recharts (
2.15.4)- Composable charting library
- Built on D3.js
- Responsive charts
- Customizable tooltips
Specialized Libraries
Icons & Assets
Icons & Assets
- @phosphor-icons/react (
2.1.10) - Icon library - qrcode.react (
4.2.0) - QR code generation
Date & Time
Date & Time
- date-fns (
4.1.0) - Date utilities - dayjs (
1.11.13) - Date parsing/formatting - react-day-picker (
9.11.1) - Date picker component
PDF
- pdf-lib (
1.17.1) - PDF generation/manipulation - pdfjs-dist (
5.4.394) - PDF rendering
Tables & Lists
Tables & Lists
- @tanstack/react-table (
8.21.3) - Headless table library - @tanstack/react-virtual (
3.13.8) - Virtual scrolling
Layout
Layout
- react-resizable-panels (
3.0.1) - Resizable panel layouts - react-moveable (
0.56.0) - Draggable/resizable elements
Input
Input
- input-otp (
1.4.2) - OTP input component
Utils
Utils
- @uidotdev/usehooks (
2.4.1) - Collection of React hooks - html-react-parser (
5.2.10) - HTML string parsing
Backend Stack
Convex Platform
Convex Core
Serverless backend with real-time databaseVersion:
1.28.0Convex Auth
Authentication with multi-provider supportVersion:
0.0.90Convex Helpers
Community utilities and patternsVersion:
0.1.104React Query Integration
TanStack Query integrationVersion:
0.0.0-alpha.11Convex Extensions
- Storage
- Real-time
- Billing
- AI
@convex-dev/r2 (
0.7.3)- Cloudflare R2 integration
- Direct file uploads
- CDN support
AI Integration
Google Generative AI
Google Gemini API for AI question generationPackage:
@ai-sdk/google (2.0.33)Features:- Question generation
- Option suggestions
- Content translation
- Result analysis
Authentication
Auth.js Core (@auth/core 0.37.0)
- Multi-provider OAuth
- Session management
- JWT tokens
- Provider support:
- Google OAuth
- Email/Password
- Magic links
Development Tools
Build System
- Bundler
- Compiler
- Router Plugin
Vite (
6.1.0)- Lightning-fast HMR
- Optimized builds
- Plugin ecosystem
@vitejs/plugin-react- React supportvite-tsconfig-paths- Path alias resolution@tailwindcss/vite- Tailwind integration@cloudflare/vite-plugin- Cloudflare Workers
Testing
Vitest
Unit & integration testingVersion:
3.0.5React Testing Library
Component testing utilitiesVersion:
16.2.0Playwright
End-to-end testingVersion:
1.57.0jsdom
Browser environment simulationVersion:
26.0.0Content Management
Content Collections - MDX content managementCore
Core
@content-collections/core(0.12.0) - Core functionality@content-collections/vite(0.2.7) - Vite integration
Processing
Processing
@content-collections/mdx(0.2.2) - MDX supportremark-gfm(4.0.1) - GitHub Flavored Markdown
Deployment
Cloudflare Platform
- Workers
- R2 Storage
Wrangler (
4.45.3)- CLI for Cloudflare Workers
- Local development
- Production deployments
- Type generation
@cloudflare/vite-plugin(1.16.1)
Runtime & Package Manager
Bun
JavaScript runtime and package managerNot Node.js - Bun is used exclusivelyFeatures:
- Fast package installation
- Built-in test runner
- Native TypeScript support
- Drop-in Node.js replacement
Vinxi
App composition frameworkVersion:
0.5.6Powers TanStack Start’s server capabilitiesMonitoring & Analytics
Web Vitals
Core Web Vitals measurementPackage:
web-vitals (4.2.4)Metrics:- LCP (Largest Contentful Paint)
- FID (First Input Delay)
- CLS (Cumulative Layout Shift)
- TTFB (Time to First Byte)
Development Commands
Package Management
Key Dependencies Summary
Total Dependencies: 104 production packages Total Dev Dependencies: 25 development packagesStability Notes
The project uses exact versions for Convex packages to ensure compatibility with the Convex platform.
TypeScript Configuration
Path Aliases:@/*→./src/*@convex/*→convex/*content-collections→./.content-collections/generated
- Strict mode enabled
- JSX: React 19
- Module resolution: Bundler
- ES2022 target
Type Definitions
Custom Types
Custom Types
@types/node- Node.js types@types/react- React 19 types@types/react-dom- React DOM types@types/canvas-confetti- Canvas confetti types@types/pdfjs-dist- PDF.js types@types/recharts- Recharts types
Environment Variables
Required Variables
- Frontend
- Backend
.env.local
Version Strategy
- Major versions: Pinned for stability (e.g.,
@tanstack/react-query: 5.90.6) - Convex packages: Exact versions for platform compatibility
- UI libraries: Caret ranges for patch updates (e.g.,
^2.1.10) - Dev tools: Latest compatible versions