Técnicos sin complejos · Colombia

Cómo Trabajamos

Esqueleto → modelo de contenido → semilla CSV → despliegue GHCR → retroalimentar hacia adelante. El mismo ciclo cada vez.

Hablemos Contacto

Imagen
An office lobby at golden hour, a dusty cowboy leaning on the reception desk while the receptionist points him toward the elevators.
El vestíbulo de una oficina a la hora dorada, un vaquero polvoriento apoyado en la recepción mientras la recepcionista le señala los ascensores.

Empezar desde un esqueleto

  • DDEV, PHP 8.3 y MariaDB 11.4 funcionando desde el primer día
  • Un smoke test en verde antes de escribir la primera funcionalidad
  • Ningún sprint gastado en montar el entorno local de nadie
Imagen
A drive-in at dusk, riders on horseback parked among the finned cars, one leaning down to talk to a family in a convertible.
Un autocine al anochecer, jinetes a caballo estacionados entre los autos con aletas, uno inclinado para hablar con una familia en un descapotable.

Primero el modelo de contenido, después la interfaz

  • Tipos de contenido, campos y modos de vista bocetados en YAML
  • Las plantillas se reescriben; el modelo de contenido tiene que sobrevivir a eso
  • El contenido real llega en hojas de cálculo, así que se importa como hojas de cálculo
Imagen
A suburban street at golden hour, a cowboy on horseback tipping his hat to a woman carrying groceries while a boy rides past on his bicycle.
Una calle de suburbio a la hora dorada, un vaquero a caballo se quita el sombrero ante una mujer que carga las compras mientras un niño pasa en bicicleta.

Desplegar desde una imagen y retroalimentar hacia adelante

  • Una imagen construida en cada push, no ensamblada en el servidor
  • Despliegues con llave sobre un solo host, igual cada vez
  • Cada lección que vale la pena conservar vuelve al esqueleto

Nuestro ciclo de entrega es el mismo cada vez.

1. Definir el alcance desde un esqueleto. Empezamos desde drupal-skeleton (o rust-skeleton para aplicaciones de escritorio). Heredamos DDEV, PHP 8.3, MariaDB 11.4, Composer + Node 20, y una prueba de humo en verde desde el primer día. Sin el sprint de «montemos el entorno de desarrollo local».

2. Modelar el contenido primero, la interfaz después. Los tipos de contenido, los campos, las taxonomías y los modos de visualización se bosquejan como YAML antes de dibujar una sola plantilla. El modelo de contenido sobrevive a las reescrituras de plantillas; las plantillas no sobreviven a los cambios del modelo de contenido.

3. Sembrar desde CSV, validar desde CSV. El contenido real llega como hojas de cálculo. Una superficie Drush de cuatro comandos — import, export, diff, commit — da a los operadores una superficie de trabajo plana, comparable y comentable, y da a los desarrolladores la garantía de que el sitio se reconstruye textualmente desde esos archivos.

4. Desplegar desde GHCR. GitHub Actions construye una imagen OCI en cada push; los despliegues con clave SSH hacia un único VPS con Traefik al frente hacen pull y recrean. Los despliegues que cambian el esquema destruyen y reinstalan — sin la deriva de hook_update_N huérfanos.

5. Retroalimentar hacia adelante. Cuando el proyecto se entrega, cada lección que vale la pena conservar vuelve al esqueleto. El siguiente proyecto empieza con todos los valores por defecto de este, ganados a pulso.

Hemos usado este ciclo en una propiedad bilingüe de Drupal Commerce (Mon Petit Café, Bogotá), en un tema Drupal three.js de calidad contrib, en una aplicación de escritorio de Windows para matrices, en una integración de agente de voz de ElevenLabs. Las constantes viajan; los detalles específicos no.

¿Hablamos sobre este proyecto?

Pregúntale al concierge sobre este proyecto: qué es, cómo se construyó, o ponte en contacto con nosotros.