├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Steve Kinney 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # What does "Frontend Architecture" even mean? 2 | 3 | Here is an incomplete list of topics that may or may not constitute front-end architecture. 4 | 5 | Is something missing? Is something poorly worded? Is something extraneous? [Please open a pull request](https://github.com/stevekinney/frontend-architecture-topics/pulls). 6 | 7 | Please share this list far and wide. I'd love to get as many eyes on it as possible. 8 | 9 | - State Management and Sync Strategies 10 | - Pushing Data from the Server 11 | - REST vs. GraphQL 12 | - Loading and Error States 13 | - Caching Requests 14 | - Authorization/Authentication 15 | - Bundle Management 16 | - Code Splitting 17 | - Tree-Shaking 18 | - Lazy-loading 19 | - Dependency Management 20 | - node_modules 21 | - npm / Yarn 22 | - Build your own registry 23 | - Application Deployment 24 | - Build Processes 25 | - Continuous Integration / Continuous Deployment 26 | - Docker / Kubernetes 27 | - Hosting and Content Delivery Networks 28 | - Application Monitoring 29 | - End user monitoring 30 | - Synthetic monitoring 31 | - Testing 32 | - Balancing Unit and Integration Tests 33 | - Local Setup: Communicating with backend systems/mocking requests 34 | - Visual Regression testing 35 | - Styling and Design Systems 36 | - CSS Methodologies 37 | - CSS-in-JS 38 | - Linting & code formatting 39 | - Browser support 40 | - Search Engine Optimization (SEO) 41 | - Accessibility 42 | - aria-label 43 | - Localization 44 | - Client-Side Routing 45 | - Font Loading and Rendering 46 | - Image Optimization 47 | - Performance 48 | - Inlining CSS 49 | - RAIL 50 | - PRPL 51 | - Layout Performance 52 | - Runtime Performance 53 | - Auditing 54 | - Microfrontends vs. Monoliths 55 | - Backends for Front End 56 | - Custom back-end solutions 57 | - Out of box solutions 58 | - Google Firebase 59 | - Firebase Functions 60 | - Server-Side Rendering vs. Static Site Generation 61 | - WebAssembly 62 | - Type Systems 63 | - Monitoring and Alerting 64 | - Design Patterns 65 | - Documentation 66 | - Platform Architecture 67 | - Sequence Diagrams/User Flows 68 | - Developer Workflow 69 | - Performance Budgets 70 | - Testing Strategy 71 | - Runbooks 72 | - Compliance Considerations 73 | - SOX 74 | - GDPR 75 | - WCAG 2.0 76 | - PCI 77 | - HIPAA 78 | - etc. 79 | - Repo creation 80 | - README.md 81 | - Local Setup 82 | - Develop Against Different Environments 83 | - Run Tests 84 | - CONTRIBUTOR.md 85 | - Conventional Commits 86 | - Code Review Process 87 | - Library Release Process 88 | - Templates and tooling 89 | - Bootstrapping new projects 90 | - Updating legacy code (Codemods) 91 | --------------------------------------------------------------------------------