Si necesita construir su propio marco de JavaScript, ¿cómo lo estructurará?

Un nuevo proyecto que acabo de construir se ve así, y realmente me gusta su flexibilidad y la velocidad de desarrollo que obtengo. Aprovecha los conceptos del diseño atómico, también aprovecha redux / react, pero no deja que redux se salga de control. También incluí los servicios de back-end aquí para ilustrar cómo todo se conecta.

  • nodo_módulos
  • migraciones
  • src
    • backend
      • middleware
      • modelos
      • servicios
      • routes.js
    • cliente
      • átomos (para pequeñas guías de estilo como componentes)
      • moléculas (para patrones de átomos dispuestos juntos)
      • organosims (para componentes más grandes y menos reutilizables como encabezados)
      • plantillas (los componentes para páginas)
      • páginas (para componentes inteligentes, también conocidos como contenedores y páginas estáticas)
      • estilos (opcional, hay muchas opciones de estilo en estos días)
      • main.js (punto de entrada para la web, aprovecha rutas.js)
      • routes.js (rutas compartibles para el lado del cliente y del servidor)
      • ssr.js (permite la representación del lado del servidor al aprovechar route.js)
      • store.js (almacén de datos de componentes / organismos cruzados, utiliza redux)
    • utils
      • db
      • intl
      • middleware
      • reduxMiddleware
      • prueba
  • .eslintrc
  • .gitignore
  • knexfile.js
  • main.js
  • package.json
  • webpack.config.js
  • webpack.config.dev.js
  • hilo de bloqueo

Nota: Estoy considerando fusionar plantillas y páginas en este momento. Las plantillas no son particularmente reutilizables por sí mismas.

También he estado considerando arrojar esto a un generador de código y abrirlo para obtenerlo. Creo que es el nivel de abstracción que todos buscan en este momento. Algo con renderizado universal, es lo más liviano posible, no siempre usa la biblioteca más nueva / llamativa, personalizable, no hace que atravieses 20 repos para hacer las cosas, permite un desarrollo extremadamente rápido y aún permite dividir cosas en tantos servicios separados como se desee.

Por favor no lo hagas. Hay suficientes marcos JS en el mundo. Encuentre uno que satisfaga sus necesidades y úselo. Si no satisface todas sus necesidades, bifurque y contribuya al desarrollo de código abierto.