Skip to main content

Overview

Openlane UI is built with modern web technologies focused on performance, developer experience, and maintainability.

React 19.2.4

Latest React with concurrent features

Next.js 16.1.6

Full-stack React framework

TypeScript 5.x

Type-safe development

Core Framework

Next.js 16.1.6

The foundation of Openlane UI applications.
  • App Router: Modern routing with React Server Components
  • API Routes: Backend API endpoints
  • Middleware: Authentication and request handling
  • Image Optimization: Automatic image optimization
  • Font Optimization: Google Fonts with zero layout shift
  • Bundle Analysis: Performance monitoring
// next.config.js
export default {
  reactStrictMode: true,
  swcMinify: true,
  experimental: {
    serverActions: true
  }
}

React 19.2.4

Latest version with cutting-edge features.

Server Components

Zero-bundle components for better performance

Server Actions

Type-safe server mutations

Concurrent Rendering

Improved responsiveness

Automatic Batching

Optimized state updates
React 19 is enforced across the entire monorepo via resolutions in the root package.json.

Runtime & Tooling

Bun 1.2.16

All-in-one JavaScript runtime and package manager.
Performance Benefits:
  • 20x faster package installation vs npm
  • Native TypeScript execution
  • Built-in bundler and test runner
  • Fast task execution
Features Used:
  • Package management with workspaces
  • Script execution
  • Development server
  • Test runner
"packageManager": "[email protected]",
"engines": {
  "node": "24.14.x"
}

Turborepo 2.8.10

High-performance monorepo build system.

Incremental Builds

Only rebuilds what changed

Remote Caching

Share build cache across teams

Parallel Execution

Maximum CPU utilization

Content Hashing

Smart change detection

Styling

Tailwind CSS 4.1.13

Next-generation Tailwind with Oxide engine.
New in v4:
  • Oxide Engine: 10x faster compilation
  • Zero Config: Works out of the box
  • Native CSS: No more purge configuration
  • PostCSS Plugin: @tailwindcss/postcss@^4.1.13
  • Better IntelliSense: Improved autocomplete
PostCSS Configuration:
// postcss.config.mjs
export default {
  plugins: {
    '@tailwindcss/postcss': {},
  },
}
  • @tailwindcss/typography@^0.5.16 - Beautiful prose styling
  • @tailwindcss/forms@latest - Form element styling
  • tailwind-merge@^3.3.1 - Merge conflicting classes
  • tailwind-variants@^3.0.0 - Component variants
  • tw-animate-css@^1.3.8 - Animation utilities
  • tailwind-scrollbar-hide@^4.0.0 - Hide scrollbars
Utility-First Approach:
<button className="rounded-lg bg-blue-600 px-4 py-2 text-white hover:bg-blue-700">
  Click me
</button>
With Class Variance Authority:
import { cva } from 'class-variance-authority'

const button = cva('rounded-lg px-4 py-2', {
  variants: {
    intent: {
      primary: 'bg-blue-600 text-white hover:bg-blue-700',
      secondary: 'bg-gray-200 text-gray-900 hover:bg-gray-300'
    }
  }
})

UI Component Libraries

Radix UI

Unstyled, accessible component primitives.
Installed Primitives:
  • @radix-ui/react-dialog@^1.1.15 - Modals and dialogs
  • @radix-ui/react-dropdown-menu@^2.1.16 - Dropdown menus
  • @radix-ui/react-popover@^1.1.15 - Popovers and tooltips
  • @radix-ui/react-select@^2.2.6 - Custom select inputs
  • @radix-ui/react-toast@^1.2.15 - Toast notifications
  • @radix-ui/react-tabs@^1.1.13 - Tab interfaces
  • @radix-ui/react-checkbox@^1.3.3 - Checkboxes
  • @radix-ui/react-switch@^1.2.6 - Toggle switches
  • @radix-ui/react-slider@^1.3.6 - Range sliders
  • @radix-ui/react-accordion@^1.1.2 - Accordions
  • …and 10+ more
Benefits:
  • Full keyboard navigation
  • Screen reader support
  • Focus management
  • ARIA attributes

Plate.js 49.1.5

Powerful rich text editor framework.
30+ Plugins Installed:
  • Basic nodes (paragraphs, headings, lists)
  • Basic styles (bold, italic, underline)
  • Code blocks with syntax highlighting
  • Tables with resizable columns
  • Media embeds (images, videos, YouTube)
  • Markdown support
  • AI-powered suggestions
  • Comments and collaboration
  • Math equations
  • Mentions and autocomplete
  • Slash commands
  • Drag-and-drop
  • Excalidraw diagrams
  • Table of contents
Version: Latest 49.x series with v52 AI features

Lucide React 0.576.0

Beautiful, consistent icon library.
import { Search, Menu, X, ChevronDown } from 'lucide-react'

<Search className="h-4 w-4" />
  • 1000+ icons
  • Tree-shakeable
  • Customizable size and color
  • Consistent 24x24 grid

State Management

Zustand 5.0.10

Simple, scalable state management

TanStack Query 5.66.9

Powerful data fetching and caching

React Hook Form 7.71.1

Performant form validation

SWR 2.3.3

Stale-while-revalidate data fetching

TanStack Query (React Query)

  • Automatic caching and invalidation
  • Background refetching
  • Optimistic updates
  • Infinite queries
  • Pagination support
  • Devtools for debugging
import { useQuery } from '@tanstack/react-query'

const { data, isLoading } = useQuery({
  queryKey: ['organizations'],
  queryFn: fetchOrganizations
})

Zustand

import { create } from 'zustand'

interface Store {
  user: User | null
  setUser: (user: User) => void
}

const useStore = create<Store>((set) => ({
  user: null,
  setUser: (user) => set({ user })
}))
Benefits:
  • Minimal boilerplate
  • TypeScript support
  • No providers needed
  • Middleware support

GraphQL

GraphQL Code Generator 6.1.2

Type-safe GraphQL client generation.
  1. Write .graphql query files
  2. Run bun run codegen
  3. Import generated hooks
// Auto-generated, fully typed
import { useGetOrganizationQuery } from '@repo/codegen/src/schema'

Authentication

NextAuth.js (beta)

Authentication for Next.js applications.
  • GitHub OAuth: AUTH_GITHUB_ID, AUTH_GITHUB_SECRET
  • Google OAuth: AUTH_GOOGLE_ID, AUTH_GOOGLE_SECRET
  • WebAuthn: Passkey support via @simplewebauthn/*
Security Features:
  • Session management
  • CSRF protection
  • Secure cookie handling
  • Domain restrictions

AI Integration

Vercel AI SDK

Unified AI framework

Google Vertex AI

Gemini models and RAG

Amazon Bedrock

Claude and other models

OpenAI Compatible

GPT and custom models
Vercel AI SDK:
  • ai@^6.0.49 - Core AI SDK
  • @ai-sdk/react@^2.0.102 - React hooks
  • @ai-sdk/google@^3.0.0 - Google provider
  • @ai-sdk/openai@^1.3.23 - OpenAI provider
  • @ai-sdk/amazon-bedrock@^4.0.30 - Bedrock provider
Google Cloud:
  • @google-cloud/vertexai@^1.10.0 - Vertex AI client
  • @google-cloud/aiplatform@^6.0.0 - AI Platform
  • @google-cloud/storage@^7.18.0 - Cloud Storage
Features:
  • AI-powered text suggestions in Plate.js
  • Chat interfaces with streaming
  • Document analysis
  • RAG (Retrieval-Augmented Generation)

Data Visualization

Recharts 3.2.0

Composable charting library built on React components.
  • Line charts
  • Bar charts
  • Area charts
  • Pie charts
  • Donut charts
  • Composed charts
import { LineChart } from '@repo/ui/line-chart'

<LineChart 
  data={data} 
  xKey="date" 
  yKey="value" 
/>

React Force Graph 2D

Interactive force-directed graph visualization.
import ForceGraph2D from 'react-force-graph-2d'
Used for:
  • Organization hierarchies
  • Relationship mapping
  • Network diagrams

File Handling

Upload:Processing:
  • react-pdf@^10.2.0 - PDF viewing
  • @react-pdf/renderer@^4.3.2 - PDF generation
  • pdf-lib@^1.17.1 - PDF manipulation
  • docx@^9.5.1 - Word document generation
  • file-saver@^2.0.5 - Client-side file saving
  • html2canvas-pro@^1.5.11 - Screenshot capture

Payment Processing

Stripe 18.5.0

Complete payment infrastructure.
  • Subscription management
  • One-time payments
  • Customer portal
  • Webhook handling
  • Invoice generation
Environment Variables:
  • STRIPE_SECRET_KEY - Server-side API key

Notifications

Novu 0.24.1

Open-source notification infrastructure.
  • In-app notifications
  • Email notifications
  • Push notifications
  • SMS (configurable)
Packages:
  • @novu/node@^0.24.1 - Server SDK
  • @novu/notification-center@^0.24.1 - React component

Developer Tools

Linting & Formatting

ESLint 10.0.2

JavaScript/TypeScript linting

Prettier 3.5.3

Code formatting
Plugins:
  • @typescript-eslint/eslint-plugin@^8.55.0
  • eslint-plugin-react@^7.37.5
  • eslint-plugin-react-hooks@^7.0.1
  • eslint-plugin-jsx-a11y@^6.10.2 - Accessibility
  • eslint-plugin-import@^2.32.0 - Import order
  • eslint-config-turbo@^2.8.9 - Turborepo rules
  • @vercel/style-guide@^6.0.0 - Vercel conventions
Extends:
[
  "@vercel/style-guide/eslint/node",
  "@vercel/style-guide/eslint/typescript",
  "@vercel/style-guide/eslint/react"
]
{
  "semi": false,
  "singleQuote": true,
  "tabWidth": 2,
  "trailingComma": "es5",
  "plugins": ["prettier-plugin-tailwindcss"]
}
Tailwind Plugin:
  • Automatically sorts Tailwind classes
  • Consistent class ordering

Testing

Unit and integration testing framework.
"scripts": {
  "test": "jest"
}
Configured in Console app for:
  • Component testing
  • Utility function testing
  • API route testing

Additional Libraries

  • react-hook-form@^7.71.1 - Form state management
  • @hookform/resolvers@^5.2.2 - Validation resolvers
  • zod@^3.24.2 - Schema validation
  • input-otp@^1.4.2 - OTP input
  • emblor@^1.4.7 - Tag input
  • date-fns@^4.1.0 - Date manipulation
  • react-day-picker@^9.8.0 - Calendar picker
  • clsx@^2.1.1 - Conditional classes
  • class-variance-authority@^0.7.1 - Component variants
  • cmdk@^1.1.1 - Command menu
  • sonner@^2.0.6 - Toast notifications
  • next-themes@^0.4.0 - Theme management
  • @dnd-kit/core@^6.3.1 - DnD toolkit
  • @dnd-kit/sortable@^10.0.0 - Sortable lists
  • react-dnd@^16.0.1 - React DnD
  • react-dnd-html5-backend@^16.0.1 - HTML5 backend
  • react-player@^3.3.1 - Video player
  • react-lite-youtube-embed@^2.5.1 - YouTube embeds
  • react-tweet@^3.2.2 - Twitter embeds
  • qrcode.react@^4.2.0 - QR code generation
  • react-circle-flags@^0.0.27 - Country flags

Environment Variables

Over 40 environment variables configure the application:
  • NODE_ENV - Environment (development/production)
  • API_REST_URL - Backend API URL
  • NEXT_PUBLIC_OPENLANE_URL - Public Openlane URL
  • AUTH_GITHUB_ID / AUTH_GITHUB_SECRET
  • AUTH_GOOGLE_ID / AUTH_GOOGLE_SECRET
  • SESSION_COOKIE_NAME / SESSION_COOKIE_DOMAIN
  • NEXT_PUBLIC_ALLOWED_LOGIN_DOMAINS
  • GOOGLE_AI_PROJECT_ID / GOOGLE_AI_REGION
  • GOOGLE_SERVICE_ACCOUNT_KEY_B64
  • GOOGLE_RAG_CORPUS_ID
  • NEXT_PUBLIC_AI_SUGGESTIONS_ENABLED
  • PIRSCH_SECRET / PIRSCH_CLIENT_ID
  • STRIPE_SECRET_KEY
  • DEVREV_AAT - Customer support
  • RECAPTCHA_SECRET_KEY
  • OPENLANE_API_WRITE_TOKEN

Version Summary

TechnologyVersionPurpose
React19.2.4UI framework
Next.js16.1.6App framework
TypeScript5.xType safety
Tailwind CSS4.1.13Styling
Bun1.2.16Package manager
Turborepo2.8.10Build system
Node.js24.14.xRuntime
TanStack Query5.66.9Data fetching
Zustand5.0.10State management
GraphQL16.13.0API layer
Radix UILatestUI primitives
Plate.js49.1.5Rich text editor
Recharts3.2.0Charts
Stripe18.5.0Payments

Monorepo Structure

Learn about the Turborepo setup

Packages Overview

Explore all packages in detail

Build docs developers (and LLMs) love