GS
Back to ProjectsCase Study

NGI Foundation Platform

Public site + authenticated dashboards supporting programmes and applicants.

Role

Freelance

Duration

2025 - Present

Stack

Next.jsTypeScriptSupabasePaystackResendTailwind CSSFramer MotionSentryUpstash RedisZod

Context

The foundation needed a scalable system to manage hundreds of applications for their youth programmes, collect payments securely, and communicate with applicants — all without manual spreadsheet tracking.

Overview

A comprehensive platform for the New Generation Inspiration Foundation, featuring a public-facing site with programme information, an authenticated applicant portal with role-based dashboards (applicant, staff, ambassador), and an admin suite for programme management, payment tracking, and email automation. Includes an ambassador referral system, AI-powered insights via Google Gemini, rate limiting, and GA4 analytics, with structured deployment workflows for reliable releases.

Key Outcomes

  • Built structured user flows for applicants from registration through to acceptance
  • Implemented role-based access control with Supabase RLS policies across applicant, staff, and ambassador roles
  • Integrated Paystack Checkout for secure payment workflows with webhook verification
  • Automated transactional email notifications using Resend with React Email templates
  • Implemented rate limiting with Upstash Redis to prevent abuse on public endpoints
  • Added AI-generated insights using the Google Gemini API for programme analytics
  • Implemented monitoring and regression checks to improve release confidence
  • Maintained repeatable deployment workflows across staging and production

Lessons Learned

  • Handling real-world payment edge cases (failed webhooks, duplicate payments) requires defensive coding
  • Row-level security policies need careful planning upfront — retrofitting is painful

Technologies

Next.jsTypeScriptSupabasePaystackResendTailwind CSSFramer MotionSentryUpstash RedisZod

Gallery

NGI Foundation Platform screenshot 1