Jamorham
Nightscout용 xDrip+ 버전
주변 사람과 습관이 나에게 미치는 영향을 보여주는 무료 개인 일기, 패턴·보고서·실천 제공, AI는 읽지 않음
See how the people and habits in your life affect you. A free, private journal with patterns, reports and practices. No AI reads your journal.
건강JavaScript · CSSGitHub @tennysonmilesperhour온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Base44 App: Vibe Check
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
See how the people and habits in your life affect you. A free, private
journal with patterns, weekly and monthly reports, and practices for hard
moments. No AI reads your journal.
Vibe Check's product foundation makes
daily reflection, the orbit, relationship and habit charts, full history,
and weekly and monthly reports with somatic practices matched to stress
patterns the free baseline for everyone. It helps users notice patterns and
practice responses that fit their own needs and values. Optional paid systems add
deeper interpretations; the core experience requires no external AI account.README 전문 보기 ↗See how the people and habits in your life affect you. A free, private journal with patterns, weekly and monthly reports, and practices for hard moments. No AI reads your journal.
Vibe Check's product foundation makes daily reflection, the orbit, relationship and habit charts, full history, and weekly and monthly reports with somatic practices matched to stress patterns the free baseline for everyone. It helps users notice patterns and practice responses that fit their own needs and values. Optional paid systems add deeper interpretations; the core experience requires no external AI account.
The free baseline is implemented: short check-ins and drafts, a full journal, people and habit filters, uncapped history retrieval, weekly/monthly reports, source-linked stress patterns, eleven practical invitations, saved outcomes, and a private export preview with optional password encryption. Seven optional chakra plant companions open journal prompts. All matching and reports run without sending journal text to an AI provider. Paid packaging is not enabled.
Schema additions are in supabase/migrations/20260908191348_vibe_living_patterns.sql.
The report engine recomputes from current entries, so corrections and deletions
carry through to charts, reports, and exports. Missing days stay visible.
src/components/ui/), framer-motion, recharts.supabase/migrations/.vercel.json).npm install
npm run dev
Create .env.local with the Supabase project credentials:
VITE_SUPABASE_URL=https://<project-ref>.supabase.co
VITE_SUPABASE_ANON_KEY=<anon key>
Without these the app boots to a loud misconfiguration notice on the sign-in screen.
| Command | What it does |
|---|---|
npm run dev | Vite dev server |
npm run build | Production build into dist/ (also emits /version.json for the update toast and /sw.js, the service worker) |
npm run preview | Serve the production build locally |
npm run lint | ESLint over the repo |
npm test | Vitest unit suites (the resonance/wisdom engines are exhaustively tested) |
npm run typecheck | tsc over jsconfig.json |
npm run check:bundle | First-load JavaScript budget; run after npm run build |
npm run test:e2e | Browser tests: every page, the main flows and WCAG A/AA checks, on desktop and phone |
npm run test:e2e builds the app into dist-e2e/ and runs Playwright against
it, under the production headers from vercel.json (vite preview sends
them, Content-Security-Policy included). The app talks to a stand-in Supabase
(e2e/support/mock-supabase.js): auth is answered in JavaScript, and table
requests run as SQL in an in-process Postgres (PGlite) built from
supabase/migrations/ (e2e/support/database.js), as the signed-in person
with their JWT claims. Types, NOT NULL, CHECK, unique keys and the migrations'
row-level security policies apply as they do live. Each test starts from an
invented person (e2e/support/persona.js) at a fixed clock, so no network or
account is needed. A migration that needs something more from the Supabase
platform fails the tests with a pointer to PLATFORM in database.js.
A test fails when a page throws or logs an error, when one of the app's files
fails to load, when the app makes a request the mock refuses or doesn't
model, or when it contacts any other site. The first run needs a browser:
npx playwright install chromium.
e2e/offline.spec.js checks opening without a connection. Each of its tests
starts its own server for the test build and stops it partway through, since
Playwright's offline switch doesn't reach the service worker.
e2e/kept-saves.spec.js checks saves kept without a connection, with the
stand-in Supabase out of reach (backend.control.offline) or losing answers
on the way back (backend.control.loseAnswers).
The service worker (src/service-worker.js, built into /sw.js by
vite.config.js) lets the app open without a connection. It keeps app files
only, never records: sign-in, records, and other sites always go to the
network.
_vibe_version, from the update notice) always waits for
the network.OFFLINE_PAGES in
vite.config.js). Other pages are kept once they've been opened.vibe-build meta tag), not in the scripts, so the libraries, styles,
and fonts keep their file names across builds./version.json)
rather than trusting navigator.onLine, which stays true on a network
without internet: no answer means no connection, a different build means
an update, and otherwise the load just failed.To switch it off for everyone: in src/main.jsx, replace the registration
with code that unregisters any existing worker, and deploy a worker that
deletes the vibe-app- and vibe-meta caches and unregisters itself (see
the comment at the top of src/service-worker.js).
Saves made without a connection are kept on the device and sent later
(src/lib/kept-saves.js, sent by src/features/shell/KeptSaves.jsx):
base, its updated_at), and earlier versions kept here
(prior). If the account holds a different version, saved somewhere else,
it isn't written over: the person chooses on Today (or in the journal) to
save their version or discard it. A check-in begun while Today couldn't
load the history, and a kept check-in or journal change reopened and saved
again, go through the same check, even once the connection is back.src/api/entities.js are tried again on a dropped connection
(the Supabase client waits 1, 2 and 4 seconds), except while the device
reports it's offline: then they fail at once, so Today and the check-in
open without the wait.src/lib/ — pure logic: dates, record days, boundaries, crypto export, and
the resonance + wisdom engines (src/lib/resonance/,
src/lib/wisdom/). Keep this layer pure and unit-tested.src/features/ — feature UI grouped by surface (today, loom, practice,
patterns, people, shell).src/pages/ + src/pages.config.js — routed pages.src/api/ — thin Supabase adapters (supabase.js, entities.js, and the
Base44-compatibility facade base44Client.js).supabase/migrations/ — schema, applied via the Supabase CLI or MCP
(supabase db push / apply_migration).docs/ — specs, plans, and roadmaps (see
docs/roadmap/2026-09-29-expert-review-plan.md for the current plan).Copy speaks plainly, with no persona (the plant voice was retired on October 2, 2026). Optional plant companions offer deeper chakra reflections. The current chakra pairings are authored reflective invitations, not medical or universal traditional claims.
The current direction is Nature Sanctuary, with the September 8 woodland palette: moss, fern, deep forest, warm bark, and weathered brass. The B1/Breath mark, botanical imagery, fine-line symbols, serif typography, and calm motion carry this across the app.
See the current visual guidance for palette
roles, art direction, motion, and application by screen. This supersedes the
older Golden Hour and twilight visual guidance. The implementation uses
shared sanctuary colors with compatible --gh-* aliases in src/index.css.
Fonts (Instrument Serif and Manrope, SIL Open Font License) are bundled from
Fontsource packages, so pages request nothing from other sites.
See asset provenance and playback behavior.
Without signing in, visitors get the front page with the free pledge (/),
help-now practices (/help-now), Support now, and the privacy, terms, and
support pages. /signin and /signup open the sign-in form in either mode.
Deletion covers the full Vibe Check history, including journal entries, drafts,
practice sessions, report reflections, and preferences. Campground and Daily
Digest records and their shared sign-in remain protected.
The completion migration is
supabase/migrations/20260908235730_complete_vibe_account_deletion.sql; it and
the updated delete-account Edge Function were applied for this release.
supabase/tests/delete_vibe_data.sql verifies generated fixtures inside a
rolled-back subtransaction. The shared project has migration history from
multiple apps: reconcile remote history before any broad supabase db push.