Open-data ETL pipeline and Leaflet web map for GBIF species-occurrence records in the Malawi–Zambia transfrontier landscape. Built with PHP, MySQL, and Python on low-cost shared hosting — a no-licence alternative to Fabric, Databricks, and ArcGIS for small conservation data projects.
# MAZA Occurrence Viewer
**Live map →
mqala.co.za
Data work for the NGO and conservation sector is often assumed to need a large
platform — Microsoft Fabric, Databricks, Snowflake — plus a proprietary mapping
and reporting layer on top. Those platforms are capable and convenient, and for
large workloads they are worth the price. But their licensing is high and
recurring, and not every project is large enough to need them: a Fabric capacity
runs from about **$260/month** to **~$8,400/month**, Databricks and Snowflake
production workloads reach into the thousands or tens of thousands per month, and
per-user mapping and reporting licences sit on top of that.
This project does the same kind of work — a real ETL pipeline, a relational
database as the system of record, enrichment, idempotent loads, and a schedule
that adjusts itself — at a size where free, self-hosted tools fit the job: PHP on
shared hosting, a MySQL database, Python for offline builds, Leaflet for the map.
It runs on about **$5/month**, with no licences and nothing that stops working
when a subscription ends. The subject here is geospatial, but the point is
matching the data-engineering stack to the size of the problem, not the map
itself.
It sits alongside real funded work — the IUCN–Total LandCare
Human-Wildlife Co-habitation Project
for the Malawi–Zambia TFCA (funded by Germany's BMZ through KfW) — not as part of
it, but using the same open data the field uses, to show what a low-cost,
self-hosted data layer for that area can look like.
---
An open-data pipeline and lightweight web map for species-occurrence records
along the Malawi–Zambia transfrontier landscape. It pulls records from
GBIF, makes **MySQL** the system of record, enriches
each row against population, protected-area and settlement references, and
publishes a cached **CSV** that a small Leaflet map reads — all designed to run
on **PHP 7.3 shared hosting**.
> **Scope.** This is a data-engineering project, not a human-wildlif …