Mirobody
인간 건강의 표준 레지스트리, 약 2천 개 임상·생활 지표를 하나의 언어로 정리
성격·관계·직장·웰빙을 깊이 있게 평가, 확립된 심리학 연구 기반, 쉬운 언어로 설명
In-depth tests on personality, relationships, work and wellbeing, grounded in established psychological research and explained in plain language.
건강TypeScript · JavaScriptGitHub @KayleeHgndrp온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Next.js 16 site with 100-question psychological tests in 32 European languages. Taking a test is free; the detailed personal report costs €1.99 and is emailed after payment via Stripe.
npm install
cp .env.example .env.local # fill in Stripe/SMTP settings (optional for local dev)
npm run dev
Without STRIPE_SECRET_KEY the dev server skips payment, shows the report on the thank-you page and "sends" it
straight away. Without SMTP_HOST the email is logged to the console instead.
| URL | Page |
|---|---|
/ | Redirects to the visitor's language |
/es | Home page with all tests (#tests) |
/es/career | Test landing page (SEO) |
/es/career/start | Gender choice, then the 100 questions |
/es/career/result | Locked preview + email/checkout form |
/es/career/thanks | Confirmation after payment |
content/definitions/<slug>.json – questions' scoring structure (dimensions, reverse items, outcome type)messages/<locale>/ui.json – interface texts; messages/<locale>/tests/<slug>.json – test textscontent/tests.json – which tests are shown, in which orderscripts/gen-registry.mjs – generates lib/generated/registry.ts (runs automatically before dev/build)npm run check:content – validates every definition and translation (counts, keys, placeholders)lib/tests/scoring.ts – scoring, incl. 16-types code, attachment style, political quadrant, PHQ-9/PCL-5app/api/checkout – creates a Stripe Checkout session; answers travel in the session metadata (no database)app/api/stripe/webhook – on payment renders the report (lib/report/render.ts) and emails it over SMTP/[locale]/[test]/thanks?session_id=… – verifies the payment with Stripe, shows the full report on the page and
emails it if the webhook has not done so yet (lib/delivery.ts; a flag on the PaymentIntent prevents double sends)/[locale]/contact + app/api/contact – contact form, delivered over SMTP to NEXT_PUBLIC_CONTACT_EMAIL/CONTACT_FROM_EMAILMissing translations fall back to English per key, so a partially translated language still works.
See docs/CONTENT_SPEC.md for the content format.
1. Brand & domain
NEXT_PUBLIC_SITE_NAME and NEXT_PUBLIC_SITE_URL (used in emails, PDFs, share images, sitemap).app/icon.svg if you have your own logo.2. Hosting (Vercel recommended)
.env.example under Settings → Environment Variables.3. Stripe
STRIPE_SECRET_KEY.https://<domain>/api/stripe/webhook with events checkout.session.completed and
checkout.session.async_payment_succeeded; copy the signing secret into STRIPE_WEBHOOK_SECRET.STRIPE_AUTOMATIC_TAX=true.
The €1.99 price is VAT-inclusive; Stripe applies the customer country's rate.4. Email (SMTP)
SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, CONTACT_FROM_EMAIL.5. Legal (have a lawyer review)
COMPANY_* (legal notice / Impressum, mandatory in DE/AT) and NEXT_PUBLIC_COMPANY_DETAILS.messages/*/ui.json → legal).messages/<locale>/tests/depression.json items 0–8, trauma.json items 0–19).6. Monitoring & analytics
NEXT_PUBLIC_GA_ID. A cookie banner asks for consent
first; events test_start, test_complete, begin_checkout and purchase are sent once accepted. Mark purchase as a key event.NEXT_PUBLIC_PLAUSIBLE_DOMAIN, create goals Test Start, Test Complete,
Checkout Start and Purchase (enable revenue tracking for Purchase).ERROR_WEBHOOK_URL (Slack/Discord/Teams incoming webhook) to get notified of server errors.ADMIN_TOKEN to resend reports: curl -X POST https://<domain>/api/admin/resend -H "authorization: Bearer $ADMIN_TOKEN" -H "content-type: application/json" -d '{"sessionId":"cs_live_…"}' (optionally "email":"other@address").The depression test embeds the PHQ-9 and the trauma test the PCL-5; both are public domain and are scored with their official cut-offs. ASRS (ADHD), MDQ (bipolar) and MSI-BPD are copyrighted and require a licence for commercial use, so those tests use original items covering the same symptom areas.