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.getUserMedia
which 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/await
and 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-env
andpostcss-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-cli
with some other custom configuration. - The code gets linted with
prettier
andeslint
which should both run automatically when committing any code.