Skip to content

RTI Lounge

A home for a Pan-African reading community outgrowing WhatsApp.

challenge participants, up from 20–30
100+
ARC completion, up from under 10%
70%
of coordinator admin removed each week
~4 h
The problem

Why it needed building.

Read to Impact is a Pan-African reading community of 2,300+ readers in about 30 countries. It runs on WhatsApp groups, occasional meetups and in-person literary festivals.

Reading challenges were hard to run and track on WhatsApp. Book reviews that members shared were lost among group chat, banter and announcements. An internal survey showed that 92% of members wanted a review surface outside WhatsApp, where reviews would last and be easy to find.

What I built

The features that solved it.

Feature 01

Reading challenges

One community challenge at a time. Members log their to-be-read lists and the books they finish, and the Lounge tracks each reader's progress, the community goal and the finishers, a job that used to be tedious for coordinators.

The live Lounge Challenge tab on a laptop after the Read Africa Challenge (Sep 2026): 107 readers, 55 books read and a 214-book community goal, above the community goal bar at 26%.
The Challenge tab on a phone during a challenge: the community goal at 38%, the reader's private pace against the median, and the first finishers.
The live Challenge tab on a laptop: 107 readers took part in the Read Africa Challenge (Sep 2026). On a phone, the same page mid-challenge, with sample data in place of members' names.

Feature 02

Public book reviews

Members write reviews that anyone on the internet can browse and read without an account, with search, filters and sort. Reviews now stay findable instead of scrolling away in a group chat.

The live public reviews feed on a phone: a search bar, then a member's five-star review of 'When Love Visits', with its cover.
The live reviews feed on a phone, open to anyone on the internet without an account.

Feature 03

ARC reader

Advance reader copies are read inside the Lounge, replacing a third-party tool that cohorts rarely used. Readers choose the theme and text size, and the reader keeps their place. Each page carries a faint watermark with the reader's email address, to deter leaks of unpublished manuscripts.

Phone in front
The ARC reader on a phone in its light theme: chapter 1, The Light at the End of the Pier, under a faint diagonal watermark, with the page controls at the bottom.
The ARC reader in its sepia theme at a large text size: chapter 2, What the Tide Forgets.
The ARC reader in its dark theme: chapter 3, A Letter, A Photograph, A Boat, in warm light text on near-black.
The reader's three themes on a phone: sepia at a large text size, light, and dark. Shown with a sample manuscript: real advance copies are unpublished.
Outcome

What changed.

registered members
420+
completed profiles
330+
challenge participants, up from 20–30
100+
of coordinator admin removed each week
~4 h
ARC completion, up from under 10%
70%
Under the hood

How it’s built.

Next.js 16 (App Router) and TypeScript on Render, Supabase (Postgres, email and Google sign-in), Cloudinary for images, Resend for transactional email.

How a request is served: from a member's phone over HTTPS to Next.js on Render, which relies on Supabase, Cloudinary and Resend.

Member's phone

Any browser, often on a slow connection

Next.js on Render

One Node service: server-rendered pages and server actions

Managed services

  • Supabase

    Postgres with row-level security; email and Google sign-in

  • Cloudinary

    Responsive WebP images

  • Resend

    Transactional email

High-level technical architecture diagram

Cost

One Node service and no separate backend. Auth, database, images and email are managed services.

Maintainability and extensibility

Every feature follows one folder pattern: server queries, server actions, mappers, validation. A token-based design system in Tailwind CSS with a component showcase, Framer Motion for interface motion, versioned SQL migrations, and feature flags for beta features.

Audience access

Server-rendered pages with no client-side fetching on first paint, responsive WebP images, reduced-motion support, focus rings and ARIA roles.

Security

Postgres row-level security, and column-level grants that hide members' personal details. Admin views re-check permissions in the database and return 404 to everyone else. Security headers; member text is escaped everywhere, and imported manuscript HTML is sanitised against an allowlist.