Boulder County Dryer Vent Booking

Agende a limpeza de duto de secadora no Condado de Boulder via MCP ($129/$169). Confirme em 1 dia útil.

Servidor MCP hospedado

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

Instala no Claude Code, Codex, Cursor e outros

Documentação

Boulder County Dryer Vent

Site de marketing público e funil de agendamento para Boulder County Dryer Vent (nunca "Co."). HTML/CSS/JS estático, sem dependências, construído por um pequeno script Node e publicado no GitHub Pages.

Ao vivo: https://bouldercountydryervent.com/ · Consulte STATUS.md para o estado do deploy.

Stack

  • HTML puro, uma folha de estilo (src/static/css/site.css), dois scripts pequenos (site.js, book.js). Sem framework, sem pacotes npm.
  • scripts/build.mjs (zero dependências, Node ≥ 20) renderiza templates src/pages/*.mjs com dados de src/data/site.mjs em dist/.
  • Design: o sistema "Industry" da exportação Claude Design — Barlow Condensed sobre Barlow, molduras de blueprint com marcas de canto +, brasa #E8632B / tinta #1F2A37 / areia #F6F1EA.
  • Deploy: .github/workflows/pages.yml compila a cada push para main e publica dist/ (fonte do Pages = GitHub Actions). O domínio personalizado está configurado em Settings → Pages do repositório; nenhum arquivo CNAME é necessário para deploys via Actions. Não altere MX/SPF/DKIM/DMARC da IONOS.

Desenvolvimento local

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

Abra http://localhost:8787/. Qualquer servidor estático apontado para dist/ funciona.

Onde as coisas ficam

AlteraçãoArquivo
Telefone, e-mail, endereço, horários, entidade legalsrc/data/site.mjssite
Preços, cartões de preço, nota de preenchimento de rotasrc/data/site.mjsprices, priceCards
Cidades, CEPs, texto por cidade, posições de pinos no mapasrc/data/site.mjstowns
FAQs, etapas do serviço, avisos, barra de confiançasrc/data/site.mjs
Onde os formulários de agendamento/contato são entreguessrc/data/site.mjsforms.endpoint (veja abaixo)
Beacon de analytics própriosrc/data/site.mjsanalytics.endpoint (coletor Ava /hit; vazio = desligado)
Links de navegação, cabeçalho, rodapé, faixa de CTA, <head> / schemasrc/templates/layout.mjs
Marcação das páginassrc/pages/*.mjs
Posts do blogsrc/content/blog/*.md (frontmatter: title, slug, date, category, readTime, image, imageAlt, description)
Fotossrc/static/img/ (fotos do serviço) e src/static/img/cities/ (cenários licenciados das cidades — veja CREDITS.md)

Rotas

/, /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. /terms/ e /privacy/ nus redirecionam para as páginas /legal/. URLs legadas /{city}-co-dryer-vent-cleaning/ redirecionam para as páginas /areas/.

Fluxo de agendamento e formulários

/book/ é um fluxo de três etapas: duas perguntas de elegibilidade → preço publicado ($129 padrão, $169 telhado / segundo andar / extensão acima de ~15 pés) → solicitar um horário. Não há servidor, então:

  • Padrão (forms.endpoint vazio): enviar a solicitação de agendamento ou o formulário de contato compõe um e-mail para site.email no dispositivo do visitante com todos os campos preenchidos, e a tela de confirmação mostra o resumo da solicitação mais o número de telefone como alternativa.
  • Recomendado: crie um endpoint de formulário gratuito (Formspree ou similar), cole a URL em forms.endpoint e recompile. As submissões são então enviadas via POST como JSON e chegam à sua caixa de entrada sem envolver o aplicativo de e-mail do visitante.
  • Slots de agendamento reais: book.js já renderiza botões de slot quando window.BCDV.slots não está vazio. Conecte slots em src/templates/layout.mjs (o objeto cfg) a uma fonte de agenda real quando ela existir. Até lá, o fluxo mostra o estado honesto de calendário vazio.

Preços

PreçoQuando
$129Padrão — terminação na parede lateral do térreo, extensão abaixo de ~15 pés
$169Difícil — terminação no telhado ou segundo andar, extensões longas ou com curvas
$109 / anoPlano anual após a primeira visita
$99Preenchimento de rota — somente operações, nunca no site público

Telefone em todos os lugares: (866) 494-6590. NAP do cliente: 6395 Gunpark Dr, Suite J, Boulder, CO 80301.

Legal

Frost River Capital, LLC d/b/a Boulder County Dryer Vent. Nome comercial ID 20268139028. Avisos: 2369 S. Trenton Way Suite P, Denver, CO 80231. ava@frostrivercapital.com. Cancelamento com ≥ 24h: reembolso. Cancelamento com < 24h: crédito por 90 dias.

Regras de conteúdo

  • Sem avaliações, classificações, contagens de avaliações ou biografias de proprietário fabricadas. /reviews/ e a faixa de avaliações da página inicial permanecem honestas até que clientes escrevam.
  • Sem horários de agendamento de espaço reservado. O calendário fica vazio até que haja capacidade real.
  • O blog é apenas para educação do cliente.