Easy-to-manage touch screens
Free, open-source touch screens. Guided USB setup, a drag-and-drop editor and local control. Made for Home Assistant.
Escribe lo que buscas. Te decimos quién resuelve en Cabo Rojo.
Translation pending
LifestyleTypeScript · HTMLGitHub @AngelAndersonOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Interactive AI map & digital concierge for Cabo Rojo, Puerto Rico. 162+ businesses, WhatsApp bot, offline PWA.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Un solo motor, tres propiedades. Este repo sirve tres sitios desde el mismo deployment de Vercel (detección por host): El Veci — textea al 787-417-7711 (SMS o WhatsApp) y te contesta 24/7. Guárdalo: /veci. Cada récord junta data pública verificable + data propia del substrato, y cierra con acción (no solo muestra el problema): /prediccion · /costo-de-vida · /rendimiento · /cupon · /exposicion-ai · /decidir · /trabajo · /luz · /agua · /basura · /recuperacion · /sigue-el-dinero · /registro/estado · /diabetes · /telemedicina · /esencia y más. Índice: puertoricosinfiltros.com.Read the full README ↗
Un solo motor, tres propiedades. Este repo sirve tres sitios desde el mismo deployment de Vercel (detección por host):
| Sitio | Qué es |
|---|---|
| mapadecaborojo.com | Mapa + directorio de Cabo Rojo (1,173 negocios en CR, 35,614 fichas publicadas en PR) con El Veci detrás |
| registromedicopr.com | Registro de especialistas médicos de PR pareado contra NPPES: 30,622 fichas con NPI federal, 32 especialidades × 5 regiones × 78 pueblos, desiertos médicos, guías por situación, bilingüe ES/EN |
| puertoricosinfiltros.com | Récords cívicos con data verificable: el número, la fuente, y qué hacer con él |
El Veci — textea al 787-417-7711 (SMS o WhatsApp) y te contesta 24/7. Guárdalo: /veci.
Cada récord junta data pública verificable + data propia del substrato, y cierra con acción (no solo muestra el problema): /prediccion · /costo-de-vida · /rendimiento · /cupon · /exposicion-ai · /decidir · /trabajo · /luz · /agua · /basura · /recuperacion · /sigue-el-dinero · /registro/estado · /diabetes · /telemedicina · /esencia y más. Índice: puertoricosinfiltros.com.
"El único registro de especialistas médicos de PR verificado contra el gobierno federal (NPPES) que un humano normal puede leer." Superficies:
v_registro_muni_ratio) + página por pueblo: qué hay, qué falta y dónde queda lo más cerca, badge HPSA federal, datos citables copy-paste con fuente, y alerta "🔔 te aviso cuando llegue uno nuevo" (tabla registro_alerts, cron diario api/cron?job=alertas cierra el loop por email)?lang=en)accepted_plans)Regla de data: todo per cápita sale de las vistas canónicas (v_registro_muni_ratio / v_registro_muni_spec), nunca de places.region crudo.
"En Puerto Rico, conseguir médico no es un problema de información. Es un problema de quién contesta." Canon y roadmap:
~/Dropbox/Claude/Outbox/Estrategia/Registro-Quien-Contesta-2026-09-28.md.
La regla de producto: toda feature del Registro tiene que resolver, aprender o descubrir. Si no hace ninguna de las 3, sobra.
| Capa | Qué hay en el código | Dónde se lee |
|---|---|---|
| Resolver | Hoja "¿Cómo te fue con la llamada?" (5 resultados: cita · contesto_no_resolvio · no_contestaron · no_aceptan · otra_opcion; descartado si la cierra). Sale al volver de tocar Llamar (8 s a 2 h), 1 vez por llamada. Script del registrador en api/mapa-pages.ts (bloque isReg), handler handleRegistroLog con allowlist REGISTRO_EVENTS + CALL_OUTCOMES. | vista registro_resultados_llamada (1 fila por intento, unida por registro_events.cid, id aleatorio sin datos de la persona) |
| Aprender | Reportes de teléfono (telefono_reportado) y resultados malos por ficha. | vista registro_fallos_pendientes: cada fila es una ficha a corregir esa semana |
| Descubrir | Presión = visitas 28 días a /registro/<esp>/<pueblo> ÷ proveedores alcanzables. La etiqueta "cubierto" de desiertos cuenta proveedores, no capacidad. | vista registro_presion |
Reglas de medición (2 errores del 28 sep): visitas = ga4_humano con dim='sessionSourceMedium' (nunca sumar todas las dims) · click_to_call en GA4 incluye los botones de las listas desde el 22 sep 10:26pm (3ff08b2): no se compara con antes · resultados públicos solo con hechos observados, nunca proyecciones.
Dinero (línea roja): nadie paga para parecer que resuelve mejor de lo que los datos dicen. Nunca se cobra a una oficina por llamada o paciente enviado (Anti-Kickback). La verificación básica es gratis.
Cada noche (4:45am AT) la edge function fabrica-seo (repo Vecinoai) lee Search Console, encuentra páginas "borde de página 1" (posición 3-15, impresiones reales, CTR flojo) y escribe título/meta mejorados a places.seo_title/seo_description (máx. 3/noche). Cada cambio es un experimento en seo_experiments con baseline; a los 14 días el motor re-mide el CTR contra GSC y decide solo: se queda (kept) o revierte automáticamente (reverted). Recibo diario en nightly_receipts (routine fabrica-seo). Las páginas /negocio y /farmacia respetan los overrides; sin override usan la fórmula CTR (Nombre en Pueblo · Teléfono, Horario y Dirección) + FAQPage JSON-LD + badge "Abierto ahora" calculado en tiempo real (AST).
Demanda real medida por dos canales independientes y triangulada:
Vistas en Supabase: v_demanda_oeste (message-level, PII, acceso solo service-role), v_demanda_gsc, v_demanda_triangulada, v_demanda_vs_oferta_oeste (cruce con oferta verificada = pitch fuel). Récord público: /demanda.
ALERTA (avisos de emergencia/agua por pueblo) · CUPON (crédito por hijos sin cobrar) · COSTO (pulso del costo de vida) · MEDICO (récord de médicos + $75k federal) · MANUAL · RECALL <med> · o simplemente lo que necesites ("plomero en Combate").
Aparecer en el directorio verificado es gratis — ponte en el mapa. Destacarte tiene precio claro: La Vitrina — $799/año.
React + TypeScript + Vite (frontend del mapa) · Vercel serverless (14 fns, páginas SSR con cache CDN) · Supabase (Postgres + RLS + vistas + pg_cron) · Twilio SMS/WhatsApp (firma fail-closed) · OpenAI embeddings (768d).
Seguridad: RLS activo en tablas públicas; vistas con PII sin grants para anon/authenticated; webhook Twilio valida firma; llaves server-side sin prefijos públicos. Último lockdown: 2026-07-07.
Deploy: push a main → Vercel auto-deploy. El bot vive en el repo Vecinoai (edge functions de Supabase, 1,140 tests).
Corrido contra la base el 2026-08-27. Se re-corre, no se cita de memoria.
select count(*) filter (where visibility='published') as publicadas,
count(*) filter (where visibility='published' and npi is not null) as con_npi_federal,
count(*) filter (where visibility='published' and verification_source is not null
and verification_source !~* '(nppes|sulme|google_places|merge)') as confirmadas_por_persona
from places;
| Fichas publicadas | 35,614 |
| Municipios cubiertos | 78 |
| Pareadas al registro federal NPPES | 30,622 |
| Confirmadas por una persona | 292 (0.8%) |
| Señales de demanda humana, 90 días | 676, de 374 personas |
Importado no es verificado. Una ficha copiada de NPPES es la misma que ya tiene el plan médico: no hereda nada y no se vende como chequeo. Por eso el sello tiene 3 niveles y no 1, y por eso el nivel más alto solo lo escribe una persona. Ese 0.8% es la deuda, y es el trabajo.
Si un directorio no te enseña esta proporción, también la tiene.
Cada una costó un incidente real:
verification_source o no se hace.procedenciaSello(), api/_lib/procedencia.ts): persona, fuente corroborada, o copia de registro que no reclama nada.Nombrado a propósito, porque son las costuras:
¿Redacción, plan médico o municipio que necesita esta data con chequeo verificable? Escribe a [email protected] y dime qué estás tratando de probar.
Hecho en Cabo Rojo por Angel Anderson — una persona, con AI. Menos revolú, más sistema, mejor vida.