Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Interactive AI map & digital concierge for Cabo Rojo, Puerto Rico. 162+ businesses, WhatsApp bot, offline PWA.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
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.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.