Master your Day with FocusNest - A beautiful, production-ready time-blocking and focus management app built with React Native and Expo.
FocusNest is a comprehensive productivity app that helps you master your day through intelligent time-blocking, deep focus sessions, and reflective learning. Built with modern React Native and Expo technologies, it offers a seamless experience across all platforms.
- π― Time Blocking: Create and manage focused work sessions with specific tasks
- β‘ Deep Focus Mode: Immersive, distraction-free focus sessions with timer
- π Weekly Analytics: Track your productivity patterns and progress
- π Daily Reflection: Learn from your sessions and improve over time
- π¨ Beautiful Design: Apple-level aesthetics with smooth animations
- π Dark/Light Mode: Adaptive theming for any environment
- π± Cross-Platform: Works seamlessly on iOS, Android, and Web
- Node.js 18+
- npm or yarn
- Expo CLI (
npm install -g @expo/cli)
# Clone the repository
git clone https://github.com/yourusername/focusnest.git
cd focusnest
# Install dependencies
npm install
# Start the development server
npm run dev# iOS (requires macOS and Xcode)
npm run ios
# Android (requires Android Studio)
npm run android
# Web
npm run web- View and manage today's time blocks
- Quick actions for creating blocks
- Real-time progress tracking
- Swipe gestures for editing/deleting blocks
- Start and manage focus sessions
- View active and upcoming blocks
- Track completion statistics
- Seamless transition to Focus Mode
- Weekly overview and analytics
- Category-based time tracking
- Progress insights and trends
- Export and sharing capabilities
- Daily reflection on completed sessions
- Rating and feedback system
- Learning insights and patterns
- Historical reflection viewing
- Theme and appearance customization
- Category management
- Data management tools
- Working hours configuration
- Completely separate view - No tab bar interference
- Immersive full-screen timer experience
- Motivational quotes and progress tracking
- Intuitive controls (play/pause/reset/exit)
- React Native 0.79.1 - Cross-platform mobile development
- Expo SDK 53 - Development platform and tools
- Expo Router 5 - File-based navigation system
- TypeScript - Type-safe development
- AsyncStorage - Local data persistence
- Lucide React Native - Beautiful, consistent icons
- React Native Gesture Handler - Native gesture handling
- React Native Reanimated - Smooth animations
- React Native Safe Area Context - Safe area management
- Local Storage: AsyncStorage for offline-first experience
- Type-Safe Models: Comprehensive TypeScript interfaces
- Data Persistence: Automatic saving and loading
- Sample Data: Built-in examples for new users
interface TimeBlockData {
id: string;
title: string;
date: string; // YYYY-MM-DD
startTime: string; // HH:MM (24-hour)
endTime: string; // HH:MM (24-hour)
category: string;
color: string;
tasks: string[];
isActive: boolean;
isCompleted: boolean;
progress?: number;
}interface BlockCategory {
id: string;
name: string;
color: string;
icon: string;
}interface DailyReflection {
date: string;
blockId: string;
blockTitle: string;
reflection: string;
rating: number; // 1-5 stars
}- Primary:
#FF6B35(Vibrant Orange) - Secondary:
#2E8B8B(Teal) - Accent:
#8B4F9F(Purple) - Success:
#4CAF50(Green) - Warning:
#FFB800(Amber) - Error:
#FF4444(Red)
- Headings: 700 weight, optimized sizing
- Body: 500-600 weight for readability
- Captions: 400-500 weight, secondary colors
- Base Unit: 8px
- Consistent Gaps: 8px, 12px, 16px, 20px, 24px, 32px
- Safe Areas: Automatic handling for all devices
- Smart Creation: Intuitive form with time validation
- Task Management: Up to 5 tasks per block
- Category System: Color-coded organization
- Flexible Editing: In-place editing with swipe gestures
- Immersive Design: Full-screen, distraction-free interface
- Smart Controls: Context-aware play/pause/reset/exit
- Progress Tracking: Visual progress bar and completion percentage
- Motivational Elements: Rotating inspirational quotes
- Daily Stats: Completion rates and focus time
- Weekly Trends: Category breakdown and patterns
- Visual Progress: Charts and progress indicators
- Export Options: Share summaries and achievements
- Structured Reflection: Guided prompts for meaningful insights
- Rating System: 5-star rating for session quality
- Historical View: Track learning and improvement over time
- Pattern Recognition: Identify what works best
focusnest/
βββ app/ # Expo Router pages
β βββ (tabs)/ # Tab-based navigation
β β βββ index.tsx # Today screen
β β βββ focus.tsx # Focus management
β β βββ weekly.tsx # Weekly analytics
β β βββ reflect.tsx # Daily reflection
β β βββ settings.tsx # App settings
β β βββ create-block.tsx # Block creation
β βββ _layout.tsx # Root layout
βββ components/ # Reusable components
β βββ TimeBlock.tsx # Time block component
β βββ FocusTimer.tsx # Focus mode timer
β βββ MobileHeader.tsx # Header component
β βββ ClockTimePicker.tsx # Time picker
βββ contexts/ # React contexts
β βββ ThemeContext.tsx # Theme management
βββ utils/ # Utility functions
β βββ storage.ts # Data persistence
βββ hooks/ # Custom hooks
βββ useFrameworkReady.ts
- TypeScript: 100% type coverage
- ESLint: Consistent code style
- Prettier: Automatic formatting
- Component Architecture: Modular, reusable components
- Lazy Loading: Efficient component loading
- Gesture Optimization: Native gesture handling
- Memory Management: Proper cleanup and disposal
- Animation Performance: Hardware-accelerated animations
- β Native navigation feel
- β Safe area handling
- β Haptic feedback (when available)
- β iOS-specific design patterns
- β Material Design elements
- β Android navigation patterns
- β Status bar management
- β Back button handling
- β Responsive design
- β Keyboard navigation
- β Mouse/touch interactions
- β Progressive Web App ready
- Offline Capability: Full functionality without internet
- Data Ownership: All data stored locally on device
- No Tracking: Zero analytics or user tracking
- Privacy Focused: No data collection or sharing
- Automatic Backup: Local storage with AsyncStorage
- Export Options: JSON export for data portability
- Reset Functionality: Complete data wipe when needed
- Sample Data: Optional sample data for new users
# Create development build
npx expo install --fix
npx expo run:ios
npx expo run:android# Build for production
npm run build:web
npx expo build:ios
npx expo build:android# Build and deploy web version
npm run build:web
# Deploy to your preferred hosting serviceWe welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
- Follow TypeScript best practices
- Use meaningful component and variable names
- Add comments for complex logic
- Maintain consistent formatting
This project is licensed under the MIT License - see the LICENSE file for details.
- Expo Team - Amazing development platform
- React Native Community - Excellent libraries and tools
- Lucide Icons - Beautiful, consistent iconography
- Pexels - High-quality stock photography
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Built with β€οΈ by the FocusNest Team
Master your day, one focused block at a time. π―
