Important
This repository contains Openlane-owned branding, logos, customer testimonials, legal policy links, and other proprietary assets that are not included under the open-source license for this repository.
Public or external-facing deployments must remove or replace Openlane branding, customer testimonials, privacy policies, Terms of Service links, and other proprietary assets prior to use. Deployments may not imply affiliation with, endorsement by, or operation by theopenlane, Inc.
Openlane UI monorepo which holds all the frontend assets for Openlane
This monorepo is run on Bun and built using Turborepo. It includes the following packages/apps:
console: Openlane Console
@repo/codegen: Generated graphQL functions to make requests to the Openlane graphql api. See the README for details.@repo/ui: UI component library shared by our applications@repo/dally: DAL library for sharing common patterns and functionality in our other apps@repo/eslint-config:eslintconfigurations (includeseslint-config-nextandeslint-config-prettier)@repo/config-typescript:tsconfig.jsons used throughout the monorepo@repo/tailwind-config: thetailwind.config.tsused throughout the monorepo
- TypeScript for static type-checking
- Bun to bundle, dev, test, deploy and run apps
- ESLint for code linting
- Prettier for code formatting
- Next.js a framework to help with building web applications using React
- React for creating user interfaces
- SWR for client-side data fetching, caching, and de-deduping API requests
- Tailwindcss for styles without leaving TSX syntax
- Install Bun and other dependencies:
task local-setup
The above should work on macOS environments. If you are using Linux/Windows you may need to look at the Taskfile and find the equivalent commands.
To build all apps and packages, run the following commands:
task install
task build-
Copy the .env, this is in .gitignore so you do not have to worry about accidentally committing it. This hold example of environment configurations which you should review and potentially override depending on your needs.
Note: turbov2 requires the .env file live in the app directory, and cannot be in the root.
cp ./config/.env.example ./apps/console/.env
-
To develop all apps and packages, run the following command:
task dev
-
Alternatively, you can run a single app instead of all the apps with the specific task commands. For example to develop on the console app run:
task dev:console[!NOTE] To disable module billing for local development, ensure
NEXT_PUBLIC_ENABLE_PLAN=falseis set in the environment variables
The backend used by the console UI is located in the Open core repo. Please refer to the README in that repository for details on standing up the api locally.
- I cannot login with the test user created by the setup in the
openlane/core
repo?
You must have the environment variableNEXT_PUBLIC_ALLOWED_LOGIN_DOMAINSconfigured with the proper allowed email domains, or it must be empty to allow all domains to login.
See the contributing guide for more information.