comma webapps
This mono-repository contains the web applications and packages for the web UIs of comma.ai
Contributing
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
Status
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 |
New Packages
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 |
|
Running Locally
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.