A Real-Time Deforestation Tracking & Community Reforestation Platform.
Where Is My Forest is an open-source platform designed to provide rigorous data transparency regarding forest cover and environmental incidents. The system aggregates real-time satellite data with community-verified reforestation efforts.
We maintain a strict focus on system reliability, spatial data accuracy, and minimal operational overhead for self-hosting.
- Interactive Geographic Tracking: Visualizing localized forest data and real-time incident heatmaps across multiple parameters utilizing
Leaflet. - Incident Reporting Pipeline: A scalable event queue for tracking illegal logging, forest fires, poaching, and pollution metrics.
- AI-Verified Validation Layer: Multi-modal analysis pipelines (via OpenRouter inference endpoints) to probabilistically validate field submissions.
- Real-Time Data Ingestion: Serverless edge functions orchestrating periodic ETL pipelines from Global Forest Watch (GFW), NASA FIRMS, and continuous news sources.
The platform implements a decoupled, event-driven architecture optimized for local development and rapid iteration:
- Client Application:
React 19bootstrapped viaVitefor optimal HMR. Interface styling relies strictly onTailwind CSSutilities, with complex layout animations handled byFramer Motion. Dataviz is implemented viaRecharts. - Data Layer (Supabase):
- Relational Store: PostgreSQL engine enforcing strict Row Level Security (RLS) constraints for read/write access.
- Event Pub/Sub: Realtime subscriptions providing websocket-based mutation broadcasts for specific tables.
- Object Storage: Secured S3-compatible buckets with mime-type validations for media submissions.
- Compute: Deno-backed edge runtime executing periodic external API polling and payload generation.
- External Dependencies: OpenRouter REST API for multimodal inference; NASA FIRMS spatial endpoints.
Ensure the following binaries are available in your system path:
- Node.js (v18 or higher)
- A configured Supabase project or local Supabase CLI installation
- An active OpenRouter API token (required for inference routes)
Clone the repository and install workspace dependencies:
git clone https://github.com/WhereIsMyForest/WhereIsMyForest.git
cd WhereIsMyForest
npm iProvision your local environment variables based on the reference schema:
cp .env.example .envEnsure you explicitly declare the VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY variables in .env.
Execute the reference schema against your targeted Supabase Postgres instance:
- Access your target database's SQL editor interface.
- Execute the entire content of
supabase/schema.sql. The script is idempotent and resolves requisite extensions, relations, RLS definitions, constraints, and mock seed data.
npm run devThe application server binds to http://localhost:5173 locally.
All contributors are expected to adhere to standard maintainability metrics. Whether optimizing queries, extending GIS coverage, or resolving defects, patches are accepted through standard GitHub pull requests.
Review the Contributing Guidelines to initialize your workflow, conform to branch prefix conventions, and understand code review requirements.
- Defects: Execute the Bug Report Template with explicit reproduction paths.
- Enhancements: Draft specifications utilizing the Feature Request Template. Feature proposals require maintainer consensus prior to merged branches.
This project relies upon the MIT License.