Skip to content

An attempt at comprehensive global guides to working on/with/around any products that Signal touches. Heavily influcenced off the Airbnb guide.

Notifications You must be signed in to change notification settings

gosignal/signal-style-guide

Repository files navigation

Signal Style Guide

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.

A few notes

  • 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)

Configs

Patterns

  • 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
    

React Specific Notes

If using react use this config

  • use functional components, with hooks.
  • try to stick with useState() unless useReducer() is absolutely necessary.
  • For data-sources, WE NOW ONLY WORK WITH APOLLO/ GraphQL. NO MORE REST.

Technologies

Try to use these technologies

package tools

build tools

config tools

devops tools

design system tools

general tech

About

An attempt at comprehensive global guides to working on/with/around any products that Signal touches. Heavily influcenced off the Airbnb guide.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages