Web tool

Rice Purity Test: a fast, private web tool with almost nothing to download

An online version of the classic 100-question Rice Purity Test, for adults aged 18 and over. We built it on Next.js and TypeScript with three runtime dependencies, and the answers never leave the visitor's browser.

The Rice Purity Test home page: a short explanation, a start button and three feature notes

The challenge

People take the test on their phones, often in the middle of a conversation, and leave if it's slow. It's also personal, so visitors need to trust that their answers stay private.

The site also has to answer what people search for, such as what the test is and what a score means, without spreading one topic across many thin pages.

Our approach

  • Answers stay in the browser

    The score is calculated on the device, and progress is saved in the browser's local storage, so a visitor can close the tab and carry on later. There's no account, and no answer is sent anywhere.

  • Almost nothing to download

    Three runtime dependencies: Next.js, React and React DOM. No UI kit, animation library or state manager. The questions are plain TypeScript data.

  • Opt-in, anonymous statistics

    An optional feature lets adults add their score and an age band after finishing. It stores only counts of the score, age band and country (from the hosting platform), never individual answers, accepts one submission per network every 12 hours, and publishes a band only after 50 responses. It stays off until it's configured.

  • Content that answers real questions

    Core pages were rewritten against real search queries, duplicate pages were consolidated, and AI crawlers are allowed.

Architecture

Pages
Next.js App Router, statically generated, with components organised as atoms, molecules and organisms.
Test and results
Client-side state in small custom hooks for progress, scoring and local storage.
Stats API (optional)
One route handler that validates the score and age band, hashes the network address to rate-limit, and stores counts of score, age band and country in Redis over its REST API, so no database driver is needed.
  1. Browser

    • Test and results

      Scored on the device; progress in local storage

  2. Pages

    • Next.js, static

      Test, guides and results pages

  3. Optional

    • Stats route

      Score, age band and country; rate-limited

    • Redis over REST

      Counts, published above 50 responses

The Rice Purity Test on a phone, with the question list and progress

Where it stands

  • Private by default

    No accounts and no stored answers. The optional statistics hold only counts.

  • Adults only, by design

    The site says it's for adults aged 18 and over on its key pages and in its terms, and nothing on it is aimed at younger readers.

Built with

  • Next.js 16
  • React
  • TypeScript
  • Tailwind CSS
  • Upstash Redis (optional)

Have a problem like this one?

A few lines is enough. We'll ask the right questions on the call.

  1. We reply within one working day

    By email or WhatsApp, whichever you prefer.

  2. A short call

    To understand the goal, the people who'll use it and any deadline.

  3. A written scope and estimate

    Before any work starts, so you know what you're agreeing to.

So we can reply on WhatsApp if you prefer.

What are you building, who is it for, and is there a deadline?

We reply within one working day. By sending this you agree that Teknoesis (Lahore, Pakistan) may contact you about your request and store your details as described in our Privacy Policy. We use analytics tools; see Your Privacy Choices in the footer.