- Add IMPROVEMENTS.md with detailed project enhancement strategy
- Document current project strengths across structure, i18n, theming, and performance
- Outline planned improvements in testing, error handling, performance monitoring, and more
- Define priority order for implementing project enhancements
- Include implementation guidelines and contribution recommendations
- Add text-foreground class to improve color consistency
- Implement hover states for logo, theme toggle, and mobile menu button
- Simplify mobile menu backdrop filter with more concise class
- Ensure consistent text and interaction styling across navbar components
- Add DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, and DropdownMenuItem components
- Refactor LanguageSwitcher to use new Dropdown Menu components
- Update Navbar to use LanguageSwitcher component with improved language selection UI
- Remove legacy language toggle logic from Navbar
- Extend `LocaleMessages` type with `locales` field for language names
- Update English, Spanish, and French locales with native language names
- Enhance internationalization type safety and locale representation
- Remove Nostr-related components (ConnectionStatus, Login)
- Update package.json with performance and analysis tools
- Configure Vite for improved build optimization
- Simplify i18n locales by removing Atitlán-specific content
- Add .cursorrules file with development guidelines
- Update Navbar and Footer to be more generic
- Add WebSocket manager class for better connection handling
- Split message handling into separate store
- Add encryption service class
- Create chat composable for reusable chat logic
- Add error handling service
- Add connection status indicators throughout app
- Add message persistence service
- Improve subscription reliability with EOSE handling
- Add connection state management
- Hide status text on mobile for better space usage
These changes improve code organization, reliability, and user experience by:
- Better separation of concerns
- More robust error handling
- Clearer connection status feedback
- Improved message persistence
- More maintainable WebSocket management
- Better mobile responsiveness
Breaking changes:
- Message handling moved to separate store
- WebSocket connections now managed through NostrWebSocketManager
- Encryption now handled through NostrEncryption service
- Add limit parameter to ensure historical messages are retrieved
- Remove premature subscription timeouts
- Add EOSE (End of Stored Events) handlers for better message tracking
- Keep subscriptions open even when no initial messages received
- Simplify subscription success logic
- Improve debug logging for subscription statesThis change helps ensure
messages persist across page refreshes andimproves the reliability of
message retrieval, particularly on mobiledevices.