Overview
Openlane UI offers two primary installation paths:Console Application
Full SaaS platform for compliance management (requires backend API)
Component Library
Install
@repo/ui package for use in your own projectsConsole Application Installation
System Requirements
Ensure your system meets these requirements before proceeding.
| Requirement | Version | Notes |
|---|---|---|
| Bun | 1.2.16+ | JavaScript runtime and package manager |
| Node.js | 24.14.x | Required by some dependencies |
| Git | Latest | For version control |
| Task | Latest | Optional but recommended for running commands |
| Operating System | macOS, Linux, Windows | See platform-specific notes below |
Platform-Specific Setup
- macOS
- Linux
- Windows
Recommended: Use the automated setup scriptThis installs:
- Bun package manager via curl
- Pre-commit hooks via Homebrew
- All project dependencies
- Git hooks for code quality
Environment Configuration
Configure OAuth Providers (Optional)
- GitHub
- Google
- Go to GitHub Developer Settings
- Create a new OAuth App or GitHub App
- Set authorization callback URL:
http://localhost:3001/api/auth/callback/github - Add credentials to
.env:
Backend API Setup
Follow Backend Setup
Refer to the core repository documentation for:
- Database setup
- API configuration
- Test data creation
- Running the server
Development Workflow
Start Development Server
- Console Only
- All Apps
- Storybook Only
Component Library Installation
Use the@repo/ui package in your own projects.
The component library is currently workspace-only. For external use, you’ll need to clone the repository.
Using in the Monorepo
If you’re adding a new app to the Openlane UI monorepo:Available Components
The@repo/ui package includes 50+ components:
Form Components
Form Components
button- Customizable button with variantsinput- Text input fieldtextarea- Multi-line text inputselect- Dropdown selectcheckbox- Checkbox inputswitch- Toggle switchradio-group- Radio button groupform- Form wrapper with validationlabel- Form labelpassword-input- Password field with toggleinput-otp- One-time password inputtag-input- Multi-tag inputcalendar- Date pickercalendar-popover- Calendar in popover
Layout Components
Layout Components
cardpanel- Card containerpanel- Generic panelgrid- Grid layoutseparator- Divider linetabs- Tab navigationsheet- Slide-out panel
Data Display
Data Display
table- Basic tabledata-table- Advanced data table with sorting/filteringbadge- Status badgeavatar- User avatarline-chart- Line chart visualizationdonut-chart- Donut charttag- Label tagprogress-circle- Circular progress indicator
Navigation
Navigation
Feedback & Overlays
Feedback & Overlays
alert- Alert messagealert-dialog- Modal alert dialogdialog- Generic dialogconfirmation-dialog- Confirm action dialogtoast/toaster- Toast notificationspopover- Popover overlaytooltip- Tooltip
Specialized
Specialized
page-heading- Page headerlogo- Openlane logokbd- Keyboard shortcut displayinfo- Info tooltipmessage-box- Message containercountry-dropdown- Country selectorcountry-flag- Flag iconinfinite-scroll- Infinite scroll containermultiple-selector- Multi-select input
Verification & Testing
Verify Installation
Common Build Commands
| Command | Description |
|---|---|
task install | Install all dependencies |
task build | Build all apps and packages |
task dev | Start all apps in dev mode |
task dev:console | Start console app only |
task dev:storybook | Start Storybook only |
task clean | Remove build artifacts and node_modules |
task reinstall | Clean and reinstall everything |
task lint | Run ESLint |
task precommit-full | Run all pre-commit hooks |
Troubleshooting
Bun installation fails
Bun installation fails
Symptoms:
curl command fails or Bun doesn’t installSolutions:- Check internet connection
- Verify system compatibility (Bun requires Linux/macOS/WSL2)
- Try manual download from bun.sh
- On Windows, use WSL2 instead of native Windows
Dependency installation errors
Dependency installation errors
Symptoms:
bun install fails with resolution errorsSolutions:TypeScript errors after install
TypeScript errors after install
Symptoms: Build fails with type errorsSolutions:
Environment variables not loading
Environment variables not loading
Symptoms: App can’t connect to backend or features missingSolutions:
- Verify
.envis inapps/console/not root - Restart dev server after .env changes
- Check for typos in variable names
- Use
NEXT_PUBLIC_prefix for client-side variables
Port conflicts
Port conflicts
Symptoms: “Port already in use” errorSolutions:
GraphQL generation fails
GraphQL generation fails
Symptoms: Codegen errors or missing typesSolutions:
Tailwind styles not applying
Tailwind styles not applying
Symptoms: Components render but have no stylesSolutions:
- Verify
@repo/ui/styles.cssis imported - Check Tailwind config includes UI package path
- Restart dev server
- Clear
.nextcache:rm -rf .next
Next Steps
Console Features
Explore the console application capabilities
Component Usage
Learn how to use the component library
Architecture
Understand the monorepo structure
Development Guide
Deep dive into development workflows
Additional Resources
- Repository: github.com/theopenlane/openlane-ui
- Backend API: github.com/theopenlane/core
- Contributing Guide: .github/CONTRIBUTING.md
- Taskfile: Taskfile.yaml