If you have any issues, please open one! There's an issue template to fill out that will make sure we have all the information we need to help.
Pull requests are very welcome! Here are a few things to keep in mind:
- The core feature of face.camp requires
navigator.mediaDevices.getUserMediawhich is supported in most newer browsers. When culling these supported browsers down to the last couple versions of each, it becomes possible to ship ES2015+ code includingconst,async/awaitand arrow functions (=>). The specific list of supported browsers is specified inpackage.json#browserslist. All polyfills and compiling of unsupported features is handled by@babel/preset-envandpostcss-preset-env. - One of the goals of this project is to keep the JS and CSS as light as possible. This is done with a combination of code splitting and carefully choosing which libraries to use. You can get an idea of the current build size by running
npm run build && npm run build:size. - The build process is handled by
preact-cliwith some other custom configuration. - The code gets linted with
prettierandeslintwhich should both run automatically when committing any code.