This mono-repository contains the web applications and packages for the web UIs of comma.ai
Just pick something and work on it. Take liberties or don't. There are three basic acceptance criterias:
- It works as good or better
- We use TypeScript when possible
- Packages should be isomorphic and conform to shared eslint/tsconfig
Package | New Package | Started | Functional | Has Testing |
---|---|---|---|---|
cabana |
apps/cabana |
✅ | ||
connect |
apps/connect |
|||
@commaai/comma-api |
packages/api |
✅ | ✅ | |
@commai/my-comma-auth |
packages/auth |
✅ | ✅ | |
can-message |
packages/can |
✅ | ✅ | |
@commaai/pandajs |
packages/panda |
✅ | ✅ | |
@commaai/log_reader |
packages/rlog |
Package | Description | PoC | Has Testing |
---|---|---|---|
packages/config |
Shared, inheritable eslint , jest , etc |
✅ | |
packages/design |
Shared UI components built with @chakra-ui/react |
✅ | |
packages/hooks |
Shared React hooks shared between apps | ✅ | |
packages/tsconfig |
Shared, inheritable tsconfig configs |
✅ |
Turborepo relies on relies on workspaces. Make sure that your npm -v
is higher than 8.0. The best way to do this is to install asdf
and then run:
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
asdf install nodejs 16.15.0
asdf reshim nodejs
To run all of the apps, run:
npm install
npm run build # TODO: we shouldn't have to do this
npm run dev
To add a 3rd party package to a particular app (cabana
, for example) run:
npm install @awesome/package -w cabana
To add an internal package (panda
for example) to another package, add the following line to the package.json
:
{
"panda": "*"
}
The "*"
character is a shorthand that turborepo
uses to say "this is an internal package". After adding a new internal package, be sure to run npm install
to create the symlinks.