Es una guía, no un sitio de cliente: cada bloque te dice QUÉ poner y DÓNDE
editarlo. Los datos viven en src/config/site.ts.
El Hero: di en una frase qué haces y para quién
Es lo primero que se ve. Un H1 único con tu propuesta (incluye ahí tu palabra clave principal) y, debajo, una sola línea que la resuma sin tecnicismos.
Qué incluir. El hero es tu primera impresión y solo tienes unos segundos: en ese instante el visitante decide si se queda. Resuélvelo con un H1 único que diga, en lenguaje claro, qué ofreces y para quién —ahí va tu palabra clave principal, sin forzarla—. Debajo, una sola frase de apoyo que sume el beneficio concreto o despeje la duda más común. Cierra con una o dos acciones, la principal primero, para que el siguiente paso sea obvio. El logotipo vive en el Header: aquí manda el mensaje, no la marca.
Cómo redactarlo. Escribe para una persona, no para un buscador: parte de una necesidad real y promete solo lo que puedas demostrar. Cambia los adjetivos por hechos —«entrega en 48 horas» convence más que «súper rápido»— y apóyate en verbos concretos. Léelo en voz alta: si suena a folleto, reescríbelo hasta que suene a alguien que de verdad sabe del tema. Evita varios H1, párrafos eternos, tecnicismos y promesas vagas; cuando dudes, recorta. Todo esto vive en el componente Hero —title, accent, subtitle y descRight—: esto que lees es, justamente, el ejemplo.
El sistema
Los módulos del sitio: 18 piezas reutilizables
Un sitio profesional no es una página suelta: es un puñado de piezas que se repiten y se combinan —topbar, header, hero, tarjetas, footer—. Aquí están las del sistema; entra a cualquiera para verla a fondo.
Cada tarjeta es una pieza REAL de este sitio, no un ejemplo de relleno: su foto, su nombre, qué resuelve y los elementos que la componen. Es el MISMO card del catálogo —no inventamos un diseño aparte—, porque la coherencia entre piezas es justo lo que el sistema enseña.
Todo sale de una sola lista (MODULOS en site.ts): publicar un módulo lo suma a la vez al menú del header, a esta vitrina y al índice de /modulos. Entra a cualquiera y verás qué problema resuelve, de qué piezas se compone y cómo se construye.
Migas de pan
Dónde estás y el camino de vuelta: el rastro de navegación en páginas internas.
Ver móduloSpotlight de categoría
Spotlight 2 columnas: bullets + marcas + galería de 3 imágenes. Para destacar una categoría en la home.
Ver móduloTarjeta de servicio
La ficha breve del catálogo de servicios: ícono o foto + CTA dual (ficha o WhatsApp).
Ver móduloFAQ + Formulario
FAQ en 2 columnas: acordeón izquierda + tarjeta de contacto WhatsApp sticky a la derecha.
Ver móduloPor dentro
Cada módulo, por dentro
La vitrina de arriba te dice qué es cada pieza; aquí la abrimos. Mismo formato para todas: qué resuelve, de qué partes se compone y en qué te fijas al construirla.
Es el MISMO bloque «a fondo» del catálogo —información a la izquierda, galería a la derecha, idéntico para cada módulo—. Reusar el patrón es, otra vez, la lección: el sitio se arma con piezas que ya existen.
Son los mismos módulos que ves arriba como tarjetas, abiertos uno por uno con la misma estructura. El copy y la galería salen de una sola fuente (MODULE_AFONDO en lib/modules.ts), compartida con el índice /modulos.
El módulo a fondo
Topbar
El topbar es la franja delgada que corona el sitio, por encima del menú. No vende: acerca. En ese espacio mínimo caben las señales que un visitante busca antes de decidir —un teléfono, un horario, un WhatsApp—, para que contactarte nunca esté a más de un vistazo de distancia, en cualquier página.
Por eso su contenido es deliberado y corto: a la izquierda, una frase de posicionamiento o un dato de confianza; a la derecha, los accesos de contacto. El logotipo NO va aquí —vive en el header, justo debajo—. Y como todo en la plantilla, sus datos salen de site.ts (CONTACT, waUrl): se escriben una vez y se actualizan solos en todo el sitio.
- Contacto directo: teléfono con clic-para-llamar y WhatsApp con mensaje pre-armado
- Señal de confianza: el horario de atención, que se oculta en móvil para priorizar la acción
- Datos desde site.ts (CONTACT · waUrl): se escriben una vez y se propagan a todo el sitio
- El logotipo NO va aquí: su lugar es el header, en la fila de abajo
El módulo a fondo
Header
El header es la barra de navegación principal, justo bajo el topbar: el mapa del sitio que viaja en cada página. A la izquierda el logotipo —ancla de identidad y atajo a la home—; a la derecha, las secciones. Su trabajo es que cualquiera sepa, en todo momento, dónde está y a dónde puede ir.
No se escribe a mano: todo el menú —escritorio, paneles desplegables y versión móvil— se genera desde NAV en site.ts, una sola fuente. Agregar o quitar una sección actualiza los tres a la vez, y los hijos (productos, servicios…) salen de la taxonomía, así el menú nunca se desincroniza del contenido real.
- Logotipo a la izquierda: identidad y «volver al inicio» que todos esperan
- Navegación data-driven desde NAV: escritorio y móvil de la misma fuente
- Paneles mega/dropdown con el contenido de la taxonomía, no listas aparte
- CTA de conversión (Cotizar) siempre visible a la derecha
El módulo a fondo
Migas de pan
Las migas de pan son el rastro fino que aparece en las páginas internas, bajo el header: Inicio › Sección › Página. En una línea le dicen al visitante dónde está parado y, sobre todo, le dan el camino de vuelta a cualquier nivel sin recurrir al botón del navegador.
Más allá de la comodidad, ordenan la jerarquía del sitio para las personas y para los buscadores, que muestran esa ruta en los resultados. Se arman solas a partir de la ubicación de la página, así que reflejan siempre la estructura real, sin mantenerse a mano.
- Ubicación clara: «dónde estoy» de un vistazo, en páginas internas
- Camino de vuelta a cada nivel superior, sin usar el botón atrás
- Jerarquía legible para personas y para buscadores (rich results)
- Se generan desde la ruta de la página: nunca se escriben a mano
El módulo a fondo
Hero
El hero es lo primero que se ve: la franja de apertura con un H1 único que dice, en lenguaje claro, qué ofreces y para quién. Tienes pocos segundos y aquí se decide si el visitante se queda. Por eso manda el mensaje, no la decoración —el logotipo vive en el header, no aquí—.
Debajo del título, una sola frase de apoyo que suma el beneficio o despeja la duda más común. La acción (uno o dos botones) se movió a la franja de abajo: regla canónica «el hero presenta, la franja convierte». Todo sale de unas pocas props reutilizables en cualquier página.
- Un solo H1 con la propuesta de valor y la palabra clave principal
- Subtítulo de apoyo: una frase, sin tecnicismos
- El logotipo NO va aquí —su lugar es el header—
- «El hero presenta, la franja convierte»: los CTAs viven debajo
El módulo a fondo
Menú de secciones
Es la franja de botones que va justo bajo el hero: atajos a las secciones de la página para que el visitante salte a lo que busca sin volver al header. Es el patrón de los catálogos —entras y, de inmediato, ves por dónde moverte—.
Es data-driven: los botones se generan desde NAV, la misma fuente del header, así que agregar o quitar una sección actualiza el menú y esta franja a la vez. El último botón es el CTA de conversión (WhatsApp), armado con waUrl(): de nuevo, el hero presenta y la franja convierte.
- Atajos a cada sección, justo debajo del hero
- Mismos datos que el header (NAV): nunca se desincroniza
- Último botón = CTA de conversión (WhatsApp con waUrl)
- Copa el ancho disponible y se apila en móvil
El módulo a fondo
Encabezado de sección
Es el encabezado que abre cada bloque del sitio: un eyebrow con barra de acento, el título (H2) y una descripción. Da contexto antes del contenido y mantiene la jerarquía —un solo H1 en el hero, H2 en cada sección— para que personas y buscadores se ubiquen.
Un único componente para TODOS los títulos: en su variante «duo» reparte el bloque en dos columnas —título a la izquierda, dos párrafos que explican la sección a la derecha—. Reusarlo evita inventar un diseño por título y mantiene el sitio coherente, con menos CSS que mantener.
- Eyebrow + título (H2) + descripción: contexto antes del contenido
- Mantiene la jerarquía H1 → H2 → H3 del sitio
- Variante «duo»: título a la izquierda, 2 párrafos a la derecha
- Un solo componente para todos los títulos: cero diseño duplicado
El módulo a fondo
Tarjeta de categoría
Son las tarjetas de la vitrina del catálogo: cada categoría presentada como un producto —foto real, etiqueta de gancho, título, texto de venta breve y atajos a las subcategorías—. Convierten una lista larga en un mapa que se entiende de un vistazo.
Se generan desde una sola lista (SHOWCASE en site.ts): agregar o quitar una tarjeta actualiza la vitrina sin tocar la página. Cada parte cumple su función —el título es H3, la imagen lleva alt descriptivo, las subcategorías son enlaces internos reales—, así sirve a la persona y al SEO.
- Foto + etiqueta + título (H3) + texto + chips de subcategorías
- Data-driven desde SHOWCASE: la vitrina se arma sola
- Subcategorías = enlaces internos con anchor text real
- Cuatro por fila en escritorio, con alturas iguales
El módulo a fondo
Categoría a fondo
Es el bloque de dos columnas que amplía UNA categoría: a la izquierda la información detallada (título, párrafos, puntos clave y CTA); a la derecha una galería con una imagen grande y dos debajo. Refuerza la categoría antes de que el visitante entre a su página.
Es justo el bloque que estás leyendo ahora. Reutilizable y data-driven: el título y la imagen principal pueden salir del catálogo para no duplicar datos. La regla del sitio: todos idénticos —info a la izquierda, galería a la derecha—, sin alternar lados ni fondos, para que la lectura sea predecible.
- Dos columnas: info detallada a la izquierda, galería a la derecha
- Galería de apoyo: una imagen grande y dos pequeñas
- Refuerza la categoría antes de entrar a su página
- Todos idénticos, sin zig-zag (regla dura del sitio)
El módulo a fondo
Spotlight de categoría
Es el spotlight de 2 columnas para destacar UNA categoría en la home o en la página de sección: texto con bullets + pills de marcas a la izquierda, galería 1+2 (imagen grande y dos thumbs) a la derecha. Funciona como puerta de entrada premium a una categoría antes de que el visitante baje al grid de cards.
Data-driven: recibe `title`, `body[]`, `points[]`, `brands[]` (pills) y una galería de 3 imágenes. La inversión de columnas (flip) se controla con un prop boolean para alternar el layout en successive bloques sin duplicar CSS. Las pills de marcas son anchor-text internos con href a la sección de la marca —interlinking directo al nodo relevante—.
- Dos columnas: texto + bullets + pills de marcas izquierda, galería 1+2 derecha
- Pills de marcas = interlinking con anchor text hacia la sección
- Prop `flip` para alternar la posición de las columnas sin nuevo CSS
- Data-driven desde site.ts: cero contenido hardcodeado en el componente
El módulo a fondo
Tarjeta de producto
Es la ficha breve del catálogo: cada producto presentado como una card uniforme con imagen 16:9, badge (norma o categoría), título H3, descripción corta y un CTA inline. Todo dentro de un único enlace que vuelve la card entera clic-en-cualquier-lado, así el visitante escanea y entra a la ficha de un solo gesto.
Vive en un componente con API pequeña (title, href, image?, badge?, description?, ctaLabel?, index?, priority?) y se alimenta desde getCollection('productos') —una colección Markdown validada por Zod—. No emite Product JSON-LD: el schema vive centralizado en lib/seo.ts y solo lo invoca la ficha L4. El grid del padre emite ItemList vía directorySchema. Regla B3: un solo emisor de schema por página.
- Imagen 16:9 con width/height fijos (cero CLS) + badge opcional + título H3
- Las 4 primeras cards cargan en eager, las demás en lazy (auto por index)
- priority=true en la primera del grid → LCP cuidado (fetchpriority=high)
- Cero schema en la card: ItemList lo emite el padre, Product solo la ficha L4
El módulo a fondo
Tarjeta de servicio
Es la ficha breve del catálogo de servicios: cada servicio como una card uniforme con ÍCONO SVG por defecto (no foto, porque las fotos de servicios suelen ser genéricas), título H3, descripción corta y un CTA dual. La foto 16:9 solo entra cuando aporta algo concreto —un evento, una instalación— y reemplaza al ícono. El badge va inline o sobre la foto, según el modo.
La novedad respecto a la tarjeta de producto: el CTA es DUAL. Por defecto enlaza a la ficha L4 («Ver servicio»); si pasas whatsapp={true}, muta a un botón verde con el ícono de WhatsApp y abre wa.me con mensaje pre-armado. Útil para servicios consultivos donde el siguiente paso real es chatear, no leer. La card no emite Service schema: vive en lib/seo.ts y solo lo invoca la ficha L4. Regla B3: un solo emisor por página.
- Modo ícono por defecto (caja 56×56 roja clara) o modo imagen 16:9 con overlay
- Badge opcional: inline arriba del título (modo ícono) o absoluto sobre la foto (modo vitrina)
- CTA dual: enlace «Ver servicio» a la ficha L4, o botón verde WhatsApp con waUrl()
- Cero schema en la card: ItemList lo emite el grid padre, Service solo la ficha L4
El módulo a fondo
Reseñas
Son las tarjetas de prueba social: opiniones de clientes con su calificación, nombre y rol. Llegan en el momento en que el visitante duda y responden la pregunta que no hace en voz alta —«¿le funcionó a alguien como yo?»— con la voz de un tercero, que pesa más que la tuya.
Cada reseña es una tarjeta uniforme (ReviewCard) alimentada por datos, así que se ven y se comportan igual en todo el sitio. En un sitio real, reseñas verdaderas y atribuibles; aquí, ejemplos. La clave es la honestidad: prueba social que se pueda sostener, nunca inventada.
- Cita + calificación de 5 estrellas + nombre y rol del cliente
- Avatar con iniciales (sin peso de imagen, uniforme y profesional)
- Tarjetas uniformes (ReviewCard), data-driven desde el frontmatter
- Schema Review opcional en lib/seo.ts, gateado por SITE.allowSelfReviews (regla B4)
El módulo a fondo
Preguntas frecuentes
Es el acordeón de dudas comunes: preguntas que se despliegan para mostrar su respuesta, al cierre de la página. Resuelve las objeciones típicas antes de que frenen la conversión y, de paso, baja la carga de soporte respondiendo lo que todos preguntan.
Además del valor para la persona, centraliza el esquema FAQPage (JSON-LD) para que los buscadores puedan mostrar las preguntas en los resultados. Recibe una lista de pregunta y respuesta, y arma todo: el acordeón accesible y el schema, sin duplicar nada.
- Acordeón de preguntas frecuentes, al cierre de la página
- Resuelve objeciones y baja la carga de soporte
- Esquema FAQPage (JSON-LD) centralizado para rich results
- Data-driven: lista de pregunta/respuesta → acordeón + schema
El módulo a fondo
FAQ + Formulario
Es el patrón de 2 columnas que acompasa el FAQ con un formulario de contacto sticky: el acordeón de preguntas ocupa la columna izquierda y la tarjeta de contacto WhatsApp se ancla a la derecha durante el scroll. El resultado: el CTA siempre está a la vista mientras el visitante lee las respuestas, sin que tenga que volver arriba a buscar el botón.
La tarjeta sticky incluye un select de asunto (configurable), un textarea con contador de caracteres y el mismo botón de WhatsApp que ContactForm —el número sale de CONTACT.whatsapp, construido con waUrl()—. Al no ser un backend, la respuesta es inmediata: el mensaje se abre en WhatsApp pre-armado, listo para enviar.
- FAQ (acordeón izquierda) + tarjeta de contacto sticky (derecha): CTA siempre visible
- Select de asunto configurable para pre-cualificar el lead antes del primer mensaje
- Sin backend: el formulario arma el mensaje y abre wa.me, cero fricción
- Schema FAQPage opcional con emitSchema desde FAQAccordion (regla B3)
El módulo a fondo
CTA banner
El CTA banner es la franja de cierre que convierte: un heading breve, una descripción de una línea y uno o dos botones tipados que no dejan dudas sobre el siguiente paso. Cada página termina pidiendo algo —cotizar por WhatsApp, ver el catálogo, ir a contacto— y el banner es ese cierre, repetido con intención y la misma forma visual en todo el sitio.
El componente vive en CTABanner.astro con tres variantes (red · dark · light) y un array de presets en cta-presets.ts (PRESET_GENERAL para home/landing, PRESET_CATEGORIA para fichas, PRESET_CONTACTO para cierres claros). Los botones son tipados (icon: wa | arrow | phone | catalog | info | quote, primary, external) y los enlaces a WhatsApp se arman con waUrl(WA_MESSAGES.cotizacion). Cero hardcoding del número (regla D4): la SSoT es CONTACT.whatsapp de site.ts.
- Heading + descripción + badge de confianza + btns[] tipados con íconos SVG inline
- Tres variantes de fondo: red (sólido) · dark (gradiente) · light (gris claro con bordes)
- 3 presets canónicos en cta-presets.ts (general · categoría · contacto) — cero copy repetido
- WhatsApp con waUrl(WA_MESSAGES.x); foco visible AA; mobile-first full-width al ≤560
El módulo a fondo
Formulario de contacto
Es el formulario que recoge al visitante listo para hablar. En esta plantilla NO manda correos ni golpea un backend: arma un mensaje y abre WhatsApp con el texto pre-cargado —respuesta inmediata, sin fricción ni bandejas que revisar—. Tres campos accesibles (nombre, asunto, mensaje), labels asociados por for/id, inputs a 16 px para no disparar el zoom de iOS y botón en verde WhatsApp consistente con el flotante.
Su SSoT es CONTACT.whatsapp en site.ts: el componente lo lee como data-attribute y waUrl() lo formatea. NUNCA hardcodea un número (regla D4). El componente vive aislado (cero schema, cero estilos globales) y se incrusta donde se necesite, casi siempre al cierre de páginas como /contacto, o en columna junto al FAQ. Para sitios con backend real, el patrón es reemplazar el handler de submit por POST a una Cloudflare Pages Function con honeypot + Turnstile + rate-limit en el edge.
- Convierte a WhatsApp con el mensaje pre-armado, sin correo ni backend
- Tres campos (nombre · asunto · mensaje) con labels asociados y validación HTML5
- Inputs a 16 px (anti-zoom iOS) + autocomplete + área táctil cómoda en el botón
- Número y mensajes desde site.ts (CONTACT.whatsapp · WA_MESSAGES) vía waUrl()
El módulo a fondo
Footer
El footer es el pie de TODAS las páginas del sitio: la red de seguridad de la navegación y, sobre todo, un activo de SEO global —cada enlace que vive aquí aparece en miles de URLs y reparte equity interno al sitio entero—. Cinco zonas en orden estricto: banda CTA pre-footer (último intento de conversión), cuerpo de marca + 4 columnas data-driven (Productos, Servicios+Sectores, Cobertura, Empresa), banda opcional de cumplimiento, barra inferior con copyright dinámico + legales + scroll-top, y la barra de acento decorativa.
Vive en un único componente que se monta UNA sola vez en PageLayout —cada página hereda el footer sin hacer nada—. La data llega íntegra de site.ts (CONTACT, PRODUCT_CATEGORIES, SERVICES, SECTORS, COVERAGE_STATES, BRANCHES, SOCIAL, LEGAL); el JSON-LD Organization vive en lib/seo.ts → organizationSchema() y lo emite UNA vez buildSchema desde BaseLayout (regla B3, un único emisor). El componente NO toca el grafo: es presentación, no SEO.
- Cinco zonas: CTA + cuerpo NAP + cumplimiento + barra inferior + acento
- Activo SEO global: cada enlace aparece en miles de URLs (reparte equity)
- NAP consistente entre Topbar, Footer y JSON-LD Organization (SSoT en CONTACT)
- Schema Organization centralizado en lib/seo.ts; el componente NO emite JSON-LD
El módulo a fondo
WhatsApp flotante
Es el botón de WhatsApp fijo en una esquina, siempre visible mientras el visitante recorre el sitio. Quita la fricción del «¿cómo los contacto?»: la respuesta está a un toque, en cualquier página y en cualquier punto del scroll, sin volver al header ni al footer.
Lleva un mensaje pre-armado para que la conversación empiece con contexto, armado con waUrl() desde el número en site.ts. Discreto pero presente: no estorba la lectura y, cuando aparece la intención de contactar, ya está ahí esperando.
- Botón de WhatsApp fijo, visible en todo el scroll
- Contacto a un toque desde cualquier página
- Mensaje pre-armado con waUrl() (número en site.ts)
- Discreto: presente sin estorbar la lectura
Categoría destacada · Demo
El módulo que destaca
una categoría clave
CategoryFeature va donde CategoryDetail no llega: cuando quieres convencer de una categoría antes de que el visitante entre a su página. Bullets, marcas como prueba social y CTA prominente — todo en dos columnas.
- Bullets con ícono check — Cada ítem: label en negrita + desc breve. El check dirige la mirada.
- Pills de marcas — Nombres de marca en pills. Sin logos ni archivos SVG, solo texto.
- Galería 1 grande + 2 pequeñas — Composición derecha: imagen principal arriba y dos variantes debajo.
- Prop flip para alternar ritmo — flip={true} pone la galería a la izquierda — útil con dos spotlights.
Marcas disponibles
La empresa
Qué hacemos y cómo lo hacemos
El bloque que cuenta quién está detrás del negocio: a qué se dedica, cómo trabaja y por qué se puede confiar en él. Es de los más decisivos de la página —la gente le compra a quien entiende y le da confianza—.
Es el bloque donde el negocio deja de ser una marca anónima y se vuelve alguien con nombre, trayectoria y forma de trabajar. Antes de pedir precio o agendar, la gente quiere saber con quién trata: aquí se lo dices en tres movimientos —qué haces, cómo lo haces y con qué lo respaldas— para que la decisión deje de ser un salto al vacío.
Lo que convierte es la concreción: años en el oficio, proyectos entregados, tiempos reales, garantías que se pueden verificar —contados con voz de persona, no de folleto corporativo—. Es el contenido de experiencia y confianza que sostiene tu reputación dentro y fuera del sitio. Redáctalo una vez, con datos reales, y tendrás el argumento que más pesa cuando alguien duda entre tú y la competencia.
Qué hacemos
Aquí va, en lenguaje claro y sin tecnicismos, a qué se dedica el negocio y para quién: el producto o servicio principal, el problema que resuelve y el tipo de cliente al que sirve. Dos o tres frases bastan para que cualquiera entienda en segundos qué ofreces y si está en el lugar correcto.
Es la base de la confianza: nadie le compra a lo que no entiende. Habla de beneficios concretos, no de una lista de tareas, e incluye con naturalidad la palabra clave de tu actividad.
Cómo lo hacemos
-
El método
Resume tu forma de trabajar en pasos claros: cómo entregas, en qué te apoyas y qué te hace distinto del resto.
-
La prueba
Respáldalo con hechos —procesos, materiales, tiempos, garantías— en vez de adjetivos vacíos como «los mejores».
-
La cercanía
Habla como una persona, no como un folleto: trato directo, lenguaje claro y solo la promesa que de verdad puedes cumplir.
- +10 años de experiencia
- +500 proyectos entregados
- 98% clientes que repiten
- 24 h tiempo de respuesta
Por qué elegirnos
Los beneficios: di por qué elegirte
De tres a seis razones concretas —beneficios para el cliente, no adjetivos— que responden, de un vistazo, «¿por qué tú y no otro?». Cada una en el mismo card del catálogo: foto, dato (badge) y una frase que lo respalda.
Aquí le das al visitante los motivos para quedarse, sin presumir. Cada tarjeta convierte tu propuesta en algo que se entiende en segundos —qué gana al elegirte, no una lista de lo que haces—. Bien resuelto, es de los bloques que más inclinan la balanza.
Fíjate en los badges de las tarjetas: «Respuesta el mismo día», «Garantía 12 meses», «Sin cargos ocultos». Son datos, y por eso convencen sin necesidad de gritar que eres «el mejor». Reusan el card del catálogo para no inventar diseño; en un sitio real, cambia estas razones y sus fotos por las tuyas.
Respuesta el mismo día
Escríbenos y te contestamos en horas, no en días. Recibes un primer diagnóstico claro y los siguientes pasos desde el primer mensaje, sin filtros ni esperas.
Ver másGarantía por escrito
Cada trabajo queda respaldado por una garantía clara y por escrito. Si algo falla dentro del periodo, volvemos y lo resolvemos sin costo ni discusiones.
Ver másPrecio transparente
Recibes una cotización detallada antes de empezar: materiales, mano de obra y tiempos. Lo que acordamos es exactamente lo que pagas, sin extras de última hora.
Ver másTrato directo
Hablas siempre con quien hace el trabajo, no con un conmutador. Una sola persona te acompaña de la cotización a la entrega, con comunicación clara en cada paso.
Ver másCalidad comprobada
Usamos materiales y procesos que cumplen la norma aplicable. Te mostramos evidencia del avance y del resultado para que lo verifiques, no para que confíes a ciegas.
Ver másCobertura local
Trabajamos en tu área y conocemos sus accesos y tiempos. Llegamos puntuales y damos seguimiento de cerca, con presencia real donde estás.
Ver másReseñas
Lo que dicen quienes ya confiaron
Prueba social: testimonios concretos de clientes y negocios. Una cita específica —con nombre y rol— convence más que diez adjetivos sobre ti mismo.
La gente confía en la gente. Antes de decidir, tu visitante busca una señal de que alguien como él ya te eligió y le fue bien. Por eso pesa tanto una reseña: una frase concreta —«me entregaron en tres días», «no me cobraron de más»— vale más que cualquier promesa que tú hagas sobre tu propio trabajo.
Para que funcionen tienen que ser creíbles: nombre, rol o negocio, y un detalle específico que solo un cliente verdadero diría. Mezcla voces —empresas y personas— y no las pongas todas en cinco estrellas: una reseña de cuatro da más credibilidad que un muro de dieces. Y la regla que no se negocia: usa reseñas REALES, nunca inventadas.
Pedí mi sitio un martes y el viernes ya estaba en línea. Lo que más me gustó es que me explicaron cada paso sin tecnicismos. A las dos semanas empecé a recibir pedidos por WhatsApp.
Llevábamos años con una página que nadie encontraba. Ahora aparecemos en Google cuando buscan en la zona y las llamadas subieron de verdad; no es para presumir, es lo que pasó.
Tenía miedo de que me cobraran de más a medio camino. No pasó: el presupuesto que me dieron fue exactamente lo que pagué al final. Eso ya casi no se ve.
Trabajo serio y a tiempo. Le pongo cuatro porque al inicio quería más opciones de color, pero en cuanto lo pedí me lo resolvieron sin poner peros.
Me respondieron una duda un domingo por la tarde. Para mí eso lo dice todo: hay alguien del otro lado a quien de verdad le importa que te vaya bien.
Soy malo para la tecnología y aun así puedo cambiar fotos y precios yo solo. Me enseñaron y me dejaron una guía corta. Cero depender de alguien para una tontería.
Comparé tres presupuestos. Éste no era el más barato, pero fue el único que se tomó el tiempo de explicarme el porqué de cada cosa. Pagué por confianza y no me arrepiento.
El sitio carga volando aunque la señal del local esté floja. Mis clientes ven el menú al instante; parece poca cosa, pero en hora pico se nota muchísimo.
Astro · metadatos
Metadatos de cada página
Antes que nada se eligen 3 palabras clave y se construyen las metas sobre ellas: el title en 3 módulos (kw1 primero, sin marca) y la description que abre con la kw1 y teje las 3 sin sobreoptimizar.
Los metadatos son lo que tu página dice de sí misma antes de que alguien la abra: el título y la descripción que aparecen en una lista de resultados o cuando compartes el enlace. Aquí eliges tres palabras clave por orden de importancia y construyes ambos sobre ellas —el título arranca con la principal, sin la marca pegada, y la descripción abre con ella y teje las otras dos con naturalidad—.
El oficio está en la mesura: decirlo una vez, claro, para una persona que ojea una lista de opciones —no apilado ni repetido para «verse optimizado»—. La demo lo muestra de las dos formas, bien y mal, y la misma regla (metaAudit) marca sola la versión recargada. Unas buenas metas dan un empujón; el peso de verdad sigue en el contenido de la página.
Responsive y móvil
Cómo se ve en el teléfono
Responsive no es «encoger el escritorio»: es decidir qué se reordena, qué crece y qué se toca cómodo con el pulgar.
Todo el comportamiento móvil vive en UNA sola hoja —src/styles/mobile.css—, cargada al final del cascade y con breakpoints unificados (1024 · 768 · 640 · 480 · 380). Las medidas van en porcentaje y clamp() para que el contenido respire en cualquier ancho; solo quedan en píxeles dos cosas por norma técnica: los 16 px de los campos (evitan el zoom de iOS) y los 44–52 px de área táctil.
Abajo, cuatro decisiones de diseño móvil, cada una con su vista en el teléfono y una receta comentada lista para copiar: el ancho sin gutter doble, el toque mínimo de 44 px, los formularios sin zoom y el respeto al notch con el WhatsApp siempre a mano.
1 · Un solo margen, ancho completo
En escritorio el contenido vive en el 90% central; en móvil ese 90% más el padding interno se comían casi un quinto del ancho. Por eso en ≤768 px el container pasa a 100%: el único margen lo pone --container-px, y las rejillas de 4 columnas bajan a 1 sin tocar el componente.
/* tokens.css · ancho fluido + breakpoints unificados.
En ≤768 el container pasa a 100%: el ÚNICO margen lo da
--container-px (antes 90% + padding = gutter DOBLE en móvil). */
@media (max-width: 768px) {
:root { --container-max: 100%; }
}
@media (max-width: 640px) {
:root { --header-height: 58px; --topbar-height: 34px; }
}
/* Escala canónica de cortes: 1024 · 768 · 640 · 480 · 380 */ 2 · Nada que tocar mide menos de 44 px
El estándar de Apple (HIG) y WCAG pide 44 px mínimos en cualquier cosa tocable. Los enlaces del menú móvil, los botones y los campos crecen a esa altura, y se añade un realce de toque suave para dar feedback al tap.
/* mobile.css · área táctil mínima 44px (Apple HIG · WCAG 2.5.5). */
@media (max-width: 1024px) {
.mob-direct, .mob-item__trigger { min-height: 48px; }
.mob-item__link { min-height: 44px; display: flex; align-items: center; }
a, button, label { -webkit-tap-highlight-color: rgba(91, 61, 245, .15); }
} 3 · Formularios que no «saltan» en iOS
Safari en iPhone hace zoom automático cuando un campo tiene la letra por debajo de 16 px —y al volver, la página queda descuadrada—. Fijar 16 px en inputs, selects y textarea lo evita de raíz; el alto sube a 48 px para tocar cómodo.
/* mobile.css · formularios sin zoom en iOS.
Safari hace zoom si el campo mide < 16px → forzamos 16px. */
@media (max-width: 640px) {
.cform input, .cform textarea, .cform select {
font-size: 16px; /* clave anti-zoom */
min-height: 48px;
}
.cform__submit { width: 100%; min-height: 50px; }
} 4 · Notch respetado, WhatsApp siempre a mano
Con viewport-fit=cover el sitio usa toda la pantalla, así que los bordes respetan el área segura del iPhone (env(safe-area-inset-*)) para no quedar bajo el notch ni la barra de gestos. El botón flotante de WhatsApp se vuelve un círculo de 52 px anclado sobre esa zona.
/* mobile.css · respeta el notch/gestos iOS y ancla el FAB.
El <meta viewport> ya incluye viewport-fit=cover. */
@supports (padding: max(0px)) {
@media (max-width: 768px) {
.container {
padding-left: max(var(--container-px), env(safe-area-inset-left));
padding-right: max(var(--container-px), env(safe-area-inset-right));
}
}
}
@media (max-width: 640px) {
.wa-float { /* botón flotante de WhatsApp */
width: 52px; height: 52px;
bottom: max(1rem, env(safe-area-inset-bottom));
right: max(1rem, env(safe-area-inset-right));
}
} Hoja de ruta
Tipos de página y sus layouts
Cada tipo de página (home, categoría, ficha, artículo…) tiene su layout listo en src/layouts/. Reúsalos: tú defines el contenido y el layout pone la estructura, así no rehaces el armazón en cada página.
Un sitio no es una página repetida: son unos pocos tipos de página, cada uno con su trabajo —la home presenta, la categoría lista, la ficha de producto o servicio vende el detalle, el artículo explica—. Nombrarlos desde el principio (home, categoría, ficha, artículo, directorio) te da el mapa de qué construir y en qué orden.
Cada tipo ya tiene su layout esperando en src/layouts/, hecho una vez y reutilizable: tú traes el contenido y el layout trae la estructura —header, espaciados y bloques en su sitio—. Así nunca rehaces el armazón página por página; solo lo llenas. La lista de abajo marca lo que ya está cableado y lo que viene después.
Guía de selección
Elige según
tu necesidad
Una tabla que orienta al visitante hacia la opción correcta — y abre la conversación.
Cuando el cliente no sabe qué pedir, una tabla de selección lo guía y reduce la fricción: ve su caso reflejado y entiende qué le toca.
El detalle fino se cierra con un diagnóstico; por eso la tabla termina con un CTA a WhatsApp.
| Nivel | Para quién | Incluye | Complementos |
|---|---|---|---|
| Básico | Negocios pequeños y locales | Lo esencial para arrancar | Extras opcionales |
| Intermedio | Comercios y oficinas medianas | Cobertura estándar completa | Personalización |
| Completo | Empresas e inmuebles grandes | Solución integral | Soporte y seguimiento |
Respaldo
Lo que te
respalda
No vendes solo un producto: vendes tranquilidad y cumplimiento.
Una tabla de respaldo (garantías, normas, comprobantes) convierte porque responde la pregunta silenciosa: «¿y si algo sale mal?».
Dilo con precisión: el rigor es señal de autoridad y mejora tu SEO.
| Respaldo | Qué cubre | Aplica a |
|---|---|---|
| Garantía | Respaldo del trabajo entregado | Todos los servicios |
| Factura | Comprobante fiscal a tu nombre | Quien lo requiera |
| Norma aplicable | El estándar que rige tu giro | Según el tipo de proyecto |
Adapta las filas a tu giro: garantías, normas oficiales aplicables, certificaciones reales, comprobantes. Nunca cites una norma o certificación que no tengas.
Cómo trabajamos
De tu mensaje
al trabajo entregado
Un proceso claro reduce el miedo a dar el primer paso.
Mostrar el proceso en pasos numerados le dice al visitante exactamente qué pasa si te escribe. Menos incertidumbre, más mensajes.
Descríbelo honesto: sin prometer tiempos que no puedas cumplir.
-
Cuéntanos
Nos dices qué necesitas por WhatsApp o formulario.
-
Cotización
Te enviamos propuesta con alcance, precio y tiempos.
-
Ejecución
Hacemos el trabajo acordado con comunicación clara.
-
Entrega
Revisamos juntos y dejamos todo documentado.
-
Seguimiento
Quedamos disponibles para lo que surja después.
Preguntas frecuentes
Resolvemos tus
dudas antes de cotizar
Lo que más nos preguntan — respondemos antes de que cotices.
Reunimos las preguntas más frecuentes para que llegues al primer contacto con todo claro.
¿Tu duda no está aquí? Usa el formulario y te respondemos directamente por WhatsApp.
Cierre
El cierre: no dejes al visitante en un callejón sin salida
Antes del pie de página, repite la navegación pero hacia OTROS destinos: las páginas internas que el menú del hero no toca. Quien llega hasta aquí siempre debe tener un siguiente paso a la mano.
Es el mismo menú de secciones que va bajo el hero, reutilizado como remate de la página; lo único que cambia son los enlaces. Arriba mandas a las grandes secciones del sitio; aquí, a las páginas más profundas —la ficha de cada servicio— y a Contacto. Son justo los destinos que el primer menú deja fuera, así que entre los dos cubres el sitio entero sin repetir un solo botón.
A esto se le llama enlazado interno (interlinking): cada página ofrece caminos útiles hacia otras, y tanto el visitante como el buscador recorren el sitio sin tropezar con finales muertos. Un mismo componente, dos juegos de enlaces: arriba presenta, abajo reparte. Edita los botones en el arreglo menuCierre del frontmatter y este remate se actualiza solo.