Case Study
The Paperback Society logo

The Paperback Society

A second-hand book marketplace built for South African readers. Scan a barcode to list a book, chat with buyers before money changes hands, pay through an in-app wallet that holds funds until the book arrives, and ship door-to-door or locker-to-locker through integrated couriers. The whole app is wrapped in a hand-drawn nautical world, ships, sea creatures, and ink-line botanicals, so every step feels less like a marketplace and more like a bookshop you carry around.

FlutterSupabaseMarketplaceBooks
ClientThe Paperback Society, South Africa
RoleProduct, Design & Development
DurationIn active build
The Paperback Society

The Challenge

South Africans already trade second-hand books informally, in Facebook groups, on Gumtree, between friends, on Instagram. None of those channels were built for it. There is no escrow, no integrated shipping, no real dispute path, and no way for buyers or sellers to build a reputation. Readers keep trading anyway, held together by patience and goodwill. TPS replaces that fragile glue with actual infrastructure, without losing the bookshop feeling that makes the trade worth doing in the first place.

The Solution

A Flutter app on top of Supabase auth, Postgres, and storage, with a PaymentGateway wallet handling escrow in ZAR. Listings start with an ISBN scan that auto-populates cover, title, author, and genre from an external book lookup. Every listing opens into a chat before any price is agreed. Orders ship via locker or door courier with a waybill generated in-app. Disputes, reviews, ratings, and push notifications all live in the same product surface, and a recommendation engine quietly learns from taps, likes, bookmarks, and searches to shape the browse feed around each reader.

At a glance

0

Screens

0

Services

ZAR

Currency

Closed beta

Status

The problem

South Africans trade second-hand books every day, in Facebook groups, on Gumtree, between friends, on Instagram. None of those places were built for it. No escrow, so buyers hand over EFTs and hope. No logistics, so half the listings die in the 'can you deliver?' message. No real dispute path when a book arrives damaged, no ratings that carry from one transaction to the next, no way for an independent bookshop to reach readers past its own suburb. The trade works because readers are patient. TPS replaces the patience with infrastructure.

Who it's for

The collector chasing out-of-print editions. The student hunting a prescribed set-work two weeks before term. The reader who wants a finished novel to go to someone who'll actually read it. The independent bookshop that can't justify a Shopify subscription but needs a way onto the phones of readers across the country. Four different users, one shared frustration, nowhere online treats a book trade like a book trade.

Discovery

We started with the founders, both lifelong readers, both veterans of the informal book economy. Then we went where readers already were, Facebook swap groups, Goodreads lists, bookshop Instagram DMs, university noticeboards, and watched how trades actually happen. Nearly every one started with a question, not a price. Nearly every one broke down at logistics or payment. The brief wrote itself, keep the human bit, fix the plumbing.

Features

  • Book bundling. Group several listings from one seller into a single checkout, pay and ship once.

  • Shipment tracking. Live status from waybill to delivery, inside the order, no pasting references.

  • Release funds. Escrow holds the money until the buyer confirms the book arrived.

  • Disputes. Opens as its own chat thread with a moderator, photos, and receipts attached automatically.

  • Messaging. Buyer and seller chat before any price is agreed, and the thread stays the source of truth through the whole order.

  • Listing by ISBN. Scan the barcode, cover, title, author, and genre auto-populate. The seller only sets condition, price, and four photos.

  • Shop and shop status. Physical bookshops get a profile with a shop toggle that surfaces them as real-world stores in the feed.

Colour Palette

Old-paper cream, ink-blue line work, a deep navy for headings, and a soft sand accent for cards. The palette is built to feel like a wellloved paperback in your hand.

Paper Cream

#F4ECDD

Page bg

Soft Sand

#E8DEC6

Card bg

Ink Blue

#5C7AA8

Line art

Deep Navy

#2A3B5C

Headings

Sea Charcoal

#1A2238

CTA

Full palette flow

From the makers

Behind the Build

Hand-drawn detail across every screen.

An illustrated welcome
An illustrated welcome
Splash and sign-in

An illustrated welcome

The splash and sign-in screens lean fully into the brand. A hand-drawn kraken curls around a quote, the wordmark sits in a soft botanical badge, and the colour palette never breaks character. Most apps use the splash as a loading frame, this one uses it as a first chapter.

Browse feed
Filters
Change my preferences
Author
Margaret Atwood J.M. Coetzee
Search by author name...
Genre
Fiction
FantasyScience FictionMysteryThrillerRomanceHistorical FictionHorrorAdventureYoung AdultClassicsLiterary FictionContemporaryCrime
Non-Fiction
BiographyHistoryPhilosophyPsychologySelf-HelpBusinessScienceMemoir
Condition
NewLike NewVery GoodGoodAcceptable
Language
EnglishAfrikaansZuluXhosaSothoFrench
Price Range
R 40
,
R 180
Clear All
Apply Filters
Browse and filter
Browse feed with the filter sheet open

Browse like a bookshop

A feed set up like wandering a shelf, large covers, generous spacing, seller and price under every title. A recommendation engine watches what you tap, like, bookmark, and linger on, then reshapes the feed around those signals. The filter sheet is the other half of the loop, author chips with autocomplete, genres grouped by Fiction, Non-Fiction, and Textbook, condition, language, and a ZAR price range, with a shortcut into your profile preferences so the feed and filters share one brain.

My Library
The Handmaid's Tale cover
Very good
The Handmaid's Tale
Margaret Atwood
R 85
Lerato · 2km
♥ Bookmarked
Reading list🔔
Sea of Tranquility cover
Sea of Tranquility
Emily St. John Mandel
ISBN 9780593321447
You'll be pinged the moment a seller lists it.
My Library
Purchases, bookmarks, and reading list

My Library, properly

My Library holds three things, your purchases, every listing you've bookmarked from other sellers, and a personal reading list of books you're still hoping to find. Drop a title onto the reading list and the app keeps watching, the moment a seller anywhere lists it, you get a notification. One shelf for what you own, one for what caught your eye, and one for what you're still chasing.

New Listing screen
New Listing
ISBN scan auto-populates the listing

Listing a book, one tap

Point the camera at the barcode on the back of a book and the listing is already half done. The ISBN scanner pulls cover, title, author, and genre from the book metadata, snaps them straight into the form, and leaves you with the human parts, condition, price, and four quick photos. No typing in long titles, no looking up genres, no digging for an ISBN. Minimum manual work, maximum time on the shelf.

Design Direction

The mood is pulled from old hardcover endpapers, antique sea charts, and ink-line natural history illustration. Cormorant Garamond carries the headings, warm cream sits behind the cards, muted slate blue drives primary actions, and hand-drawn line work appears across splash screens, empty states, and section dividers. Animation is kept minimal on purpose, the warmth comes from the artwork.

Wallet, escrow, disputes

The wallet is the spine of the product. A buyer tops up through the payment gateway in ZAR, the funds hold in the TPS wallet, and the seller only sees the money clear once the book is confirmed received. If the book never arrives, or arrives in a condition the listing did not describe, either side opens a dispute. The dispute becomes its own chat thread, carrying the original conversation, photos, and receipts, with a moderator stepping in as a third participant. Funds stay frozen the whole time. Withdrawals run on a separate review queue so cash never leaves the platform without a human check.

Shipping that meets the country

Every order quotes locker-to-locker, door courier, and in-person handover side by side at checkout, priced live against both addresses. A waybill is generated inside the app, so sellers do not leave to paste tracking numbers into DMs. The app assumes patchy connectivity, does not assume a credit card, and does not assume the buyer and seller live in the same province. A physical bookshop flips one switch on its profile and gets surfaced as a real-world store in the feed, a route to readers that Instagram never gave them.

A feed that learns

Every like, bookmark, scan, search, and listing view is logged through the interaction service and rolled up into a per-user taste profile. The recommendation engine reshapes the browse feed around those signals, quietly, never as an obvious 'For You' stream. Reading list entries get watched against new listings so a book you added six months ago still pings you the night someone finally lists it. Push notifications sit on Firebase Messaging with local fallbacks, so the ping lands whether the app is open or not.

It does not feel like a marketplace, it feels like a bookshop you carry around. That was the whole point.

FT

Founding Team

The Paperback Society

Technical Stack

Native-feeling on iOS and Android, with a backend built for trust and money handling.

Flutter

Framework

Dart

Language

GetX

State management

Supabase

Auth, Postgres, storage

PaymentGateway

Wallet, ZAR escrow

Firebase Messaging

Push notifications

Mobile Scanner

ISBN barcode

Locker Network

Logistics

Geolocator

Address lookup

Sentry

Error tracking

Cormorant Garamond

Typography

Custom Illustration

Brand

How We Got Here

01

Discovery

Workshops with the founders on how second-hand book trades actually happen in South Africa, what breaks, what works, and which informal habits are worth preserving. We mapped the messy real life into a marketplace that respects it instead of trying to replace it.

02

Design

Hand-drawn kraken, ship, and botanical artwork commissioned to set the brand. A full Figma library covering 27 screens, headings set in Cormorant Garamond, colours pulled from antique paperback covers, and components built against the live Flutter theme so design and code stay in sync.

03

Build

Flutter with GetX state management and a Supabase back end covering auth, Postgres, and storage. ISBN scanning, an auto-populated listing form, chat, orders, waybill generation, wallet top-ups and withdrawals, disputes with moderator chat, reviews, a recommendation engine, push via Firebase, and Sentry wired through every surface.

04

Launch

Closed beta with a circle of South African readers first, to stress-test the wallet, courier, and dispute flows end to end. Public launch on iOS and Android once moderation, support, and locker integrations are confidence-tested.