smooth-app
전 세계 식품의 성분·영양·정보를 자유롭게 협업하고 공개하는 데이터베이스
Sleyp는 수면이 어려운 사람들을 위한 사운드 앱으로, 13가지 무료 사운드를 브라우저에서 섞어 듣고 곧 iOS 앱과 교대근무 도구를 제공한다
Sleyp is a sleep sound app for people whose sleep is hard-won. Mix 13 free sleep sounds in your browser today, with the iOS app coming soon, plus shift-work tools built on forty years of experience.
건강TypeScript · HTMLGitHub @ianhoban1-dev온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Sleep Atlas website
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Your Sleep Environment. A sound and sleep-environment app for people whose sleep is hard-won — shift workers, night workers, rotating rotas, and anyone on a loud street. The session leads; the rota calculators and trackers support it.
Brand system, logo pack and construction spec live in FIELD-Brand/.
Stack: Next.js 14 (App Router, fully static/SSR), TypeScript, Tailwind CSS. Supabase is stubbed, ready to wire.
npm install
npm run dev # http://localhost:5001
npm run build # production build (all routes pre-render as static HTML)
Note: if node_modules looks partial from a previous install, just run npm install again — it self-repairs.
| Route | Purpose |
|---|---|
/ | Hero, interactive rota visualizer, bento tools grid, founder authority, the session feature |
/tools/ | Hub + 5 calculators: Night Shift Recovery, Rota Flip-Flop, Sleep Debt Logger, Noise Calibration, Chronotype Matcher |
/session/ | "Try sounds": the free browser player. Built-in Web Audio engine, 13 synthesized sounds (all free), 30/60/90-min and custom fade-out timer, wake-up chime, 3-question rule-based blend (not AI) and saved mixes (browser localStorage: per-account key when signed in, a guest key otherwise). The timer/chime only run while the page stays open. /lullai/ and /mask-ai/ permanently redirect here. |
/account/ | Sign up / log in (demo auth in this browser until Supabase is wired) |
/admin/ | Member dashboard — visible only to the admin email in lib/auth.ts: signups, plans, upgrade/downgrade |
/trackers/ | Shift journal (browser localStorage) |
/scores/ | Sleyp Score framework explainer |
/resources/ | Modular article engine — 6 categories, 3 flagship articles live |
/shop/ | Curated affiliate gear (links are # placeholders) |
/pricing/ | The Sleyp iOS app (coming soon): 22 free library sounds, guest mix saving; Sleyp Plus = AI mix generation and Discovery. No prices, no website subscription |
lib/tools.ts + one component in components/calculators/ + a thin page wrapper. Explainer, how-it-works, FAQs and all schema render automatically via ToolPageLayout.lib/articles.ts. Page, category, sitemap, Article + FAQPage schema and author box are automatic.lib/site.ts.robots.ts explicitly allows GPTBot, PerplexityBot, ClaudeBot, Google-Extended etc.; sitemap.ts auto-includes every tool and article.lib/supabase.ts — install @supabase/supabase-js, add env keys. Then swap the demo function bodies in lib/auth.ts for Supabase Auth + a profiles table (components only call those functions, nothing else changes) — the admin dashboard will then show every real signup.plan field in lib/auth.ts and the admin plan toggle are left in place but no longer affect the website.SITE.url in lib/site.ts (currently https://www.getsleyp.com); sitemap, robots, canonicals, schema and OG derive from it.# hrefs in app/shop/page.tsx (GEAR array).Defined once in tailwind.config.ts; use the brand's own names, not "the green one".
| Token | Hex | Role |
|---|---|---|
cream | #F5F3ED | FIELD CREAM — page ground, replaces pure white |
paper / card | #FBFAF6 / #FFFFFF | raised panels, card fill |
mist / soft | #EDF2F0 / #D9E4E2 | dividers and form fields / selected states |
sage | #5D8786 | FIELD SAGE — identity, icons, active states |
sage-deep | #3F6362 | the readable sage: links, accented text (5.97) |
deep | #304847 | DEEP FIELD — body text and primary button ground (8.83) |
ink / -muted / -faint | #304847 / #4F6663 / #5B7472 | text ramp, all AA or better on cream |
sand / sand-ink | #C8B99F / #7A6540 | WARM SAND fills / its readable text form |
good / warn | #3F6B59 / #9A5A2A | semantic only, separate from the brand accent |
Two rules the numbers force: sage is never small text (3.59 on cream), and the primary button is bg-deep text-cream, never sage with a white label (3.98).
Type: Schibsted Grotesk display/UI, Hanken Grotesk body, JetBrains Mono for figures — loaded via <link> in app/layout.tsx.
The mark lives in components/FieldMark.tsx as inline SVG so it inherits currentColor. <FieldMark settle /> plays the three-wave settle once; use it on the hero only.