Skip to content

Instantly share code, notes, and snippets.

@nicholas-johnson
Last active December 14, 2018 15:04
Show Gist options
  • Save nicholas-johnson/c88ce976cffe5404ea817fec86314171 to your computer and use it in GitHub Desktop.
Save nicholas-johnson/c88ce976cffe5404ea817fec86314171 to your computer and use it in GitHub Desktop.
README starter. This is just an idea, please make it your own.

App Name

What is this app

This app is...

It is for...

Owner/Maintainer

Where possible, pull requests should be reviewed by the owner.

Philosophy of this app

This section lets future devs know how to organise code in this app. In theory it stops the app from becoming a patchwork of overlapping styles, patterns and libraries.

Include a brief overview of your philosophy and design considerations. Include things like whether or not your components are stateless, if you have to make any compromises for third-party integrations, if you have used anything other than a React/Redux standard stack, etc?

Mention any funky organisational strategies like atomic design.

How to make a component

Include things like file structure, technologies used, whether you are using recompose, hooks, maybe something else.

How to handle state

How have you organised your flux store? How do you flow state through the app? Do you have some stateful components? Which ones and why? Are you storing all state in the store? Do you use context?

How to handle async

Effects? Sagas? etc. How do you hit the API?

Styling

How are you styling your app? How is the styling isolated from other apps?

Where to put helper functions

Is there anything in this app that doesn't fit the standard pattern? Where do you put it?

The wheels on the bus

Anything else you need to cover?

Usage

How do I get set for development? How do I start in standalone mode?

Running in the Bath

Start webpack in watch mode with:

beam app start yourapp

or

npm start

Running standalone

npm start:independent

View the running app at:

http://app.x.local:1234

Running the tests

npm test

Linting

Linting is based on AirBnB. Lint with:

npm run-script lint

Please be sure to have eslint and editorconfig plugins installed in your editor.

Related Repos

Contributing

Before issuing a PR, be sure to run tests and the linter:

npm test
npm run-script lint

Please respect Husky. Don't push code that fails to pass the tests. Don't use --no-verify, or ants will eat you in the night.

Refactoring

If you wish to refactor this app, please refactor it in it's entirety. Don't create a patchwork. Ensure all tests continue to run. Update the philosophy section in this app, so future devs can understand your design decisions.

Notifying the maintainer/owner

If you're working on this app or issuing a pull request, please let the maintainer know. Ideally all PRs should be seen and approved by the repo owner. If this is not possible, please respect the rules set out in the philosophy section.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment