A question-and-answer community for seeing why people react differently. Answer a question, read other people’s responses, and compare 9 perspectives.
SocialSvelte · TypeScriptGitHub @Wolverine971OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗See the emotions behind every take. One situation, 9 ways to see it.
9takes is a personality-based Q&A and content platform built around the Enneagram. Readers ask anonymous questions, swap perspectives with a "give-first" comment system, and dig into celebrity and pop-culture personality analyses.
9takes comes from the 9 personality types within the Enneagram — 9 worldviews, 9 ways to read the same moment.
src/routes/ # SvelteKit pages, API routes, admin panel
src/lib/ # Components, server utils, email, analytics
src/blog/ # MDsvex content (community, enneagram, guides, pop-culture, …)
scripts/ # Generators, indexers, migration helpers
supabase/ # SQL migrations
docs/ # Brand, SEO, growth, planning, research
See CLAUDE.md for a thorough map of routes, admin sections, API endpoints, src/lib/server/ modules, env vars, and conventions.
>=22>=8.env.local — see the Environment Variables section of CLAUDE.mdpnpm install
pnpm gen:all # Optional: regenerate types, sitemap, search index, etc.
pnpm dev # http://localhost:5173
pnpm dev # Dev server
pnpm build # Production build
pnpm build:vercel # Build as Vercel runs it (with pre-generators)
pnpm check # svelte-kit sync + svelte-check
pnpm lint # Prettier check + ESLint
pnpm format # Prettier write
pnpm test # Vitest unit tests, single run (*.spec.ts)
pnpm test:unit # Vitest in watch mode
pnpm test:smoke # Playwright smoke tests (e2e/)
pnpm index:blogs # Index MDsvex blogs into Supabase FTS
pnpm gen:sitemap # Regenerate sitemap
| Route | Source |
|---|---|
/community | src/blog/community/ (MDsvex) |
/enneagram-corner | src/blog/enneagram/ (MDsvex) |
/how-to-guides | src/blog/guides/ (MDsvex) |
/pop-culture | src/blog/pop-culture/ (MDsvex) |
/personality-analysis | blogs_famous_people Supabase table (DB-driven) |
/personality-analysis is managed through the admin UI at /admin/content-board and versioned in blogs_famous_people_history.
Corpus-wide numbers (type distribution, over-/under-representation by domain, pipeline cadence, and a side-by-side comparison against published Enneagram research) live at /corpus-stats and are regenerated on every Vercel deploy via scripts/generate-corpus-stats.js. The machine-readable copy is src/lib/data/corpus-stats.json (plus hand-curated src/lib/data/corpus-stats-external.json for the public-data comparison); the human-readable Markdown mirror blog commands pull from is docs/data/corpus-stats.md. /corpus-stats is the canonical public source to cite for any numerical claim about the 9takes corpus.
src/lib/server/*.spec.ts, src/routes/**/*.spec.ts). Run pnpm test (single run) or pnpm test:unit (watch).e2e/. Run pnpm test:smoke.The repo deploys on Vercel via @sveltejs/adapter-vercel. pnpm build:vercel runs the personality-image-map, corpus-stats, sitemap, and llms.txt generators before building, so they stay in sync in production. pnpm build also enforces build budgets (scripts/check-build-budgets.mjs).
Cron endpoints (src/routes/api/cron/*) are triggered on schedule and require a CRON_SECRET bearer. The /api/update-questions webhook requires PRIVATE_WEBHOOK_AUTH.
src/lib/server/.$state, $props, $effect, $derived). Legacy components still use export let / $: — migrate when you touch them.src/lib/server/*.ts so it can run without a browser.docs/brand/ before writing copy.Proprietary — all rights reserved.