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
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.
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.
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.
-- 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
Accessibility compliance is a quality standard, not a feature — it improves the product for every user
- 2
Community-sourced data needs confidence scoring, not just averaging — recency and contributor trust should weight the score
- 3
Mapbox GL JS custom layers outperform Google Maps for accessibility-specific visual languages
- 4
Co-founding requires explicit technical alignment on architecture decisions — velocity requires governance
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
# 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
More Projects
Interested in similar work?
Let's discuss how I can build something like this for your business.
Let's Talk