Boulder County Dryer Vent Booking

Reserve la limpieza de conductos de secadora en Boulder County mediante MCP ($129/$169). Confirmación en 1 día hábil.

Servidor MCP alojado

npx add-mcp 'https://keeps-pty-ultimately-payroll.trycloudflare.com/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Boulder County Dryer Vent

Sitio público de marketing y embudo de reservas para Boulder County Dryer Vent (nunca "Co."). HTML/CSS/JS estático sin dependencias, construido por un pequeño script de Node y publicado en GitHub Pages.

En vivo: https://bouldercountydryervent.com/ · Consulta STATUS.md para el estado del despliegue.

Stack

  • HTML plano, una hoja de estilos (src/static/css/site.css), dos scripts pequeños (site.js, book.js). Sin framework, sin paquetes npm.
  • scripts/build.mjs (cero dependencias, Node ≥ 20) renderiza plantillas src/pages/*.mjs con datos de src/data/site.mjs en dist/.
  • Diseño: el sistema "Industry" de la exportación de Claude Design — Barlow Condensed sobre Barlow, marcos de plano con marcas de esquina +, brasa #E8632B / tinta #1F2A37 / arena #F6F1EA.
  • Despliegue: .github/workflows/pages.yml compila en cada push a main y publica dist/ (fuente de Pages = GitHub Actions). El dominio personalizado está configurado en Settings → Pages del repositorio; no se necesita archivo CNAME para despliegues con Actions. No cambies los registros MX/SPF/DKIM/DMARC de IONOS.

Desarrollo local

node scripts/build.mjs
python -m http.server 8787 -d dist

Abre http://localhost:8787/. Cualquier servidor estático apuntando a dist/ funciona.

Dónde vive cada cosa

CambioArchivo
Teléfono, correo, dirección, horario, entidad legalsrc/data/site.mjssite
Precios, tarjetas de precio, nota de llenado de rutasrc/data/site.mjsprices, priceCards
Ciudades, códigos postales, texto por ciudad, posiciones de pines en el mapasrc/data/site.mjstowns
Preguntas frecuentes, pasos del servicio, advertencias, barra de confianzasrc/data/site.mjs
Dónde se entregan los formularios de reserva/contactosrc/data/site.mjsforms.endpoint (ver abajo)
Baliza de analítica propiasrc/data/site.mjsanalytics.endpoint (colector Ava /hit; vacío = desactivado)
Enlaces de navegación, encabezado, pie de página, banda CTA, <head> / schemasrc/templates/layout.mjs
Marcado de páginassrc/pages/*.mjs
Publicaciones del blogsrc/content/blog/*.md (frontmatter: title, slug, date, category, readTime, image, imageAlt, description)
Fotossrc/static/img/ (fotos de servicio) y src/static/img/cities/ (paisajes urbanos con licencia — ver CREDITS.md)

Rutas

/, /dryer-vent-cleaning/, /pricing/, /book/, /areas/, /areas/{city}-co/, /blog/, /blog/{slug}/, /reviews/, /about/, /contact/, /legal/terms/, /legal/privacy/, /credits/, /agents/, 404.html, sitemap.xml, robots.txt. Las rutas simples /terms/ y /privacy/ redirigen a las páginas /legal/. Las URLs heredadas /{city}-co-dryer-vent-cleaning/ redirigen a las páginas /areas/.

Flujo de reservas y formularios

/book/ es un flujo de tres pasos: dos preguntas de elegibilidad → precio publicado ($129 estándar, $169 techo / segundo piso / recorrido de más de ~15 pies) → solicitar una hora. No hay servidor, por lo tanto:

  • Predeterminado (forms.endpoint vacío): enviar la solicitud de reserva o el formulario de contacto compone un correo a site.email en el dispositivo del visitante con todos los campos completados, y la pantalla de confirmación muestra el resumen de la solicitud más el número de teléfono como respaldo.
  • Recomendado: crea un endpoint de formulario gratuito (Formspree o similar), pega la URL en forms.endpoint y reconstruye. Las solicitudes se envían entonces como JSON y llegan a tu bandeja de entrada sin que intervenga la aplicación de correo del visitante.
  • Espacios de cita reales: book.js ya renderiza botones de espacio cuando window.BCDV.slots no está vacío. Conecta slots en src/templates/layout.mjs (el objeto cfg) a una fuente de horarios real cuando exista. Hasta entonces, el flujo muestra el estado honesto de calendario vacío.

Precios

PrecioCuándo
$129Estándar — terminación en pared lateral a nivel del suelo, recorrido de menos de ~15 pies
$169Difícil — terminación en techo o segundo piso, recorridos largos o con curvas
$109 / añoPlan anual después de la primera visita
$99Llenado de ruta — solo operaciones, nunca en el sitio público

Teléfono en todas partes: (866) 494-6590. NAP del cliente: 6395 Gunpark Dr, Suite J, Boulder, CO 80301.

Legal

Frost River Capital, LLC d/b/a Boulder County Dryer Vent. Identificador de nombre comercial 20268139028. Avisos: 2369 S. Trenton Way Suite P, Denver, CO 80231. ava@frostrivercapital.com. Cancelación con ≥ 24 h: reembolso. Cancelación con < 24 h: crédito por 90 días.

Reglas de contenido

  • Sin reseñas, calificaciones, conteos de reseñas ni biografías de propietarios inventados. /reviews/ y la banda de reseñas del inicio se mantienen honestas hasta que los clientes escriban.
  • Sin horarios de cita de relleno. El calendario está vacío hasta que exista capacidad real.
  • El blog es solo educación para el cliente.