Skip to content

hayeon17kim/fretflow

Repository files navigation

🎸 FretFlow

Master the guitar fretboard with science-backed spaced repetition

TypeScript React Native Expo

What is FretFlow?

Learning guitar means memorizing hundreds of note positions across the fretboard. FretFlow makes this faster and more efficient using the SM-2 spaced repetition algorithm - the same technique used by Anki and Duolingo.

Features

🎯 3 Parallel Learning Tracks

  • Note Position - Find notes on the fretboard
  • Scales - Master scale shapes
  • Ear Training - Train your ear with audio
  • Mix Mode - Practice all tracks in one session

🧠 Smart Review System

  • SM-2 algorithm schedules reviews at optimal moments
  • Cards you find easy appear less often, difficult ones more frequently
  • Auto-adjusts based on response time
  • Track progress and study streaks

πŸ“ˆ Tiered Progression System

  • 4 difficulty tiers per track that unlock as you master cards
  • Note Position: Basic (frets 0-5) β†’ Extended (0-12) β†’ Advanced (0-17) β†’ Master (0-24)
  • Scales: Gradual scale pattern unlocking
  • Ear Training: Expanding note range as you improve

πŸ“± Interactive Fretboard

  • Touch-responsive fretboard for hands-on practice
  • Visual feedback for correct/incorrect answers
  • Multiple quiz formats: multiple choice, tap selection, multi-select

Tech Stack

Core: Expo 54 + React Native 0.76 + TypeScript 5.9 State: Zustand + MMKV (30x faster than AsyncStorage) UI: React Native SVG + Reanimated i18n: i18next (Korean/English support)

Quick Start

npm install
npm start

# Run on platform
npm run ios       # iOS simulator
npm run android   # Android emulator
npm run web       # Web browser

Development

npm run lint          # Biome lint check
npm run lint:fix      # Auto-fix issues
npm run typecheck     # TypeScript check
npm run format        # Format code

Project Structure

src/
β”œβ”€β”€ app/              # Expo Router screens
β”‚   β”œβ”€β”€ (tabs)/      # Home, Practice, Mastery, Settings
β”‚   β”œβ”€β”€ quiz/        # Note, Scale, Ear, Mix quizzes
β”‚   └── onboarding/  # 4-step onboarding flow
β”œβ”€β”€ components/      # Reusable UI components
β”œβ”€β”€ config/          # Tier configurations for each track
β”œβ”€β”€ hooks/           # useSpacedRepetition (SM-2), useQuizSession
β”œβ”€β”€ stores/          # Zustand global state
β”œβ”€β”€ utils/           # SM-2, music theory, card generation
└── i18n/            # Internationalization (Korean/English)

Documentation

Roadmap

Completed (v1.0)

  • 3 parallel learning tracks (Note Position, Scales, Ear Training)
  • Mix mode (cross-track practice)
  • Tiered progression system (4 tiers per track)
  • SM-2 spaced repetition algorithm
  • Audio playback for ear training
  • Statistics and progress tracking
  • Mastery dashboard with track progress
  • Smart review recommendation system
  • 4-step onboarding flow
  • Daily goal and streak tracking
  • Push notifications
  • Achievement badges
  • Dev mode for tier testing

Planned (Post-Launch)

  • Analytics infrastructure
  • Ear training expansion (chord recognition, rhythm training)
  • Monetization (subscription model)
  • Supabase backend integration
  • Social features (leaderboards, sharing)

Status: MVP Complete Last Updated: Feb 2026

For detailed information, see docs/DEVELOPMENT.md

About

🎸 Learn guitar fretboard faster with spaced repetition. React Native + TypeScript mobile app.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors