Echo is a privacy-first, secure messaging application built with React, TypeScript, and Vite. It provides end-to-end encrypted communication with local data storage, ensuring your conversations remain private and secure.
- 🔐 Privacy First: All messages are encrypted and stored locally on your device
- 💬 Secure Messaging: End-to-end encryption for all communications
- 📱 Progressive Web App: Install as a native app on any device
- 🏠 Local Storage: Your data never leaves your device
- 👤 User Profiles: Create and manage your secure identity
- 🎨 Modern UI: Clean, responsive interface built with Tailwind CSS
- Frontend: React 19 + TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- State Management: Zustand
- Database: Dexie (IndexedDB wrapper)
- PWA: Vite PWA Plugin
- Blockchain: Massa Web3 SDK
- Node.js (version specified in
.nvmrc
) - npm or yarn
- Clone the repository:
git clone <repository-url>
cd echo
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser and navigate to
http://localhost:5173
npm run build
The built files will be in the dist
directory, ready for deployment.
src/
├── components/ # React components
│ ├── ErrorBoundary.tsx
│ ├── MainApp.tsx
│ ├── OnboardingFlow.tsx
│ └── AccountCreation.tsx
├── stores/ # State management
│ └── accountStore.tsx
├── db.ts # Database schema and operations
├── App.tsx # Main application component
└── main.tsx # Application entry point
Echo uses Dexie (IndexedDB) for local data storage with the following entities:
- UserProfile: User account information and blockchain credentials
- Contacts: Contact list with usernames and public keys
- Messages: Encrypted message storage with metadata
- Conversations: Chat thread management
- Settings: Application preferences
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Run ESLint
This project uses ESLint with TypeScript support. The configuration can be found in eslint.config.js
.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Echo prioritizes user privacy and security:
- All data is stored locally on your device
- Messages are encrypted before storage
- No data is transmitted to external servers
- Built with modern security best practices
- Real-time messaging implementation
- Contact discovery and management
- File sharing capabilities
- Voice and video calling
- Group messaging
- Message backup and restore