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 templatessrc/pages/*.mjscom dados desrc/data/site.mjsemdist/.- 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.ymlcompila a cada push paramaine publicadist/(fonte do Pages = GitHub Actions). O domínio personalizado está configurado em Settings → Pages do repositório; nenhum arquivoCNAMEé 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ção | Arquivo |
|---|---|
| Telefone, e-mail, endereço, horários, entidade legal | src/data/site.mjs → site |
| Preços, cartões de preço, nota de preenchimento de rota | src/data/site.mjs → prices, priceCards |
| Cidades, CEPs, texto por cidade, posições de pinos no mapa | src/data/site.mjs → towns |
| FAQs, etapas do serviço, avisos, barra de confiança | src/data/site.mjs |
| Onde os formulários de agendamento/contato são entregues | src/data/site.mjs → forms.endpoint (veja abaixo) |
| Beacon de analytics próprio | src/data/site.mjs → analytics.endpoint (coletor Ava /hit; vazio = desligado) |
Links de navegação, cabeçalho, rodapé, faixa de CTA, <head> / schema | src/templates/layout.mjs |
| Marcação das páginas | src/pages/*.mjs |
| Posts do blog | src/content/blog/*.md (frontmatter: title, slug, date, category, readTime, image, imageAlt, description) |
| Fotos | src/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.endpointvazio): enviar a solicitação de agendamento ou o formulário de contato compõe um e-mail parasite.emailno 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.endpointe 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.jsjá renderiza botões de slot quandowindow.BCDV.slotsnão está vazio. Conecteslotsemsrc/templates/layout.mjs(o objetocfg) a uma fonte de agenda real quando ela existir. Até lá, o fluxo mostra o estado honesto de calendário vazio.
Preços
| Preço | Quando |
|---|---|
| $129 | Padrão — terminação na parede lateral do térreo, extensão abaixo de ~15 pés |
| $169 | Difícil — terminação no telhado ou segundo andar, extensões longas ou com curvas |
| $109 / ano | Plano anual após a primeira visita |
| $99 | Preenchimento 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.