very much a WIP...
- An attempt at comprehensive global guides to working on / with / around any products that Signal touches. Heavily influenced from the Airbnb guide.
- Typescript vs. JS: - at this time, javascript is recommneded only so as not to slow down development, however, at this is subject to change anytime as the ecosystem matures.
- css/styles/jss: - if your project requires use of styles do not use css/less/sass, rather use styled components or, even better Material-UI (which has styled components built in).
- API's we are a graphql shop. We deprecated REST as of the beginning of 2020.
- Languages:
- Javascript / Typescript (preferred)
- Rust (preferred when needed)
- Python (allowed when needed)
- eslint-config-airbnb
- prettier integrated w/ eslint
- babel - configured as follows:
- css in javascript use this styleguide.
note read more here
{ "presets": ["airbnb"], "plugins": [ [ "module-resolver", { "root": ["./"], "extensions": [".js", ".jsx"], "alias": { "*": "./src/*", "~components/*": "./src/components/*" } } ] ] }
-
Repositories:
./ lerna.json package.json (named @projectname) /scripts any shell scripts needed /packages /package-name ... contents of package/app name this (@projectname/package-name) /_notes notes.md (shared communal notes for your peers)
-
folder structure for applications.
./ package.json Readme.md (with instructions... see Readme section...) .env here (do not commit) (configs here, or better... in ./config) /src /components (react apps only) /ComponentName index.js ComponentName.jsx ComponentStyles.js /pages (any composed pages) /about index.js /theme theme.js colors.js (export color specific vars) /utils useAuth.js useTheme.js useWhatever.js
If using react use this config
- use functional components, with hooks.
- try to stick with
useState()
unlessuseReducer()
is absolutely necessary. - For data-sources, WE NOW ONLY WORK WITH APOLLO/ GraphQL. NO MORE REST.
Try to use these technologies
package tools
build tools
config tools
devops tools
design system tools
general tech