All Projects
Live2025Accessibility · Community Impact · Web App

True Access

Community-Verified Accessibility Database for 4M Disabled South Africans

Community-driven accessibility mapping platform for disabled users in South Africa. WCAG-compliant by design — accessibility-first development applied throughout. Weighted confidence scoring: recency and contributor trust improve the accuracy of community-sourced data.

Serving

4M disabled South Africans

Market

Zero reliable accessibility data → verified database

Problem

Daily barriers to independence and participation

Result

WCAG-compliant by design — accessibility-first development

The Problem

What needed solving

4 million South Africans with disabilities have no verified accessibility database for public spaces. Existing resources are outdated, incomplete, or simply non-existent — creating daily barriers to independence.

The Solution

How I built it

A community-verified accessibility scoring system with Mapbox GL JS spatial visualisation, weighted confidence scoring (recency + contributor trust), and WCAG-compliant UI. Co-founded — first multi-stakeholder technical collaboration.

Build Journey

TrueAccApp introduced four technical capabilities in sequence: Mapbox GL JS spatial visualisation, co-founder technical collaboration, crowdsourced data models with confidence scoring, and WCAG accessibility compliance as a primary engineering constraint. The accessibility-first development principle was the most important takeaway: building for users with visual impairments, motor limitations, and cognitive differences requires decisions that make the product better for every user. ARIA labels, keyboard navigation, semantic HTML, and readable contrast ratios are not accessibility features. They are quality standards. Every subsequent product in the portfolio applies this principle.

Weighted accessibility confidence scoring
sql
-- Accessibility confidence scoring
-- Community-verified data with weighted trust model
SELECT
  l.id,
  l.name,
  l.address,
  l.lat,
  l.lng,
  AVG(ar.score) as avg_accessibility_score,
  COUNT(ar.id) as review_count,
  -- Confidence: higher weight for recent + verified contributor reviews
  SUM(
    ar.score *
    CASE WHEN u.is_verified_contributor THEN 1.5 ELSE 1.0 END *
    CASE WHEN ar.created_at > NOW() - INTERVAL '6 months' THEN 1.2 ELSE 1.0 END
  ) / NULLIF(SUM(
    CASE WHEN u.is_verified_contributor THEN 1.5 ELSE 1.0 END *
    CASE WHEN ar.created_at > NOW() - INTERVAL '6 months' THEN 1.2 ELSE 1.0 END
  ), 0) as confidence_score
FROM locations l
LEFT JOIN accessibility_reviews ar ON l.id = ar.location_id
LEFT JOIN users u ON ar.user_id = u.id
WHERE l.lat BETWEEN $1 AND $2 AND l.lng BETWEEN $3 AND $4
GROUP BY l.id, l.name, l.address, l.lat, l.lng
ORDER BY confidence_score DESC NULLS LAST;

What This Taught Me

  1. 1

    Accessibility compliance is a quality standard, not a feature — it improves the product for every user

  2. 2

    Community-sourced data needs confidence scoring, not just averaging — recency and contributor trust should weight the score

  3. 3

    Mapbox GL JS custom layers outperform Google Maps for accessibility-specific visual languages

  4. 4

    Co-founding requires explicit technical alignment on architecture decisions — velocity requires governance

Tech Stack & Decision Rationale
01

Next.js

PWA support + SSR for performance

02

TypeScript

Reliable geolocation data handling

03

Mapbox GL JS

Accessibility-specific visual language, developer-friendly pricing

04

Supabase

Real-time venue updates + contributor management

05

Tailwind CSS

WCAG-first, keyboard-navigable UI

README.md — true-access-app
📄 README.md
# True Access
> Community-Verified Accessibility Database for 4M Disabled South Africans

## Project Context
**Category:** Accessibility · Community Impact · Web App
**Status:** Live · 2025
**Author:** Nandawula Regine Kabali-Kagwa — East London, South Africa
**Company:** Mirembe Muse (Pty) Ltd · Reg: 2026-005658

## Stack
```
Next.js                        # PWA support + SSR for performance
TypeScript                     # Reliable geolocation data handling
Mapbox GL JS                   # Accessibility-specific visual language, developer-friendly pricing
Supabase                       # Real-time venue updates + contributor management
Tailwind CSS                   # WCAG-first, keyboard-navigable UI
```

## Architecture Notes
- All data mutations validated server-side via Next.js API routes
- Row-Level Security enforced at database level (Supabase)
- Mobile-first, PWA-ready, offline-tolerant where connectivity is unreliable
- PayFast integration for ZAR-native payments (no USD conversion)
- SEO-optimised: metadata, JSON-LD, canonical URLs, sitemap
- POPIA compliant — data minimisation + user consent by design

## Environment Variables
```env
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
ANTHROPIC_API_KEY=
NEXT_PUBLIC_PAYFAST_MERCHANT_ID=
NEXT_PUBLIC_PAYFAST_MERCHANT_KEY=
PAYFAST_PASSPHRASE=
RESEND_API_KEY=
```

## Links
- Live:   https://true-access-app.vercel.app
- GitHub: https://github.com/Nanda-Regine/TrueAccApp
- Portfolio: https://creativelynanda.co.za/projects/true-access-app

---
Built from East London, South Africa · Nine months · Zero to production

Interested in similar work?

Let's discuss how I can build something like this for your business.

Let's Talk