Saltar al contenidoSkip to content
info@kromagency.esVer proyectosView projects
Portal ClientesClient Portal (abre en otra pestaña)
KROMSoftware Engineering
Iniciar proyectoStart a project
InicioHome/ProyectosProjects/Tubuencamino
Turismo y ocioTravel & leisure · Plataforma a medida · Custom platform

De un monolito a una plataforma, sin parar el negocioFrom a monolith to a platform, without stopping the business

Tubuencamino organiza viajes por el Camino de Santiago: rutas, alojamientos, traslados y el itinerario completo de cada peregrino. Todo eso vivía dentro de una sola aplicación Laravel que había crecido durante años.Tubuencamino organises trips along the Camino de Santiago: routes, accommodation, transfers and each pilgrim’s full itinerary. All of it lived inside a single Laravel application that had grown for years.

Visitar el sitioVisit the siteTenemos algo parecidoWe have something similar
La portada: rutas, experiencias y reservas
La portada: rutas, experiencias y reservasThe homepage: routes, experiences and booking
Dos experiencias, Premium y Adventure
Dos experiencias, Premium y AdventureTwo experiences, Premium and Adventure
El catálogo completo de caminos
El catálogo completo de caminosThe full catalogue of routes
12+
Aplicaciones en producciónApplications in production
8
Dominios de negocioBusiness domains
4
Servidores gestionadosManaged servers
1
Monolito jubiladoMonolith retired
01//El punto de partidaThe starting point

Una sola aplicación para todo el negocioOne single application for the whole business

Reservas, clientes, facturación, traslados, correos y comisiones compartían base de código y base de datos. Es la evolución natural de un negocio que crece: cada necesidad nueva se añadió donde había sitio, y el resultado fue un sistema donde tocar una cosa podía romper otra sin relación aparente.Bookings, clients, invoicing, transfers, emails and commissions shared one codebase and one database. It is the natural path of a growing business: each new need was added wherever it fitted, and the result was a system where touching one thing could break something seemingly unrelated.

El problema de fondo no era el código: era que el negocio ya no cabía dentro. Equipos distintos —ventas, operaciones, contabilidad— necesitaban ritmos distintos, y todos dependían del mismo despliegue. Cualquier cambio en contabilidad paraba a ventas.The real problem was not the code: it was that the business no longer fitted inside it. Different teams —sales, operations, accounting— needed different rhythms, and all depended on the same deployment. Any change in accounting held up sales.

02//La estrategiaThe strategy

Nadie puede permitirse un apagón de seis mesesNobody can afford a six-month blackout

La reescritura desde cero era la opción evidente y la peor: meses sin entregar nada, con el sistema viejo degradándose y el negocio esperando. Se descartó desde el principio.A rewrite from scratch was the obvious option and the worst one: months without delivering anything, with the old system degrading and the business waiting. It was ruled out from the start.

En su lugar, el monolito se fue vaciando por dominios. Cada área del negocio salió cuando estuvo lista, con sus datos y su ritmo propio, mientras el resto seguía funcionando donde estaba. El sistema antiguo fue perdiendo responsabilidades hasta quedarse sin ninguna.Instead, the monolith was emptied domain by domain. Each business area moved out when it was ready, with its own data and its own pace, while the rest kept running where it was. The old system lost responsibilities until it had none left.

Un dominio cada vezOne domain at a time
Sale entero y funcionando, no a medias.It moves out whole and working, never half-done.
El negocio nunca paraThe business never stops
Lo migrado y lo pendiente conviven mientras dure el proceso.Migrated and pending parts coexist for as long as it takes.
ReversibleReversible
Si un paso sale mal, se vuelve atrás sin arrastrar al resto.If a step goes wrong, it rolls back without dragging the rest.
03//Qué hay hoy en producciónWhat runs in production today

Ocho dominios, cada uno con su propia aplicaciónEight domains, each with its own application

01

Reservas e itinerariosBookings and itineraries

El núcleo del negocio: rutas, etapas, alojamientos, cupos y el itinerario completo de cada peregrino.The core of the business: routes, stages, accommodation, availability and each pilgrim’s full itinerary.

02

VentasSales

Cartera por agente, leads, presupuestos, seguimiento y actividad comercial medida.Per-agent portfolio, leads, quotes, follow-up and measured sales activity.

03

OperacionesOperations

Lo que ocurre cuando el viaje ya está vendido: bonos, welcome packs, seguros, incidencias y proveedores.What happens once the trip is sold: vouchers, welcome packs, insurance, incidents and suppliers.

04

TrasladosTransfers

Servicio propio de transporte: rutas, conductores, disponibilidad, asignación y costes.In-house transport: routes, drivers, availability, assignment and costs.

05

ContabilidadAccounting

Gastos, ingresos, facturación, adeudos y remesas bancarias, conciliados contra lo que pasa de verdad.Expenses, income, invoicing, debits and bank files, reconciled against what actually happened.

06

FinanzasFinance

La capa de dirección: tesorería, previsión y la foto que permite decidir con números.The management layer: treasury, forecasting and the numbers behind each decision.

07

ComunicacionesCommunications

Correo transaccional con el peregrino y con el proveedor, con su trazabilidad y su histórico.Transactional email with pilgrims and suppliers, with full traceability and history.

08

Inteligencia de negocioBusiness intelligence

Los datos de todos los dominios puestos a trabajar juntos, en lugar de en hojas de cálculo sueltas.Data from every domain working together, instead of scattered across spreadsheets.

04//Lo que ahora deja rastroWhat leaves a trace now

Antes no había trazabilidad de nadaBefore, nothing left a trace

Un monolito no solo mezcla el código: mezcla la responsabilidad. Un traslado se asignaba y ahí se acababa el registro; un gasto vivía en una hoja aparte; el seguimiento de un cliente estaba donde lo hubiera dejado quien lo llevaba. Con eso no se puede auditar nada, ni saber dónde se pierde el dinero.A monolith does not just mix code: it mixes accountability. A transfer was assigned and the record ended there; an expense lived in a separate sheet; a client’s follow-up sat wherever whoever handled it had left it. Nothing of that can be audited, nor can you tell where money leaks.

Al salir por dominios, cada proceso pasó a registrar el suyo. Lo que sigue está medido sobre el mismo tramo del año —del 1 de enero al 22 de septiembre— en 2024 y en 2026.As each domain moved out, every process started recording its own trail. What follows is measured over the same stretch of the year — 1 January to 22 September — in 2024 and in 2026.

TrasladosTransfers

AntesBeforeUna fila sin ciclo: sin estado, sin conductor y sin coste.A row with no lifecycle: no status, no driver, no cost.

AhoraNowConfirmado, completado o cancelado, con conductor, coste y margen por servicio.Confirmed, completed or cancelled, with driver, cost and margin per service.

ContabilidadAccounting

AntesBeforeFuera del sistema: ni un apunte registrado.Outside the system: not a single entry recorded.

AhoraNowMás de 4.600 apuntes de gasto e ingreso en lo que va de 2026, conciliados contra banco.Over 4,600 expense and income entries so far in 2026, reconciled against the bank.

VentasSales

AntesBeforeEl seguimiento, donde lo dejara cada agente.Follow-up wherever each agent had left it.

AhoraNowCada lead y cada presupuesto con agente, etapa y actividad registradas.Every lead and quote with its agent, stage and activity recorded.

ReservasBookings

AntesBeforeEl itinerario y los correos, sin registro que consultar.Itinerary and emails, with no record to consult.

AhoraNowUn 15 % más de reservas gestionadas que en 2024, con su itinerario, sus pagos y sus envíos trazados.15% more bookings handled than in 2024, with itinerary, payments and emails traced.

05//Por dentroInside

Las herramientas con las que trabajan cada díaThe tools they work with every day

Capturas del entorno de desarrollo con todos los datos sustituidos por ficticios: clientes, rutas, proveedores, agentes, importes y fechas. Lo que se ve es la estructura, nunca la información del cliente.Screenshots from the development environment with every piece of data replaced by dummies: clients, routes, suppliers, agents, amounts and dates. What you see is the structure, never the client’s information.

Operaciones · Alertas: veinte controles que vigilan lo que se puede torcer
Operaciones · Alertas: veinte controles que vigilan lo que se puede torcerOperations · Alerts: twenty checks watching what can go wrong
Operaciones · Reservas, con sus cinco estados y el buscador avanzado
Operaciones · Reservas, con sus cinco estados y el buscador avanzadoOperations · Bookings, with five states and advanced search
Ventas · Presupuestos por agente, ruta y fechas
Ventas · Presupuestos por agente, ruta y fechasSales · Quotes by agent, route and dates
Traslados · Carga de trabajo por conductor y resultado del servicio
Traslados · Carga de trabajo por conductor y resultado del servicioTransfers · Workload per driver and service margin
Contabilidad · Adeudos por semana y lo que requiere atención
Contabilidad · Adeudos por semana y lo que requiere atenciónAccounting · Weekly direct debits and what needs attention
Contabilidad · Facturas de gasto, pendientes y validadas
Contabilidad · Facturas de gasto, pendientes y validadasAccounting · Expense invoices, pending and validated
Finanzas · La misma foto, para quien decide
Finanzas · La misma foto, para quien decideFinance · The same picture, for whoever decides
06//InfraestructuraInfrastructure

Los servidores también son nuestro problemaThe servers are our problem too

La plataforma corre sobre cuatro servidores Linux que administramos nosotros: uno local en las oficinas del cliente, dos en la nube y uno dedicado. No es una elección estética: cada carga está donde le conviene por coste, latencia y quién necesita llegar a ella.The platform runs on four Linux servers we administer ourselves: one on-premises at the client’s offices, two in the cloud and one dedicated. It is not an aesthetic choice: each workload sits where it makes sense in cost, latency and who needs to reach it.

No son solo máquinas. El DNS y la capa de borde están en Cloudflare, el correo transaccional sale por Amazon SES, las copias y el almacenamiento interno viven en un NAS Synology de la oficina, los flujos que conectan sistemas corren en n8n, el trabajo se coordina en Asana y los análisis de datos se hacen en Python.They are not just machines. DNS and the edge layer sit on Cloudflare, transactional email goes out through Amazon SES, backups and internal storage live on a Synology NAS at the office, the flows connecting systems run on n8n, work is coordinated in Asana and data analysis is done in Python.

Administrar nosotros los servidores cambia la relación con el proyecto: cuando algo falla a las once de la noche no hay que abrir un ticket con un tercero y esperar. Se entra, se mira y se arregla.Administering the servers ourselves changes the relationship with the project: when something fails at eleven at night there is no third-party ticket to open and wait on. You go in, look and fix it.

07//El día a díaDay to day

Un proyecto que no se entregó: se sostieneA project that was not delivered: it is sustained

Tubuencamino no es un encargo cerrado con fecha de entrega. Se trabaja a diario: funcionalidad nueva según lo que pide el negocio, incidencias cuando aparecen, y el mantenimiento de todo lo que ya está en producción.Tubuencamino is not a closed engagement with a delivery date. It is worked on daily: new functionality as the business requires it, incidents when they appear, and maintenance of everything already in production.

El proyecto empezó con más manos. Hasta junio de 2026 había otros desarrolladores en los repositorios; desde entonces, el equipo de software de Tubuencamino es Krom. Las aplicaciones en producción, el monolito que queda por jubilar y los cuatro servidores los sostiene hoy una sola persona.The project started with more hands. Until June 2026 there were other developers in the repositories; since then, Tubuencamino’s software team is Krom. The applications in production, the monolith still being retired and the four servers are now sustained by a single person.

Es el tipo de relación que explica por qué Krom existe. Un sistema que mueve un negocio entero no se termina nunca del todo: se cuida. Y quien lo cuida tiene que entenderlo de arriba abajo, no haberlo leído en una documentación.It is the kind of relationship that explains why Krom exists. A system that runs an entire business is never quite finished: it is looked after. And whoever looks after it has to understand it end to end, not have read about it in a handover document.

¿Tienes un sistema que ya no cabe en sí mismo?Got a system that no longer fits inside itself?

Cuéntanos qué te frena. Si se puede migrar por partes, te decimos por dónde empezar y qué esperar de cada paso.Tell us what is holding you back. If it can be migrated in stages, we will tell you where to start and what to expect from each step.

Plantear un proyectoStart a projectVer arquitectura de softwareSee software architecture
WhatsApp
00//CookiesCookies

Usamos cookies propias y de terceros para medir el tráfico, y podríamos usarlas para medir campañas publicitarias. No se activa ninguna hasta que decidas. Puedes aceptarlas todas, rechazarlas todas o elegir por categoría, y cambiar de opinión cuando quieras desde «Preferencias de cookies», en el pie. Detalle completo en la política de cookies.We use first- and third-party cookies to measure traffic, and we may use them to measure advertising campaigns. None are enabled until you decide. You can accept all, reject all or choose by category, and change your mind at any time from “Cookie preferences” in the footer. Full detail in our cookie policy.