Home
Ashavid
Back to Portfolio
Built by AshaVidCivic Tech / PsychometricsBuilt 2026

MindPolis

A civic intelligence platform that uses validated instruments like Moral Foundations Theory, wrapped in an experience designed to survive contact with an audience trained on two-minute quizzes.

InstrumentScoring serviceFallbackTopography
The instrument stays intact; scoring is isolated with a defined degraded mode.
  1. Interface

    What the user touches

    • Next.js
    • Recharts
  2. Application

    Where the rules run

    • Prisma
    • NextAuth
  3. Intelligence

    Models and ingestion

    • Python scoring service
  4. Data

    What persists

    • PostgreSQL
  5. Platform

    What it runs on

    • Turborepo

A compact view of the venture

Venture
MindPolis
Category
Civic intelligence / assessment
Stage
Live platform
Core challenge
Academic rigour versus completion rates
Our role
Product design and full-stack build
Focus areas
Psychometric scoring, progressive disclosure, sharing

Why we started building this

Online political assessment is dominated by quizzes that place you on a two-axis compass. They spread well and explain almost nothing, because political identity is not two numbers.

The academic instruments that do capture it — Moral Foundations Theory, Schwartz values — are long, dense, and written for research subjects rather than curious people on a phone.

MindPolis exists in the gap: keep the validated instruments intact, and spend the design effort on making a serious assessment something a person will actually finish and want to share.

Rigour that nobody completes measures nothing. The design problem is keeping the instrument intact while making it survive a real audience.

What we built

A Turborepo platform pairing a Next.js application with a Python scoring microservice, seeded with a 40-question compass and a 36-question Moral Foundations matrix, rendering results as multidimensional topographies rather than a single point.

  • Validated instruments

    A 40-question compass matrix and a 36-question Moral Foundations Questionnaire, seeded as structured data rather than hardcoded.

  • Dedicated scoring service

    A Python microservice handles scoring, with a TypeScript fallback client so the platform degrades gracefully rather than failing.

  • Progressive disclosure

    Academic layers sit behind "Learn More" toggles — rigour stays available without making the primary surface dense.

  • Multidimensional visualisation

    Radar and polygon mapping via Recharts, in place of a single point on a two-axis grid.

  • Cognitive signifiers

    Gamification built on introspection and rarity rather than XP counters, so the mechanics reinforce reflection instead of speed.

  • Frictionless sharing

    Secure hash routing at /r/[hash] mapped to generated OG images for sharing without exposing identity.

Why this needed to exist

  • Validated psychometric instruments are long, and length is the primary cause of abandonment.

  • Simplifying the instrument to raise completion destroys the thing that made it worth taking.

  • Scoring logic for multiple overlapping frameworks is genuinely complex and does not belong inline in a web app.

  • Results that cannot be shared do not spread, but sharing political results raises real privacy concerns.

  • Gamification usually rewards speed, which is the opposite of what a reflective instrument needs.

How we framed the opportunity

Every design decision here negotiates the same tension: preserve the instrument, change everything around it.

Do not simplify the instrument, restructure the interface

Progressive disclosure keeps the full academic apparatus available while keeping the default view clean.

Scoring is a service, not a controller

A separate Python service isolates the psychometric logic and lets it evolve without touching the application.

Design the fallback before you need it

The TypeScript fallback client means an unreachable scoring service degrades the product rather than breaking it.

Share the result, not the person

Hash-routed result pages with generated OG images make sharing viable without attaching identity to political data.

Where the existing options fell short

What existing quizzes offered

  • Very high completion rates and strong shareability.
  • Immediate, legible output that people enjoy posting.
  • Almost no barrier to starting.

What they lacked

  • Any validated psychometric basis for the result.
  • Dimensionality beyond two axes.
  • Distinction between moral intuitions, material interests, and cultural priors.
  • Reason to trust the output as anything more than entertainment.

The decisions that shaped the product

Keep the instrument academically intact

Moral Foundations Theory and the compass matrix are used as designed, not trimmed for convenience.

Spend the design budget on the wrapper

Progressive disclosure, visualisation, and pacing carry the experience so the instrument does not have to be compromised.

Make sharing safe by construction

Hash routing and generated images allow spread without tying political results to an identity.

How it came together

  1. Phase 1

    Instrument modelling and seeding

    Model the compass and MFQ matrices in Prisma and seed them as data, so instruments can change without a rewrite.

  2. Phase 2

    Scoring service and fallback

    Build the Python scoring microservice with a TypeScript fallback client for graceful degradation.

  3. Phase 3

    Experience, visualisation, and sharing

    Ship progressive disclosure, radar visualisations, cognitive signifiers, and hash-routed shareable results.

Where the product stands today

  • A live assessment platform running a 40-question compass and 36-question MFQ
  • A dedicated Python scoring service with a TypeScript fallback path
  • Radar and polygon result visualisation replacing single-point placement
  • Progressive disclosure keeping academic layers accessible but optional
  • Hash-routed shareable results with generated OG images
  • Role-based access via NextAuth across a Turborepo monorepo

What building this taught us

  • Rigour nobody completes is not rigour.
  • Fix the wrapper before you compromise the instrument.
  • Complex domain logic belongs in its own service.
  • Every external service needs a defined degraded mode.
  • Sharing and privacy are reconcilable if you design the URL scheme for it.

We build the products we would want to operate ourselves.

MindPolis is one of the ventures we design, build, and run in-house at AshaVid.