A sophisticated daily note-taking app built with React Native and Expo, featuring AI-powered chat assistance and intelligent content organization.
Pulse reimagines daily note-taking by combining a sleek, intuitive interface with powerful AI capabilities. Built for modern productivity workflows, it offers a seamless experience for capturing thoughts, organizing tasks, and gaining insights from your notes through intelligent chat interactions.
- One note per day approach for focused, organized thinking
- Infinite horizontal calendar with smooth scrolling and haptic feedback
- Visual date indicators showing edited dates and today's position
- Auto-save functionality with debounced content preservation
- Context-aware conversations about your note content
- Semantic search through your notes using OpenAI embeddings
- Task analysis and productivity insights from your daily entries
- Smart suggestions based on your writing patterns
- TenTap editor with comprehensive formatting options
- Real-time content sync with visual save indicators
- Professional toolbar with bold, italic, lists, and more
- Seamless typing experience optimized for mobile
- Automatic light/dark mode following system preferences
- Edge-to-edge experience with proper safe area handling
- Smooth animations and transitions throughout
- Professional UI with attention to visual hierarchy
Clean calendar interface with date selection and rich text editor
Rich text editing with formatting tools and task management
Intelligent AI assistant providing insights about your notes
- React Native 0.79.5 - Latest stable cross-platform framework
- Expo SDK 53 - Modern development toolchain
- TypeScript - Full type safety and developer experience
- SQLite - Local-first data storage with persistence
- @10play/tentap-editor - Professional rich text editing
- OpenAI API - GPT-powered chat and embeddings
- date-fns - Robust date manipulation
- expo-sqlite - Local database operations
- react-native-reanimated - Smooth animations
βββ app/ # Main application entry
βββ components/ # Reusable UI components
β βββ calendar/ # Calendar-specific components
β βββ ui/ # Generic UI elements
βββ hooks/ # Custom React hooks
βββ lib/ # Database and core utilities
βββ services/ # External API integrations
βββ types/ # TypeScript type definitions
CREATE TABLE notes (
id INTEGER PRIMARY KEY AUTOINCREMENT,
day TEXT UNIQUE NOT NULL, -- YYYY-MM-DD format
text TEXT, -- Rich text content
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE embeddings (
note_id INTEGER PRIMARY KEY,
embedding BLOB, -- OpenAI text embeddings
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (note_id) REFERENCES notes (id)
);- Node.js 18+ and npm/yarn
- Expo CLI (
npm install -g @expo/cli) - OpenAI API key for AI features
-
Clone the repository
git clone https://github.com/yourusername/pulse.git cd pulse -
Install dependencies
npm install
-
Configure environment
# Create .env file in project root echo "EXPO_PUBLIC_OPENAI_API_KEY=your_openai_api_key_here" > .env
-
Start development server
npm start
-
Run on your platform
# iOS Simulator npm run ios # Android Emulator npm run android # Web Browser npm run web
# Development
npm start # Start Expo development server
npm run lint # Run ESLint code analysis
npm run reset-project # Reset to blank template
# Platform-specific builds
npm run ios # iOS development
npm run android # Android development
npm run web # Web developmentPulse embraces a clean, distraction-free design that puts your content first. Every interface element is carefully considered to enhance the writing experience without overwhelming the user.
Built specifically for mobile interaction patterns with:
- Gesture-based navigation through the calendar
- Haptic feedback for tactile responses
- Optimized typography for readability on small screens
- Touch-friendly controls sized for fingers, not cursors
The AI assistant isn't just a chatbotβit understands your notes, remembers your patterns, and provides relevant insights that help you think more clearly about your daily activities and long-term goals.
- Virtualized calendar for smooth infinite scrolling
- Debounced auto-save preventing excessive database writes
- Memoized components reducing unnecessary re-renders
- Background embeddings processing without UI blocking
- Local-first approach with SQLite storage
- Semantic embeddings for intelligent content search
- Atomic operations ensuring data consistency
- Error boundaries providing graceful failure handling
- Comprehensive TypeScript types throughout
- Custom hooks for clean separation of concerns
- ESLint configuration maintaining code quality
- Modular component structure for maintainability
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ using React Native and modern tooling
Pulse - Where thoughts become insights