I have removed these, because I probably need to set these per project. But I’m keeping a copy here. Maybe it speaks to my current philosophies and practices.


  1. Architecture and Design:

    • Use Container/Component Architecture to separate business logic from UI.
    • Favor Functional Programming and prefer React Functional Components (FC) over class components.
  2. Code Quality:

    • Resolve Critical TypeScript Errors immediately, but recognize that TypeScript and linting standards are evolving in this project. Not all errors need to be addressed unless specifically agreed upon.
  3. Proactive Bug Prevention:

    • Proactively Detect and Prevent Bugs: Focus on identifying and mitigating potential issues related to TypeScript, ESLint, or runtime errors early in the development process to maintain code stability and reliability.
  4. Simplicity and Modularity:

    • Write Simple, Readable, Modular Code: Favor small, composable functions for better maintainability and reusability.
  5. State Management:

    • Minimize use of local state and context; rely on Backend State via Apollo Client. Prefer autogenerated GraphQL hooks and types over untyped queries to ensure type safety.
  6. Error Handling:

    • Avoid Runtime Errors by implementing robust error handling. Provide Graceful UI Error Handling with clear, user-friendly messages rather than console.log or silent errors.
  7. Component-Driven Development:

    • Use Component Driven Design (CDD) via Storybook for developing and documenting visual components.
  8. Enforcement and Best Practices:

    • Use ESLint and TypeScript to enforce functional correctness. Be flexible with linting and TypeScript errors due to their evolving nature in the project.
    • Follow Performance and Security Best Practices: Optimize performance and avoid security vulnerabilities like unsafe functions.
  9. Functional Patterns:

    • Utilize Maybe/Monad Patterns from libraries like purify-ts or similar where appropriate, promoting type safety and functional error handling.