Product: coldplungecalculator.com
λ²μ : 1.0
| κΈ°λ₯ | μ°μ μμ | μ€λͺ |
|---|---|---|
| Protocol Calculator | MVP νμ | λͺ©μ λ³ μ¨λ/μκ° μΆμ² |
| Smart Timer | MVP νμ | μΉ΄μ΄νΈλ€μ΄ + μλ¦Ό |
| Weekly Goal Tracker | MVP νμ | μ£Ό 11λΆ λͺ©ν μΆμ |
| Session Logger | MVP νμ | μΈμ κΈ°λ‘ + ν΅κ³ |
| Breathing Guide | MVP νμ | Box Breathing κ°μ΄λ |
| Safety Tips | MVP νμ | μμ κ°μ΄λ |
λͺ©μ : μ¬μ©μμ λͺ©νμ λ§λ μ¨λ/μκ° μΆμ²
- λͺ©ν μ ν: Mental Boost / Recovery / Wake Up / Beginner
- κ²½ν λ 벨: First time / Few times / Regular
- κ°μ© μ¨λ (μ ν)
- κΆμ₯ μ¨λ λ²μ
- κΆμ₯ μκ°
- μ£Όκ° λΉλ
- κ³Όνμ κ·Όκ±° ν μ€
| λͺ©ν | μ¨λ | μκ° | λΉλ |
|---|---|---|---|
| π§ Mental Boost | 35-45Β°F (1.6-7Β°C) | 1-3λΆ | 2-3ν/μ£Ό |
| πͺ Recovery | 50-59Β°F (10-15Β°C) | 10-15λΆ | μ΄λ μ§ν |
| βοΈ Wake Up | 45-55Β°F (7-13Β°C) | 2-5λΆ | λ§€μΌ OK |
| π± Beginner | 55-65Β°F (13-18Β°C) | 2-5λΆ | 2-3ν/μ£Ό |
βββββββββββββββββββββββββββββββββββββββββββ
β π― What's your goal? β
β β
β [π§ Mental Boost] [πͺ Recovery] β
β [βοΈ Wake Up] [π± Beginner] β
β β
β π Experience level? β
β [First time] [Few times] [Regular] β
β β
β π‘οΈ Temperature? (optional) β
β [___Β°F] or [Don't know] β
βββββββββββββββββββββββββββββββββββββββββββ
β κ²°κ³Ό β
βββββββββββββββββββββββββββββββββββββββββββ
β π Your Protocol β
β β
β π‘οΈ Temperature: 50-59Β°F (10-15Β°C) β
β β±οΈ Duration: 2-5 minutes β
β π
Frequency: 2-3x per week β
β π― Weekly Goal: 11 min total β
β β
β π‘ "2-5λΆμ΄λ©΄ μΆ©λΆ, λ μ€λ = λ μ’μ β
β κ² μλ" β
β β
β [ π Start Timer ] β
βββββββββββββββββββββββββββββββββββββββββββ
λͺ©μ : νλ‘ν μ½ μ°λ μΉ΄μ΄νΈλ€μ΄ νμ΄λ¨Έ
- μΉ΄μ΄νΈλ€μ΄ (νλ‘ν μ½μμ μλ μ€μ λλ μλ)
- 30μ΄λ§λ€ μ°¨μ μλ¦Ό
- λ§μ§λ§ 10μ΄ μΉ΄μ΄νΈλ€μ΄
- μ¨λ μ λ ₯ (μΈμ κΈ°λ‘μ©)
- νΈν‘ κ°μ΄λ μ€λ²λ μ΄ (ν κΈ)
- +30μ΄ μ°μ₯ λ²νΌ
- μλ£ μ μΈμ μ μ₯ νλ©΄μΌλ‘ μ΄λ
| μ΄λ²€νΈ | λμ |
|---|---|
| μμ | μ리 + μ§λ |
| 30μ΄λ§λ€ | λΆλλ¬μ΄ μ°¨μ |
| λ§μ§λ§ 10μ΄ | μΉ΄μ΄νΈλ€μ΄ λΉν |
| μλ£ | μΆν μ¬μ΄λ + μ§λ |
βββββββββββββββββββββββββββββββββββββββββββ
β β
β βββββββββββββββ β
β β β β
β β 2:34 β β ν° μ«μ β
β β βββββββ β β νλ‘κ·Έλ μ€ β
β β π‘οΈ 52Β°F β β μ¨λ νμ β
β β β β
β βββββββββββββββ β
β β
β π Next chime in 26s β
β β
β βββββββββββββββββββββββββββββββββββ β
β β π¬οΈ Breathe: IN... (4s) β β
β βββββββββββββββββββββββββββββββββββ β
β β
β [ +30s ] [ End & Save ] β
β β
β ν°μΉ μμ: μ΅μ 48px (μ μ μ κ³ λ €) β
βββββββββββββββββββββββββββββββββββββββββββ
λͺ©μ : SΓΈberg νλ‘ν μ½ μ£Ό 11λΆ λͺ©ν μΆμ
- μ΄λ² μ£Ό μ΄ μκ° / 11λΆ νλ‘κ·Έλ μ€ λ°
- μΌλ³ μΈμ νμ (μλ£ β / λ―Έμλ£ β)
- μ€νΈλ¦ μΉ΄μ΄ν° (μ°μ μΌμ)
- λͺ©ν 컀μ€ν°λ§μ΄μ§ (κΈ°λ³Έ 11λΆ)
- λ§€μ£Ό μμμΌ μλ 리μ
βββββββββββββββββββββββββββββββββββββββββββ
β π― This Week β
β β
β ββββββββββββββββββββββ 7:30 / 11:00 β
β β
β Mon Tue Wed Thu Fri Sat Sun β
β β β β β β β β β
β 3:00 4:30 β
β β
β π₯ 2 day streak β
βββββββββββββββββββββββββββββββββββββββββββ
λͺ©μ : μΈμ κΈ°λ‘ λ° ν΅κ³
- λ μ§/μκ° (μλ)
- 체λ₯ μκ° (μλ)
- μμ¨ (μ λ ₯)
- κΈ°λΆ (1-5 μ΄λͺ¨μ§)
- λ©λͺ¨ (μ ν)
- μ΄ μΈμ μ
- μ΄ μκ°
- νκ· μ¨λ
- μ΅μ₯ μΈμ
- νμ¬ μ€νΈλ¦
- μ£Όκ° μ°¨νΈ
- localStorage (λ‘κ·ΈμΈ μμ΄)
βββββββββββββββββββββββββββββββββββββββββββ
β π Session Complete! β
β β
β β±οΈ 3:24 @ π‘οΈ 52Β°F β
β β
β How do you feel? β
β [π«] [π] [π] [π] [π€©] β
β β
β π Quick note (optional) β
β βββββββββββββββββββββββββββββββββββ β
β β β β
β βββββββββββββββββββββββββββββββββββ β
β β
β [ Save ] [ Discard ] β
βββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββ
β π Your History β
β β
β Total: 47 sessions | Best: 5:12 β
β Avg temp: 52Β°F | π₯ 12 day streak β
β β
β [μ£Όκ° λ° μ°¨νΈ] β
β β
β Today, 7:32 AM β
β ββ 3:24 @ 48Β°F π β
β ββ "Felt energized!" β
β β
β Yesterday, 6:45 AM β
β ββ 4:10 @ 52Β°F π β
βββββββββββββββββββββββββββββββββββββββββββ
λͺ©μ : λ¬Ό μμμ μμ ν νΈν‘ κ°μ΄λ
| ν¨ν΄ | μ€λͺ | λ¬Ό μμμ |
|---|---|---|
| Box (4-4-4-4) | λ€μ¨4s-μ°ΈκΈ°4s-λ μ¨4s-μ°ΈκΈ°4s | β μμ |
| 4-7-8 | λ€μ¨4s-μ°ΈκΈ°7s-λ μ¨8s | β μμ |
| Wim Hof | κ³ΌνΈν‘ + μ¨μ°ΈκΈ° |
- νμ΄λ¨Έμ ν΅ν© (μ€λ²λ μ΄)
- μκ°μ νΈν‘ κ°μ΄λ (μ λλ©μ΄μ )
- λ¨κ³λ³ ν μ€νΈ μλ΄
- ν¨ν΄ λ³κ²½ κ°λ₯
- λκΈ°/μΌκΈ° ν κΈ
βββββββββββββββββββββββββββββββββββββββββββ
β π¬οΈ Box Breathing β
β β
β βββββββββββββββββ β
β β β β
β β BREATHE IN β β
β β 4s β β
β β ββββββββ β β
β β β β
β βββββββββββββββββ β
β β
β In 4s β Hold 4s β Out 4s β Hold 4s β
β β
β [ Pause ] [ Change Pattern ] β
βββββββββββββββββββββββββββββββββββββββββββ
λͺ©μ : μμ κ°μ΄λ μ 곡
| μ£Όμ | ν |
|---|---|
| μλ° ν΅μ¦ | μμ λ¬Ό λ°μ, λ°μ ν μμ¦ μ°©μ© |
| νΈν‘ | Wim Hofλ λ¬Ό λ°μμλ§! |
| μ΄λ³΄μ | 2-3λΆ max, λΆνΈνλ©΄ λ°λ‘ λμ |
| μκ° | 2-5λΆμ΄λ©΄ μΆ©λΆ, λ μ€λ β λ μ’μ |
| μ²΄μ¨ ν볡 | μμ°μ€λ½κ² ν볡, λ¨κ±°μ΄ μ€μ β |
- π¨ ν΅μ¦ (Pain)
- π¨ μ λ¦Ό (Numbness)
- π¨ λ¨λ¦Ό λ©μΆμ§ μμ
- π¨ νΌλ (Confusion)
- /guide νμ΄μ§
- νμ΄λ¨Έ μμ μ κ²½κ³ (첫 μ¬μ©μ)
- λ©΄μ± μ‘°ν νΈν°
/ β Protocol Calculator (ν)
/timer β Smart Timer
/history β Session Logger + ν΅κ³
/guide β Temperature Guide + Safety Tips
- λͺ¨λ°μΌ νΌμ€νΈ β μμ‘° μμμ μ¬μ©
- ν μ μ‘°μ β ν°μΉ μμ 48px μ΄μ
- κ³ λλΉ β λ°μ νκ²½μμλ κ°λ μ±
- λΉ λ₯Έ λ‘λ© β LCP < 2.5μ΄
Primary: #00D4FF (Ice Blue)
Secondary: #0A1628 (Deep Blue)
Accent: #10B981 (Mint)
Warning: #F59E0B (Orange)
Background: #111827 (Dark)
- νμ΄λ¨Έ μ«μ: ν° μ¬μ΄μ¦, λ³Όλ
- λ³Έλ¬Έ: 16px μ΄μ (λͺ¨λ°μΌ κ°λ μ±)
Framework: Vite + React 18
Language: TypeScript
Styling: Tailwind CSS + shadcn/ui
Animation: Framer Motion
Audio: Howler.js (Web Audio API)
Storage: localStorage (λΈλΌμ°μ μ μ₯, λ‘κ·ΈμΈ λΆνμ)
Hosting: Cloudflare Pages| μ ν | μ΄μ |
|---|---|
| Vite + React | λΉλ λΉ λ¦, λ²λ€ μμ, μ μ μ¬μ΄νΈμ μ΅μ |
| Cloudflare Pages | 무λ£, κΈλ‘λ² CDN, μλ² λΉμ© $0 |
| localStorage | λ°±μλ μμ΄ μΈμ κΈ°λ‘ μ μ₯ |
| Tailwind + shadcn | λΉ λ₯Έ UI κ°λ°, μΌκ΄λ λμμΈ |
# λΉλ
npm run build
# Cloudflare Pages μ°κ²°
# - GitHub repo μ°κ²°
# - Build command: npm run build
# - Output directory: distsrc/
βββ components/
β βββ Calculator/ # Protocol Calculator
β βββ Timer/ # Smart Timer
β βββ Tracker/ # Weekly Goal Tracker
β βββ Logger/ # Session Logger
β βββ Breathing/ # Breathing Guide
β βββ ui/ # shadcn μ»΄ν¬λνΈ
βββ hooks/
β βββ useTimer.ts
β βββ useStorage.ts
β βββ useAudio.ts
βββ lib/
β βββ protocols.ts # νλ‘ν μ½ λ°μ΄ν°
β βββ storage.ts # localStorage μ νΈ
βββ pages/
β βββ index.tsx # / (Calculator)
β βββ timer.tsx # /timer
β βββ history.tsx # /history
β βββ guide.tsx # /guide
βββ styles/
βββ globals.css
λͺ¨λ νμ΄μ§ νΈν°μ νμ:
β οΈ This tool provides general wellness guidance only. It is not medical advice. Cold water immersion carries risks. Consult a healthcare professional before starting. Listen to your body and prioritize safety.