尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Vigil — open-source humanitarian crisis PWA (Apache-2.0; Vigil/YouTheWave brand trademark-protected). Federated missing-persons, crisis map, resource exchange, 8 languages. VE live · Formal Launch closed · FL/MX prebuilt · vigil.youthewave.org
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
We stand watch when it matters most.
An open-source humanitarian crisis PWA — federated missing-persons search, crisis mapping, resource exchange, and volunteer coordination in one calm, Spanish-first interface. The code is open under Apache-2.0; the Vigil™ and YouTheWave™ names and brand are protected trademarks (see TRADEMARK.md).
Live: Venezuela 2026 Earthquake Response · vigil.youthewave.org · June 24, 2026 onward
Operator brand: YouTheWave (youthewave.org is live) · Formal Launching with Improvements phase closed (2026-07-26)查看完整 README ↗An open-source humanitarian crisis PWA — federated missing-persons search, crisis mapping, resource exchange, and volunteer coordination in one calm, Spanish-first interface. The code is open under Apache-2.0; the Vigil™ and YouTheWave™ names and brand are protected trademarks (see TRADEMARK.md).
Live: Venezuela 2026 Earthquake Response · vigil.youthewave.org · June 24, 2026 onward
Operator brand: YouTheWave (youthewave.org is live) · Formal Launching with Improvements phase closed (2026-07-26)
What Vigil is not: an emergency dispatcher, a donations processor, a government intake tool, or a biometric identification system.
vigil.youthewave.org · youthewave.org · vigil.youthewave.com (redirects) · github.com/Atenaxproject/vigil
Most crisis tools already exist — they're just scattered. Vigil does not reinvent them. It aggregates proven humanitarian platforms (USGS, ReliefWeb, OCHA, HDX, Google Person Finder) into a single calm interface, then adds the missing connective tissue: a live missing-persons board, a community resource exchange, and skills-based volunteer matching.
One config file change redeploys the whole platform for any country, any disaster.
| Group | What they do on Vigil |
|---|---|
| 🆘 Rescue teams | Crisis map, active rescue zones, field presence check-in, locate needs |
| 🤝 Volunteers | Register skills, browse the marketplace, get matched with organizations |
| 🧍 Victims | Report needs, drop a help pin, find shelter and resources |
| 🌎 Diaspora | Search for missing family on a real-time board with public notes |
| 💛 Donors | Reach verified organizations with direct donation links |
| 🏢 Organizations | List services, receive volunteers, coordinate response |
Production captures from vigil.youthewave.org. Refresh with node scripts/visual-check.mjs.
| iPhone portrait | Desktop (sidebar + map layers) |
|---|---|
| iPad portrait | iPhone landscape |
|---|---|
Verified against source and production as of 2026-07-27 (after next-round ship #32). Optional integrations degrade when credentials are unset — they never crash the app.
| Feature | Route | Notes |
|---|---|---|
| Missing persons board | /buscar, /reportar | Realtime feed on home; estado/municipio/parroquia on report form; state filter chips on search; client image compression on photo upload |
| Photo search (AI vision) | /buscar | Claude Vision describes traits as text, matches public records — no biometric storage; client image compression before upload; needs ANTHROPIC_API_KEY |
| Claude AI assistant | all pages (widget) | Live-data Q&A in 8 languages; streams from /api/assistant; degrades gracefully without API key |
| Statistics by state | /estadisticas | Vigil's own missing/found-alive counts per estado (Supabase Realtime); federated DTV figures shown only when a complete enumeration is available, suppressed otherwise |
| Contested figures | /estadisticas | Official casualty figures published with issuer attribution and independent counterpoints (Provea, USGS PAGER, UN, academic) stacked beneath — never averaged into one number |
| Person detail + public notes | /buscar/[id] | Sightings thread; privacy-preserving contact flow |
| PFIF export | /api/pfif | Google Person Finder XML interoperability |
| Claim-token inbox | /mi-reporte/[token], /mi-intercambio/[token] | Passwordless management; claim URL on submit |
| Crisis map | / | USGS aftershocks (source-labeled), needs, resources, shelters, hospitals, collection points, active rescue teams; region tabs → /apoyo-usa |
| USA/Diaspora hub | /apoyo-usa | South Florida tri-county map (separate bounds), collection points, diaspora orgs, intercambio/events filtered by region_scope; does not share Venezuela map data |
| Connectivity / comms layer |
| Feature | Route | Notes |
|---|---|---|
| Live information hub | /informacion | USGS significant quakes, GDACS alerts, manual stats, infrastructure status, emergency directory |
| Press kit | /prensa | Boilerplate, provenance fact sheet, downloadable ZIP (markdown + design-system PDFs) |
| Operator hazard monitor | /monitor | Global early-warning relay (USGS/GDACS/hazards) with DB-level kill switch; URL-reachable only, intentionally not in public nav pending FIRMS/GDACS redistribution confirmation |
| Events calendar | /calendario | Category filters, Venezuela timezone labels |
| Rescuer field presence | /equipo-activo | Check-in, SOS, 4-hour auto-expire, map layer |
| How to help | /como-ayudar | Curated, source-dated donation organizations; overseas-logistics honesty guidance |
| Partner links | /organizaciones | Verified NGO directory (admin-approved), sourced from the production organizations table |
| Weather & time bar | all pages | Open-Meteo below emergency banner (no API key) |
[email protected], [email protected], and [email protected] via Cloudflare Email Routing./admin/feedback.VIGIL_ADMIN_EMAILS allowlist./offline fallback, offline form queue, network-status banner./privacidad, /terminos) and English (/privacy, /terms).lg+ toggles between 280px (icon + label) and 64px (icon-only); preference in localStorage.#main-content.aria-label; Leaflet default zoom disabled.Privacy is architecture, not an afterthought:
See the Privacy Policy and Terms. Report sensitive security issues privately to [email protected] — please do not file public exploit detail.
Phase: Formal Launching with Improvements is closed (tag phase/formal-launch-improvements-20260726). Next-round app improvements shipped (#32; restore tag restore/pre-next-round-improvements-20260727). Venezuela production is live and in stable-ops care. Florida and México configs exist as prebuilt / held — activation waits on named local admins and TODO-BEFORE-LAUNCH gates (not an open feature sprint).
/reportar, property assessment, and photo search (same upload budget)/apoyo-usa (South Florida, separate region_scope)/conectividad/evaluacion-estructural, ATC-20 green/yellow/red tagging, volunteer-assigned (structural_engineer/architect/surveyor), never AI-assigned, ToS §4 liability languageCode paths are shipped and degrade cleanly when unset — turning them on is operator work (register keys / scenarios; never commit secrets). Core map and search stay usable either way. Env examples: .env.example; setup notes: DEPLOYMENT.md.
| Integration | Env / gate | Behavior when unset |
|---|---|---|
| ReliefWeb official updates (v2) | RELIEFWEB_APPNAME (approved OCHA appname) | No network call; Official Updates section suppressed on /informacion |
| WhatsApp / Telegram intake | MAKE_WEBHOOK_SECRET + Make.com scenario → POST /api/make/webhook | Route returns 503 (no open intake). GET reports { configured: false } only |
| Transactional email | RESEND_API_KEY (+ optional RESEND_FROM_EMAIL); verify youthewave.org in Resend | Feedback / claim-link emails skipped; data still saved |
| Additional crisis archetypes | Config + docs | Scaffolding only — see CRISIS-ARCHETYPE-EXTENSION.md. No FL/MX activation |
Public, non-secret backlog — not a Florida/México product sprint:
/monitor nav visibility (redistribution rights), legal operator-line copy when incorporation landsprebuilt until named admins + checklist gates — then DNS, feeds, locale, and privacy stance per countryVigil links honestly to every citizen-run platform responding to this crisis. If you don't find someone here, check these too:
The 12 platforms below are the sister platforms carried in crisis.config.ts and shown on /red. Desaparecidos Terremoto Venezuela is the federated integration partner; the rest are honest outbound links.
| Platform | Focus |
|---|---|
| Desaparecidos Terremoto Venezuela | Missing persons, facial recognition, geographic breakdown — federated integration partner |
| Venezuela Te Busca | Missing persons search and resources |
| CIVIS Venezuela | Missing persons, damage maps, supply points, service status |
| RedQuipu | Multi-organization coordination |
| Mapa de Daños Venezuela | Structural damage mapping |
| Mapa de Necesidades VZLA | Zone-based live needs map (critical/partial/covered) |
| Encuéntrame VZLA | Hospital admissions locator (distinct from general missing-persons search) |
| Venezuela Earthquake Map | Crisis mapping |
| Yummy SOS | Rides and logistics SOS |
| Centros de Ayuda Venezuela | Diaspora collection points |
| Ayuda Venezuela | Aid coordination |
| Tiltely Venezuela | Fundraising / donations |
| Resource | Description |
|---|---|
docs/README.md | Documentation index |
CONTRIBUTING.md | How to contribute |
CONTRIBUTORS.md | People and AI collaborators |
AGENTS.md | Operating contract for agents (constraints, roles, stack) |
docs/architecture/DESIGN-SYSTEM.md | UI tokens, typography, component rules |
docs/architecture/DEPLOYMENT.md | Supabase, Vercel, DNS, local dev |
docs/build-process/README.md | How we ship (short) |
Frontend: Next.js 15 App Router · React 19 · Tailwind CSS · next-intl (8 languages) · PWA (@ducanh2912/next-pwa)
Database: Supabase (Postgres + Realtime + RLS) · PFIF 1.4 schema
AI: Claude Sonnet 4.6 (vision + photo search) · Claude Haiku 4.5 (assistant + dedup + property triage), all metered through a spend-aware circuit breaker
Map: Leaflet.js + OpenStreetMap · Supabase Realtime subscriptions
Infrastructure: Vercel · Cloudflare DNS · Supabase (sa-east-1 São Paulo)
External data: USGS Earthquake API · GDACS (UN) · ReliefWeb · Open-Meteo weather · Desaparecidos Terremoto Venezuela API (federated search + centers)
Standard: PFIF 1.4 — Google Person Finder compatible, enables data federation
Vigil federates with Desaparecidos Terremoto Venezuela as a registered integrator. Their records are searchable through Vigil alongside Vigil's own, with full source attribution and a direct link back to their platform.
Vigil does not publish a total record count for the DTV network. Their public API exposes no count endpoint, so any total derived by paginating would be a partial walk rather than a count — and publishing that as a network total would misrepresent their data. Current figures live on their platform.
Integration approach: nothing is stored in Vigil's database. Because the DTV
API has no server-side search, Vigil keeps a short-lived in-memory name index
(30-minute TTL) and runs accent-insensitive ranked matching against it;
federated aggregate figures shown on /estadisticas are cached separately (~5
minutes) and suppressed entirely unless a complete enumeration is available.
No biometrics on Vigil. Photo search uses Claude Vision text description of features. Partner platforms may offer their own identification tools on their sites; Vigil does not store biometric templates and does not claim facial-recognition capability.
This partnership is part of Vigil's commitment to building a network, not competing with the other citizen platforms serving the same families.
# 1. Install
npm install
# 2. Configure environment
cp .env.example .env.local # then fill in your keys (see below)
# 3. Run
npm run dev # http://localhost:3000
The app runs without a configured Supabase instance: static pages render, the USGS crisis map loads, and live-data sections show a calm empty state instead of crashing.
NEXT_PUBLIC_SUPABASE_URL=https://YOUR_PROJECT_REF.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
NEXT_PUBLIC_CARTO_API_KEY= # CARTO Basemaps; required for map tiles
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key # server-only, never exposed
ANTHROPIC_API_KEY=your_anthropic_key # optional, for AI assistant, photo search, dedup cron
CRON_SECRET=generate_a_strong_random_secret # optional, secures /api/cron/dedup on Vercel
RESEND_API_KEY=your_resend_key # optional, feedback + claim-link emails
# [email protected] # optional override (default: crisis.config contactEmail)
MAKE_WEBHOOK_SECRET= # optional, WhatsApp/Telegram via Make → /api/make/webhook
RELIEFWEB_APPNAME= # optional, approved OCHA v2 appname
VIGIL_ADMIN_SECRET=generate_a_strong_random_secret
[email protected]
Never commit
.env.local. SeeDEPLOYMENT.mdfor migrations and DNS.
Vigil is a template. To deploy for a different country or disaster, change one file:
src/config/crisis.config.ts
Update country bounds, emergency hotline, partner links, languages, and seismic query — then redeploy. Full guide in DEPLOYMENT.md.
Orlando Toro — Founder & Director (Bbluestudios™ LLC). Product judgment, crisis operations, and final say on scope and ethics.
Built with AI engineering collaborators under that direction — see CONTRIBUTORS.md for accurate roles (Architect-Orchestrator via Cursor; Claude for design/reasoning assistance). Agents execute against specs; they do not replace human accountability for privacy or go-live decisions.
For Venezuela. For whoever needs it next.
Methodology inspiration: Ushahidi · Google Person Finder · Los Topos · OCHA
Public data feeds: USGS · ReliefWeb · HDX
Code: Apache License 2.0. You may use, modify, fork, and deploy Vigil for any purpose, including commercially. Apache-2.0 includes a patent grant and does not grant rights to the Vigil™ / YouTheWave™ names, logos, or brand — see TRADEMARK.md. Forks must rebrand.
Data: not covered by the code license. Records submitted to a Vigil deployment by the people it serves are governed by that deployment's Terms of Service and Privacy Policy. Nothing in the code license grants rights to personal data held in any Vigil instance. Scraping and commercial use of platform data are prohibited under the Terms.
Federated data from partner platforms remains theirs. Attribution and usage terms follow the originating platform.
Code is Apache-2.0; brand is trademark-protected (TRADEMARK.md); data is governed by the Terms. Relicensing history: the repo standardized on Apache-2.0 on 2026-07-27.
/conectividad |
WiFi, Starlink, cell signal citizen reports — map layer + info card on /informacion |
| Retractable map layers | / (desktop) | Collapsible panel on lg+; preference in localStorage |
| Collection points | /punto-de-acopio | Citizen registration → amber map markers |
| Resource exchange | /intercambio | Offer or request goods, shelter, transport, skills, equipment |
| Volunteer marketplace | /voluntarios | Skills registration and directory (now includes structural_engineer, architect, surveyor for post-disaster property assessment). |
| Property safety assessment | /evaluacion-estructural | ATC-20-style green/yellow/red tagging; volunteer-assigned only (structural_engineer/architect/surveyor roles), never AI-assigned; client image compression on photo upload; claim link at /mi-evaluacion/[token] |
| I need help | /necesito-ayuda | Drop a need pin on the map |
/api/pfif, Google Person Finder compatible/redDTV_API_KEY configured)