cd ../blog
June 20, 2026 1 min read

Building LandIS: A Multi-Tenant Land Information System for Ghana

DjangoGISMulti-tenantNext.jsPostGIS
Building LandIS: A Multi-Tenant Land Information System for Ghana

Customary land in Ghana is still administered largely on paper. The fallout is real: the Supreme Court once documented 13 registered "sellers" for a single plot. Add lost or forged documents, boundary disputes with no authoritative record, and untracked ground rents, and you have a system crying out for digitization — which the Land Act 2020 (Act 1036) now mandates through Customary Land Secretariats.

LandIS is my answer: a multi-tenant, web-based Land Information System where each traditional council runs as an isolated tenant — its own branding, domain and data — on a single shared deployment.

What it does

  • Interactive geospatial mapping of parcels with overlap / double-allocation detection
  • Ownership chains and full transfer history
  • Document management, payments and revenue tracking with receipts
  • A complete audit trail, SMS & email notifications, and a per-council public portal
  • Backup and offline sync for low-connectivity environments

Architecture

The backend is Django + Django REST Framework, using DRF-GIS over PostGIS for geospatial queries, JWT auth and Celery for async work. The frontend is Next.js 15 / React 19 / TypeScript with Leaflet for the maps.

The feature that earns its keep is overlap detection — PostGIS makes it almost trivial to stop the same plot being allocated twice:

overlaps = Parcel.objects.filter(
    geometry__intersects=new_parcel.geometry,
).exclude(pk=new_parcel.pk)
if overlaps.exists():
    raise ValidationError("This boundary overlaps an existing parcel.")

Why it matters

Zero double-allocations, transparent records, Land Act 2020 compliance, and searches that take seconds instead of months.

It's in active development — you can see the platform at lis.joetib.com.