Skip to content
← All work

Client work · Web

GENIBOO

Bilingual registration and payments for a children's nonprofit.

Year
2026
Role
Full-stack developer (part-time), with HRSPRO
Stack
Next.js 16, React 19, TypeScript, Tailwind v4, Stripe
GENIBOO home page: 'Enriching Families, Empowering Youth' on a dark navy background.

The problem

GENIBOO runs before- and after-school programs, camps, STEM and arts for kids in Rockland, Ontario. Families needed one place to register for nine program categories, apply for financial assistance and donate, in English or French.

What I built

A Next.js App Router site with Stripe-backed flows for program fees, financial-assistance applications and donations. I worked directly with the Executive Director through regular check-ins, turning program needs into scoped features against a fixed brief.

A decision worth explaining

Hand-rolled i18n and theming, no libraries

Every page needed to work in both English and French, plus light and dark themes. Rather than add an i18n or theming library, I built both from scratch: the language switches in place on the same URL, the site carries no extra dependencies for either, and I control exactly how each one behaves.

Outcomes

  • Live at geniboo.ca, serving nine program categories.
  • Program fees, financial-assistance applications and donations all run through Stripe.
  • English and French throughout, plus light and dark themes, with no i18n or theming dependencies.
The same GENIBOO page switched to French.
The same page in French. The switch happens in place, on the same URL.