# Project Rules ## Architecture - Electron typescript/react app is in `js/` folder - Orion is the api server which lives in the `go/` folder - `cpp/` points to our prototype of a C++ Qt widgets client Whenever implementing anything, make sure to take into account best practices without over-engineering. ## Electron App ### Quality We care about overall architectural quality and keeping consistent patterns according to best practices. Another tradeoff we make is simpler, maintainable code over clever behavior. As an example, we have as high of a bar as a product team like Linear and Apple, which outputs high quality software. Let's avoid slop at all costs. ### Package Manager - Use **yarn** (not npm) for all dependency management ### Design system Whenever possible, we should use the design system components. If we need to add a new component from the available ones in [shadcn](https://ui.shadcn.com/docs/components), we should add it to the design system (using `shadcn add _`) and use it in the app. ### Implementation completeness When adding a feature on the client side, make sure that the api actually supports it by just checking orion implementation all the way through. IF you find that the API is poorly designed, please suggest changes to improve the client experience. ## Verification Check using `yarn compile` which lives in the package.json as a script.