A free, open-source DISC personality and behavior test. Answer 24 honest statements about how you act under pressure, and watch the result resolve into a single reading — plotted live on a compass, not buried in a PDF or an email gate.
DISC is a behavioral framework — Dominance, Influence, Steadiness, Conscientiousness — that describes how someone tends to act and communicate under pressure, not how smart they are or how good they are at their job. This project is an independent, from-scratch build of that idea: a real Likert-scale instrument (not a "which Harry Potter house" quiz wearing DISC's name), scored with actual Classical Test Theory math, resolving into a primary trait, a blended profile, or an honest "no clear signal" result when someone's answers don't resolve cleanly.
It is not affiliated with any commercial DISC vendor, and doesn't use their content.
- Students & educators — drop it into a psychology, business, or leadership unit. A whole class can take it in one period, no logins, no per-seat cost.
- Teams & managers — a fast, honest way to talk about working styles before a kickoff or offsite. No data collected on anyone's answers.
- Anyone curious — six minutes, a real reading, and a JSON export you actually keep — not a lead-gen form pretending to be a personality test.
- Nothing leaves your browser. The Likert form, the scoring engine, the compass visualization, and the JSON export all run client-side. No account, no database, no server ever sees an answer.
- Real methodology, not a horoscope. Reverse-scored items to catch straight-line answering, a documented blend threshold, and an explicit "indeterminate" result instead of forcing a fake reading when someone answers everything neutral.
- Honest about its limits. It measures self-reported behavioral preference — not intelligence, not clinical status, not job competence — and says so plainly, both in the app and here.
Stack, environments, and how to run your own copy
Stack: plain HTML, CSS, and JavaScript. No frameworks, no build step, no dependencies.
Runs anywhere static: GitHub Pages (what this repo is set up for), Netlify/Vercel/Cloudflare Pages, a plain file server, or just double-clicking index.html locally. The only external calls are Google Fonts and Google Analytics — delete the font <link> tags and the gtag.js block in index.html's <head> for a fully offline copy.
Deploying your own fork:
- Push everything in this repo to your own repo's
mainbranch (root — no build step, no subfolder). - Settings → Pages → Source:
Deploy from a branch, branchmain, folder/ (root). - Live in a few minutes at
https://<username>.github.io/<repo-name>/. - Find-and-replace
https://sauerninja.github.io/DiSC-Compass/acrossindex.html,404.html,site.webmanifest,robots.txt, andsitemap.xmlwith your own URL, and swap thetwitter:site/twitter:creatorhandles and JSON-LDsameAslinks for your own.
File structure: everything sits flat at the repo root on purpose (no assets/ subfolder) — GitHub's web upload flow doesn't preserve subfolders unless you drag one in directly, and a mismatched path is a real way to break every image on the site.
Extending it: the question bank is the QUESTIONS array in app.js (add a trait and reverse flag per item); blend copy lives in BLEND_LINK keyed by pairKey(); the compass is pure SVG templating in renderCompass(), reskinned entirely through the CSS custom properties in style.css.
Design, SEO, and analytics notes
Palette: every color in style.css is sampled directly from the compass artwork (compass-hero.jpg), not chosen independently — the UI, favicon, and hero image all read as one object. D=#BA2E26, I=#996314, S=#527539, C=#33516B, contrast-checked against WCAG AA.
SEO: full meta/OG/Twitter card set (title and description lead with "free DISC" — a real query already generating impressions in Search Console), WebApplication + FAQPage JSON-LD (the FAQ schema is checked to match the visible FAQ text word-for-word — mismatched schema doesn't qualify for rich results), image sitemap entries, rel="me" entity links, a branded 404.html, <noscript> fallback, a skip-to-content link, and an llms.txt at the repo root — a plain-language summary for AI answer engines and agentic crawlers to cite accurately, the same idea as robots.txt but aimed at LLMs rather than search spiders. Search Console/Bing Webmaster submission and backlinks are outside what a static site's HTML can do on its own.
Sharing: the results screen has Share on X / Share on Reddit / Copy link buttons that pre-fill the person's actual result, and the footer has a generic "share this tool" row — real referral traffic and backlinks do more for ranking than any on-page tag.
GitHub discoverability: repo Topics (Settings → gear icon next to "About") are separate from on-page SEO and worth setting — something like disc-assessment, personality-test, behavioral-science, psychology, svg, javascript, open-source, survey-tool, zero-dependency. That's a manual step in repo settings, not a file change.
Analytics: the hosted copy runs Google Analytics (gtag.js) for anonymous page-view counts only, with Consent Mode v2 and a visible opt-out banner. Survey answers are never involved regardless of the analytics choice — delete the gtag.js block and #consent-banner markup to remove it entirely.
MIT — see LICENSE. Use it, fork it, strip the branding, run it internally — no attribution required, though it's appreciated.
The per-question icons use path geometry from Lucide (ISC License) — see THIRD-PARTY-LICENSES.md.
