You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Start from recommended, existing plugin, or from scratch?
Forbid some imports?
Enforce style, or use Prettier or editorconfig?
Run lint and prettier on commit via husky?
Enable which rules?
Use a preset?
Testing
Framework?
Assertion Library?
Helpers?
Test file location? Alongside or under /test?
File naming?
What environment?
Mocking?
Code Coverage
Continuous Integration
When to run tests
Test for forbidden dependencies. Here is an example. Your base bundle needs to depend on the routes, because when you go from A to B, you need to already know the route for B, so it has to always be around. But what you really don’t want in the base bundle is any form of UI code, because depending on how a user enters your app, there might be different UI. So, for example the date picker should absolutely not be in your base bundle, and neither should the checkout flow. Assert that the base bundle doesn't contain any libraries that can be lazy loaded. Avoid centralized dependencies. Instead, use the enhance pattern and generate code. Here's how: files can declare what they want to enhance and a code generator can find these files and generate the centralized file. Example: Put a "decorator" (e.g. ##ROUTEME##) in a file to mark it as relevant to the router. This avoids a centralized dependency, and when you want to delete the file, you can do so without touching some huge centralized file. This also makes it easy to delete code, which is what we should optimize for.
Project structure
Organize files by file type or feature?
Centralize API?
Allow Inline JS?
Extract to utils (POJOs)?
HTTP
Library
Mock schema format
Mock data generation
Mock server
Production build
Minification
Sourcemaps
Bundle splitting
Cache busting
Error logging
Automated Deployment to your preferred host
Error logging
Styling
Styling tech
Stylelint
Host styles on CDN
API Calls
REST vs GraphQL
Library
Centralized file location
Publish and bundle proxies?
Mock API
Suggest editor plugins via VSCode
Bundler
Automated File Generation via templates plop, Hygen
CLI vs Git clone
Monorepo
Convince a few consumers to place their project within your monorepo. Why?
Truly continuous integration = instant feedback on breaking changes
White glove handling of breaking changes
Easily test new ideas in a real world environment
Consider setting up CI to run for consuming projects when you publish betas. Walmart does this. This way you know when you've broken other projects.
Unified versioning?
Lerna
Yarn workspaces
Related projects to consider bundling in monorepo
Reusable components
App Starter
Component Starter
API Wrapper
Demo app
Show examples of file naming, locations, validation, folder structure, Redux configuration, performance approaches.
Highlight key features
Make it easy to remove
Documentation
Branding
Compose with style guide?
README.md
Why does this exist?
How do I report issues?
Who is using this?
How do I get started?
CONTRIBUTION.md
Release process
Semantic versioning
Release notes
Publicize via Slack, email. Collect emails of users.
The text was updated successfully, but these errors were encountered:
Company Framework
Goal: A standardized React development approach for your company.
Current Status
Why?
Decisions
Transpiling
Bundler
Linting
Testing
Project structure
HTTP
Production build
Styling
API Calls
Monorepo
Documentation
Release process
The text was updated successfully, but these errors were encountered: