-
-
Meet Tidewater, a platform designed to help coastal communities report hazards and coordinate local volunteer cleanup efforts.
-
Tidewater offers demo and guest access, making it easy to explore the platform and its community response features.
-
The dashboard brings coastal hazard reports, volunteer activity, and response information together in one place.
-
An overview of community reports and response activity, using synthetic sample data to demonstrate Tidewater's capabilities.
-
A centralized view of reported coastal hazards, helping communities organize issues that may require attention.
-
Each report provides a closer look at a specific coastal issue, helping users understand what needs to be addressed.
-
A geographic view of reported hazards, helping communities understand where issues are concentrated.
-
Volunteer pods help organize community members into groups that can coordinate local environmental response efforts.
-
A closer look at how volunteer teams are organized to support community cleanup and hazard response.
-
Response jobs help organize cleanup activities and connect reported problems with actionable volunteer work.
-
Detailed job information helps volunteers understand the tasks involved in addressing community hazards.
-
Community activity views help illustrate how reports, volunteers, and response efforts connect across Tidewater.
The specific problem and how we know it's real:
Coastal response coordinators need to connect reports of damaged access points, storm debris, and other hazards with people who have the equipment and capacity to help. NOAA documents how debris damages coastal habitats. South Carolina's Department of Natural Resources reports that marine volunteer programs face fieldwork and staffing constraints; its oyster-shell transport program supplies trailers but requires volunteers to provide vehicles. These sources establish environmental and logistical challenges, not a proven failure of existing coordination tools. Sapelo Island is our prototype's reference setting. We have not conducted resident interviews or demonstrated real-world demand.
What our solution does and how it works:
We brought an existing MIT-licensed Tidewater codebase online with a fresh Supabase database and a Vercel deployment. Our setup work included making photo AI optional, repairing an isolated test, configuring storage and authentication, and verifying the sample-data interface. A resident-facing reporting flow accepts photos and location information in code. The deployed demonstration currently lets judges explore 68 synthetic reports, eight volunteer pods, and 48 work orders. Coordinators can browse hazards, inspect report and job details, view mapped locations, and examine analytics. Pods represent capabilities such as boating, debris clearing, and dock carpentry. The routing screen explains deterministic ranking: staffed pods first, then workload per person, job count, and assignment history. Automatic crew assignment is disabled in this deployment. The directory connects sample volunteers with capabilities and offered equipment while masking contact details in the demonstrated session. Community Pulse uses a separate illustrative dataset, not measured community outcomes. Guest sign-in has been tested, but we have not verified a complete real-photo submission or the saved assignment-to-completion workflow. Ordinary Audit-grid cell edits are local-only.
What we built it with:
The application uses TypeScript and JavaScript with Next.js 16, React, and Tailwind CSS. Supabase provides PostgreSQL, PostGIS, authentication, and object storage; Vercel hosts the deployed site. MapLibre GL and deck.gl render maps, AG Grid powers the Audit table, and Zod validates inputs. The code includes IndexedDB-based offline queuing, Open311 JSON/XML routes, and NOAA/National Weather Service enrichment. Those broader integrations have not all been verified through a submitted report. Gemini classification remains unconfigured, and external notification delivery is disabled. We used Codex for setup and test work; it is a development assistant, not the app's operational AI service. Verification used Vitest, Playwright, Biome, and TypeScript checks.
Challenges:
A missing AI key originally prevented database-backed features from initializing. We separated optional Gemini configuration from required database settings and added tests for the unavailable-classifier path. Database setup also encountered a Supabase-managed storage-table ownership restriction. We confirmed that row-level security was already enabled there and applied the storage policies without editing the source migrations. A disabled-chat test timed out while importing unrelated dependencies; isolating those dependencies allowed the full unit suite to pass. Our interface review also exposed limitations: some seeded photos and AI reasoning panels are unavailable, default date filters hide older sample reports, and the fallback image-blurring algorithm can miss centrally positioned faces. Private raw storage and access policies do not eliminate that privacy gap.
What we'd do next:
First, resolve the blur limitation and broken sample-photo references, then verify real-photo reporting, offline synchronization, and authorized staff actions on actual phones. Configure and evaluate Gemini with labeled coastal examples and human review before enabling automated assignment. Complete notification and retention setup, connect GitHub deployment access, and reconcile Pulse with the operational dataset. Finally, test the workflow with coastal volunteers and coordinators, including people using assistive technology or unreliable connections. Measure task completion, routing errors, and workload distribution before making claims about speed, safety, cost, or environmental impact.
Built With
- ag-grid
- biome
- codex
- deck.gl
- github
- gsap
- indexeddb
- javascript
- maplibre-gl
- next.js
- node.js
- open311
- playwright
- postgis
- postgresql
- react
- sql
- supabase
- tailwind-css
- typescript
- vercel
- vitest
- zod
Log in or sign up for Devpost to join the conversation.