Note: This entire project was AI-coded by Antigravity, a coding assistant and I thought to make it available for everyone for free.
Mediaum is a premium, privacy-first web application for merging PDFs and converting images/PDFs. Built with a focus on local processing, your files never leave your computer.
- Merge PDF: Combine multiple PDF documents into a single, high-quality file.
- Images to PDF: Convert your photos and scans into professional PDF documents.
- PDF to PPT: Transform PDF pages into editable PowerPoint slides.
- Smart Excel Converter: Automatically parses unstructured ChatGPT snippets (
|,,, or tab-separated) and converts them into professional.xlsxfiles with a live preview. - Collaborative Direct Share: Real-time, peer-to-peer workspace for sharing files and text between devices (Mobile to Desktop and vice versa) without logins, email, or WhatsApp.
- Local-First Processing: All heavy lifting is done in your browser using
pdf-libandpdf.js. Data never leaves your device unless you choose to share it. - Premium UI: Glassmorphism design system with smooth animations via
Framer Motion.
- Frontend: React + Vite
- Styling: Vanilla CSS (Premium Glassmorphism System)
- PDF Logic: pdf-lib
- PDF Rendering: pdf.js
- Excel Logic: SheetJS (xlsx)
- PPT Generation: PptxGenJS
- Icons: Lucide React
- Animations: Framer Motion
- Node.js (v18 or higher)
- npm or yarn
- Clone the repository
- Install dependencies:
npm install
- Start the development server:
npm run dev
Mediaum features a unique, login-free way to sync your devices:
- Open Direct Share on your desktop.
- Scan the QR Code with your mobile or share the Session Link.
- Instantly share files, links, and notes in a Unified Feed.
- Data is transferred via WebRTC (PeerJS) directly between browsers, ensuring maximum privacy and speed.
Mediaum is designed with privacy as a core value.
- Zero Uploads: Files are processed using the browser's File API and Web Workers.
- No Analytics: No tracking, no cookies, no data collection.
- Open Source: Verify the processing logic in
src/utils/.
Mediaum is designed to be hosted as a Static Web App. Because it is local-first, it requires no backend (other than the PeerJS signaling server, which is handled by default via PeerJS Cloud).
- Build the Project:
npm run build
- Deploy to Hosting:
- Vercel: Run
vercelor connect your GitHub repo. - Netlify: Drag the
distfolder to Netlify Drop. - GitHub Pages: Use the
gh-pagespackage or GitHub Actions.
- Vercel: Run
- PWA Activation: The app is pre-configured with a
manifest.json. Once hosted on HTTPS, users will be prompted to "Install" Mediaum for offline use.
Mediaum includes a built-in System Monitor. Click the Activity icon in the header to view:
- PeerJS Connection Status
- Active Connection Count
- Browser Heap Memory Usage
- Real-time Execution Logs
Based on community research (Reddit/Developer Forums) and modern workflow demands, we are prioritizing:
- Large File Streaming: Currently, the browser may crash with files >500MB. We plan to implement
Web StreamsandIndexedDBfor chunked processing of massive videos and PDFs. - NAT Traversal Optimization: While PeerJS handles most connections, some corporate networks block WebRTC. We are planning to integrate custom TURN servers for 100% connectivity reliability.
- Advanced OCR: Integrating
Tesseract.jsfor on-device text recognition and light LLM integration for local document summarization. - End-to-End Encrypted Vault: A "Privacy Box" feature where you can store sensitive documents locally using AES-256 encryption.
- Format Expansion: Adding support for HEIC to JPEG, WebP optimization, and SVG to PNG conversion.
- CLI Utility (
mediaum-cli): A terminal-based version of Mediaum for developers to perform P2P transfers and PDF conversions directly from their terminal (similar tocrocorMagic Wormhole). - Smart Schema Converters: Expanding our "Smart" engine to support one-click conversions between JSON, SQL Schema, Markdown Tables, and CSV.
MIT License - feel free to use and modify for your own projects!
