Mirobody
인간 건강의 표준 레지스트리, 약 2천 개 임상·생활 지표를 하나의 언어로 정리
Just You는 구독형 AI 앱으로 반복되는 행동 패턴의 원인을 파악하고 해결책을 제시합니다
Just You is a subscription AI app that helps people understand why they keep repeating the same patterns, and what to actually do about it. It traces a problem back to its real root — a family pattern
건강TypeScript · CSSGitHub @vtdzmz9gjt-gif가동 상태 재확인 필요운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Just You is a subscription AI app that helps people understand why they keep repeating the same patterns, and what to actually do about it. It traces a problem back to its real root — a family pattern, an internal conflict — instead of just reflecting feelings back, then offers real guidance toward actually resolving it. It remembers across conversations too.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A minimal, real chat app that turns system-prompt.md (built from your
the_return_system_prompt_spec.md) into an actual Claude-backed
conversation, with the follow-up loop wired to a real database — not a
mock. This is meant to match the spec's own suggested build order, steps
1–3: the system prompt is live, there's a working chat, and the follow-up
loop stores one open commitment per person with a target date and a
check-in.
system-prompt.md — the literal system prompt, in second person,
covering tone, the why→ask→how structure, source grounding, the
follow-up loop, and crisis handling exactly as your spec described them.app/api/chat) — calls the Messages API with that
system prompt plus live context (today's date, any open commitment).
Claude has two tools it can call mid-conversation: record_commitment
and resolve_open_commitment. It decides when to use them — you don't
have to parse its replies for intent.lib/db.ts, via @neondatabase/serverless) — stores
messages and commitments per browser (a random ID is generated into
localStorage on first visit — there's no login for this prototype).
Needs DATABASE_URL set; on Vercel this is populated automatically once
a Postgres database (Neon, from the Vercel Marketplace) is connected to
the project.app/api/cron/check-ins) — optional. If someone
leaves an email (via the ⋯ menu in the app) and you wire this endpoint
to a daily scheduler, it emails them the day before a commitment is due,
matching the spec's "app reaches out first" behavior. Without that
setup, the app still honors the spirit of it on the pull model: the
moment someone opens the chat after their target date has passed,
Claude raises it itself, unprompted — that's built into the system
prompt's context, not the email path.npm install
vercel env pull # pulls DATABASE_URL and ANTHROPIC_API_KEY from Vercel
npm run dev
Open http://localhost:3000. If you're not using Vercel's CLI, copy
.env.example to .env.local and fill in ANTHROPIC_API_KEY and
DATABASE_URL (any Postgres instance) yourself instead.
Deployed on Vercel, aliased to the production domain. Needs
ANTHROPIC_API_KEY and DATABASE_URL set as environment variables —
DATABASE_URL is populated automatically once a Postgres database is
connected to the project (Storage tab → connect a Postgres/Neon
database), so persistence isn't tied to the serverless filesystem the
way it would be with SQLite.
RESEND_API_KEY (and optionally FROM_EMAIL) as an environment
variable on Vercel.vercel.json already schedules a Vercel Cron Job to hit
GET /api/cron/check-ins once a day. If you set CRON_SECRET, Vercel
automatically sends it as the Authorization: Bearer <secret> header
on its own scheduled requests.Skip all of this and the app still works — see "proactive check-ins" above.
SENTRY_DSN as an environment variable on Vercel. That alone is
enough to get alerted by email when /api/chat throws or times out —
Sentry.init() is a harmless no-op without it, so nothing breaks if
you skip this.vercel.json also schedules a Cron Job hitting GET /api/cron/health-check every 15 minutes, which sends a real test
message through the real public /api/chat endpoint and reports to
Sentry if it fails or takes longer than 20s. Same CRON_SECRET
handling as check-ins. The synthetic test user this uses is excluded
from every admin-facing count (getAdminSignals, getSignals) by a
fixed id, so it never shows up as a real visitor.SENTRY_ORG / SENTRY_PROJECT too, if you want
readable (unminified) stack traces in Sentry's UI instead of just
knowing something failed.Send people the deployed URL. Nothing to install. Each browser gets its own thread and its own single open commitment. Worth watching for, per your spec's own concerns: whether the tone actually reads as a friend and not a therapist, whether the crisis-detection judgment call holds up under real "heavy" messages, and whether the follow-up loop's check-in feels like genuine care rather than a notification.