A personality quiz maps several preference answers to a result category. Fillo collects and validates the answers; your backend owns the scoring rubric and the result page.
Build neutral questions
const quiz = defineForm({
id: "working-style-quiz",
title: "Find your working style",
pages: [
{
id: "preferences",
blocks: [
{
id: "start",
kind: "select",
label: "How do you start an unfamiliar project?",
required: true,
options: [
{ id: "map", label: "Map the system first" },
{ id: "prototype", label: "Build a small version" },
{ id: "discuss", label: "Talk through the goal" },
],
},
{
id: "energy",
kind: "select",
label: "Which work gives you the most energy?",
required: true,
shuffleOptions: true,
options: [
{ id: "analysis", label: "Finding the pattern" },
{ id: "making", label: "Shipping the thing" },
{ id: "alignment", label: "Creating alignment" },
],
},
],
},
],
settings: { submitLabel: "See my result", redirectUrl: "https://app.example.com/quiz/result" },
});Classify on the server
Weight the raw option IDs and calculate the category once a response is accepted. Decide how ties break, and version the rubric so an old response stays explainable after the quiz changes. Don't draw diagnostic, medical, hiring, or other high-stakes conclusions unless the method and review process support them.
The redirect happens after Fillo accepts the response. Your result route can look up the signed-in person's latest quiz response in your own result store — don't put the full answer set in a query string.
Test for bias and dead ends
Enumerate the answer combinations, confirm every one produces a result, and check whether shuffled option order changes interpretation. Then test keyboard selection, narrow screens, repeat submissions, delayed result processing, and a result lookup that isn't ready yet.
Try it
Start with a prompt and your coding agent builds the first form, staged for your review — or open the editor.
Related
- Feature priority example: See structured preference choices in a live form.
- Pages and layout: Split longer quizzes into focused sections.
- Response limits: Keep one standing result per verified account.
- Completion: Redirect only after the response is accepted.