DEV Community

owen
owen

Posted on

Building a quiz result page that refuses to be one label

Most personality quizzes collapse you into a stamp, then hide the rest behind an email wall. I wanted the opposite: a short test, a complete result with no
account, and a page that still shows the scores around the leader.
That site is Loretypes. The homepage line is the product decision: your whole pattern, not one label.
Loretypes homepage with three quiz cards

What you can try

Three quizzes, 21–24 questions each:

  • Aura Color — eight colors, neighboring scores stay on the spectrum
  • Archetype — a leading type plus a supporting type
  • Moral Alignment — a nine-part chart and both axes If "aura" sounds like nonsense, start at Moral Alignment. Same scoring rules, no mysticism.

The result is the product

The interesting part is not the questions. It is what happens after submit.
The browser does not compute a type. It posts an answers array. The server validates length and range, runs one scoring strategy for that quiz, and stores the
payload. The client only gets a 12-character shareId.

  export const SHARE_ID_ALPHABET = "abcdefghijklmnopqrstuvwxyz0123456789";
  export const SHARE_ID_LENGTH = 12;
Enter fullscreen mode Exit fullscreen mode

http
  POST /api/tests/aura-color/results/
  Content-Type: application/json

  { "answers": [/ 21 integers, 1-5 /] }

  → 201 { "shareId": "xxxxxxxxxxxx" }

  Same answers on a phone and a laptop have to match. That is why scoring is server-side. Share links are `/aura/r/{shareId}/` (and the same shape for the other
  quizzes). OG images are generated from the stored payload, so the preview is the reading you just got, not a generic card.
  Results do not expire. A shared link should still resolve later.
  ![Aura result with the full color spectrum visible](https://loretypes.com/aura/og/egorpo1ezeih.png)
  There are three scoring strategies behind that one POST:
  - `dimensional-sum` for Aura
  - `bipolar-dimensional` for Archetype
  - `axis-grid` for Alignment
  Each quiz has one published method. The result page is allowed to name a leader. It is not allowed to pretend the leader is the whole person.

## What I left out of the default path
  After Archetype, you can optionally generate a short reflection for a situation (teamwork, an ordinary day). It stays off until you ask. Original answers are
  not sent. The text is not written into the share URL. If that request fails, the scored result is still there.
  The about page says this is reflection, not an assessment. I would rather over-say that than dress a quiz up as science.
  Stack is ordinary: Next.js App Router, Postgres for results, Redis for create-result rate limits.

## What I want criticism on
  - Three quizzes on the home page: clear, or three products pretending to be one?
  - 21–24 items: already too long for a no-signup quiz?
  - Does the result page still feel like a stamp even with neighboring scores visible?
  - Should the optional reflection exist at all?
  [Try it](https://loretypes.com). No account. The full result is the point.
Enter fullscreen mode Exit fullscreen mode

Top comments (0)