Fast and secure messenger for communication built with modern web technologies.
Pigeon App is a cross-platform messaging application that provides fast and secure communication. It's built using Tauri for the desktop version and SvelteKit for the web interface.
- Cross-platform: Desktop application using Tauri + Web interface using SvelteKit
- Real-time messaging: WebSocket-based real-time communication
- File attachments: Support for file uploads (up to 8MB)
- Avatar management: User and chat avatar customization
- Secure authentication: JWT-based authentication system
- Type-safe: Full TypeScript implementation
- SvelteKit - Modern web framework
- TypeScript - Type-safe JavaScript
- Lucide Svelte - Icon library
- @tanstack/svelte-query - Data fetching and state management
- Tauri - Rust-based desktop app framework
- Rust - Systems programming language
- tokio - Async runtime
- reqwest - HTTP client
- tokio-tungstenite - WebSocket client
- Vite - Build tool and dev server
- ESLint - Code linting
- Prettier - Code formatting
pigeon-app/
├── src/ # Frontend source code
│ ├── lib/ # Utility libraries and components
│ │ ├── components/ # Svelte components
│ │ │ ├── forms/ # Form components
│ │ │ │ └── modals/ # Modal components
│ │ │ ├── layout/ # Layout components
│ │ │ ├── media/ # Media-related components
│ │ │ ├── menus/ # Menu components
│ │ │ ├── icons/ # Icon components
│ │ │ ├── navigation/ # Navigation components
│ │ │ ├── overlays/ # Overlay components
│ │ │ └── shared/ # Shared components
│ │ ├── i18n/ # Internationalization
│ │ │ └── translations/ # Translation files
│ │ ├── queries/ # Data query functions
│ │ ├── stores/ # Svelte stores
│ │ └── types/ # TypeScript types
│ ├── routes/ # Svelte routes
│ ├── app.html # Svelte app.html
│ ├── app.d.ts # Svelte app.d.ts
│ └── global.d.ts # Global type definitions
├── src-tauri/ # Desktop app source code
│ ├── src/
│ │ ├── lib.rs # Main library
│ │ ├── main.rs # Application entry point
│ │ └── websocket.rs # WebSocket implementation
│ ├── capabilities/ # Tauri capabilities
│ ├── gen/ # Generated schemas
│ ├── icons/ # Application icons
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
├── static/ # Static assets
│ ├── assets/ # Static assets
│ │ └── image/ # Image assets
│ ├── favicon.png # Application favicon
│ ├── global.css # Global styles
│ └── manifest.json # Web manifest
├── package.json # Node.js dependencies
├── svelte.config.js # Svelte configuration
├── tsconfig.json # TypeScript configuration
├── pwa-assets.config.ts # PWA assets configuration
└── vite.config.ts # Vite configuration
- Node.js (v18 or higher)
- Rust and Cargo
- Tauri CLI
- Clone the repository:
git clone https://github.com/BenimFurka/pigeon-app.git
cd pigeon-app- Install dependencies:
npm install- Install Tauri CLI (if not already installed):
npm install -g @tauri-apps/clinpm run devnpm run tauri devnpm run buildnpm run tauri buildThe application uses a configuration system that can be customized:
-
Server Configuration: Host, port, and API settings
NOTE: The server configuration is not public. It's private and used for development purposes.
-
WebSocket Settings: Reconnection delay and other WebSocket options
-
App Settings: Default language and version
Configuration is stored in src/lib/config.ts and can be persisted to localStorage.
# Development
npm run dev # Start web development server
npm run tauri dev # Start desktop development
# Building
npm run build # Build for web
npm run tauri build # Build desktop application
# Code Quality
npm run lint # Run ESLint
npm run lint:fix # Fix linting issues
npm run check # Run Svelte type checking
npm run check:watch # Watch mode for type checking
# Preparation
npm run prepare # Sync SvelteKitThis project is licensed under the GPL-v3.0 License.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
Thank you for using Pigeon App!