/* global React, ReactDOM */ const { useState, useEffect } = React; const { Icon, useReveal, Navbar, Footer, useSiteTweaks, SiteTweaks } = window; const PROCESS = [ { n: "01", title: "Descubrimiento", desc: "Reunión inicial. Entendemos tu proceso, identificamos oportunidades y delimitamos el alcance.", give: "Un resumen del problema y de dónde vemos margen de mejora.", need: "Que nos cuentes cómo trabajáis hoy y qué te gustaría cambiar." }, { n: "02", title: "Propuesta", desc: "Documento técnico, plazos y presupuesto cerrado. Sin sorpresas.", give: "Alcance detallado, calendario y precio cerrado por escrito.", need: "Tu visto bueno, o los ajustes que quieras hacer al alcance." }, { n: "03", title: "Construcción", desc: "Sprints quincenales con demos. Tú validas, nosotros iteramos.", give: "Una demo funcional cada dos semanas con el avance real, no una maqueta.", need: "Feedback rápido después de cada demo para no desviarnos." }, { n: "04", title: "Despliegue", desc: "Puesta en producción, formación a tu equipo y soporte continuo.", give: "El sistema en producción, formación a tu equipo y un canal de soporte abierto.", need: "Coordinar contigo la fecha de puesta en marcha." } ]; const FAQ = [ { q: "¿Cuánto dura un proyecto típico?", a: "Depende del alcance. Hay automatizaciones puntuales que se entregan en pocas semanas, y proyectos más completos que llevan varios meses. El calendario exacto queda cerrado en la fase de Propuesta." }, { q: "¿Qué pasa si cambian los requisitos a mitad de proyecto?", a: "Lo hablamos en la siguiente demo y ajustamos alcance y plazos con transparencia — preferimos avisarte pronto a entregarte algo que ya no encaja." }, { q: "¿Dais soporte después de la entrega?", a: "Sí, la fase de Despliegue incluye formación a tu equipo y soporte continuo." }, { q: "¿Tengo que estar disponible durante todo el proyecto?", a: "No a diario, pero sí en las demos quincenales — es el momento en el que validas el avance y evitamos desviarnos del objetivo." } ]; const FaqItem = ({ q, a }) => (
{q}

{a}

); const ProcessPage = () => { const [t, setTweak] = useSiteTweaks(); const [contactInfo, setContactInfo] = useState({}); useReveal(1); useEffect(() => { fetch("api/settings.php?action=get_public") .then(r => r.json()) .then(d => { if (d.ok && d.settings) setContactInfo(d.settings); }) .catch(() => {}); }, []); const onScroll = (id) => { if (id === "top") { window.scrollTo({ top: 0, behavior: "smooth" }); return; } window.location.href = `index.html#${id}`; }; return ( <> setTweak("theme", t.theme === "dark" ? "light" : "dark")} onScroll={onScroll}/>

De la primera reunión a producción en semanas, no meses.

Un método sencillo, transparente y con entregas frecuentes. Cuatro fases, con lo que recibes y lo que necesitamos de ti en cada una.

{PROCESS.map(p => (
{p.n} Fase {p.n}

{p.title}

{p.desc}

Recibes: {p.give}
Necesitamos: {p.need}
))}
Preguntas frecuentes

Sobre cómo trabajamos.

{FAQ.map(f => )}
¿Empezamos por la fase de Descubrimiento?

Una llamada inicial gratuita, sin compromiso.

Hablemos