Hay mucho de eso.
Estás en lo correcto cuando ves que la tenencia múltiple maneja principalmente el nivel de base de datos de la separación de datos.
Cuando se habla de interfaces altamente personalizadas que crean los usuarios, realmente debería comenzar a pensar en cómo algunos servicios como Shopify manejan su interfaz, con Timber. No es una cosa fácil. Dos de mis desarrolladores anteriores son antiguos ingenieros que crearon un motor de renderizado similar para que los usuarios finales creen sitios móviles para una alta personalización. No es fácil entenderlo. Debe crear un diálogo entre su usuario y su aplicación, dado lo que su usuario final sabe y cuán fuertes son sus habilidades de desarrollo front-end. Si son lo suficientemente importantes como desarrolladores, puede dejarlos sueltos con etiquetas de marcado. Puede almacenar su markdown / erb / haml / lo que sea, validarlo, y me refiero a VALIDARLO, y luego pasar ciertos datos disponibles a una plantilla. Las plantillas líquidas son un buen lugar para comenzar, en la implementación de cómo construiría front-end verdaderamente personalizables.
- ¿Cuánto tiempo le tomaría a un principiante de programación aprender a escribir una aplicación de una sola página con backend?
- ¿Cuál es la mejor plataforma de aplicaciones web para replicar una aplicación nativa para un sitio de comercio electrónico?
- ¿Cuáles son algunos ejemplos de sitios web de "inicio instantáneo"?
- ¿Cómo analizamos informes resumidos en JMeter para probar la carga de una aplicación web?
- ¿Se pueden usar los marcos Javascript (API Angular + NodeJs + REST) para estas situaciones?
Otro lugar está utilizando vistas predeterminadas en Rails 3.0 con solucionadores personalizados. Es una forma novedosa (que todavía funciona en 4.0), si representa plantillas estáticas (que ha escrito a través del trabajo, o algo por el estilo).
Otra cosa es que, al menos con el etiquetado blanco, les permite construir su propia aplicación de rieles, dada una cierta flexibilidad, les permite usar su motor para impulsar su aplicación. Ciertamente no es el más ideal, pero es una posibilidad, dependiendo de su caso de uso. Este es mi método preferido para el etiquetado blanco para pocos clientes, si va a tener todo el control sobre el código. Por lo general, con esto, crearé una tabla de configuración, con un montón de esquemas de colores, opciones de fuente, y escribiré un archivo css.erb complementario que sobrescribirá un montón de estilos predeterminados.
La última opción es almacenar valores en javascript y hackearlos en un marco front-end como Backbone, Ember o Angular para crear esas capas, inyectarlas y llamarlo un día.
Nada de esto es una tarea fácil, pero es una tarea muy factible.