| Tool | Description |
|---|---|
| 📄 PDF Suite | Upload, view, merge and watermark PDF files directly in the browser |
| ⬇️ Media Downloader | Paste any YouTube, Instagram, Facebook or Terabox link and download media |
| 🤖 SEO Blog Rephraser | Scrape any URL, then let AI rephrase it into an SEO-optimized blog post |
| Tool | Version | Notes |
|---|---|---|
| Node.js | ≥ 18.x | Backend & frontend |
| npm | ≥ 9.x | Package manager |
| MongoDB | Local or Atlas | Optional — app runs without DB with degraded features |
| yt-dlp | Latest | Required for YouTube downloads — pip install yt-dlp |
# Navigate to the project
cd multitool-app
# Install server dependencies
cd server && npm install && cd ..
# Install client dependencies
cd client && npm install && cd ..cd server
copy .env.example .envEdit server/.env:
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/multitool
# Get a free key at https://aistudio.google.com/app/apikey
GEMINI_API_KEY=your_gemini_api_key_here
# Optional — for Instagram/Facebook downloads
RAPIDAPI_KEY=your_rapidapi_key_here
FRONTEND_URL=http://localhost:5173Terminal 1 — Backend:
cd server
npm run dev
# API running on http://localhost:5000Terminal 2 — Frontend:
cd client
npm run dev
# App running on http://localhost:5173multitool-app/
├── server/ # Express API
│ ├── controllers/ # Business logic
│ │ ├── pdfController.js
│ │ ├── downloaderController.js
│ │ └── seoController.js
│ ├── routes/ # Route definitions
│ │ ├── pdfRoutes.js
│ │ ├── downloaderRoutes.js
│ │ └── seoRoutes.js
│ ├── services/ # External integrations
│ │ ├── ytdlpService.js # yt-dlp wrapper
│ │ ├── scraperService.js # cheerio + puppeteer
│ │ └── aiService.js # Gemini / OpenAI
│ ├── models/ # Mongoose schemas
│ │ ├── DownloadHistory.js
│ │ └── BlogDraft.js
│ ├── middleware/
│ │ └── errorHandler.js
│ ├── __tests__/ # Jest unit tests
│ ├── .env.example
│ └── server.js
│
└── client/ # React + Vite + Tailwind
├── src/
│ ├── api/client.js # Axios API client
│ ├── components/
│ │ ├── layout/ # Sidebar, TopBar, Layout
│ │ └── ui/ # GlassCard, Spinner, Toast
│ ├── context/
│ │ └── AppContext.jsx # Global state (useReducer)
│ ├── pages/
│ │ ├── Dashboard.jsx
│ │ ├── PDFSuite.jsx
│ │ ├── MediaDownloader.jsx
│ │ └── SEORephraser.jsx
│ └── __tests__/ # Vitest unit tests
├── tailwind.config.js
└── vite.config.js
cd server
npm test
# or with coverage:
npm run test:coveragecd client
npm test
# or with coverage:
npm run test:coverageSee server/API.md for the complete API documentation.
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/pdf/merge |
Merge multiple PDFs |
POST |
/api/pdf/watermark |
Add watermark to PDF |
POST |
/api/pdf/annotate |
Add text annotation |
POST |
/api/download/info |
Get media metadata |
GET |
/api/download/stream |
Stream media download |
POST |
/api/seo/rephrase |
Scrape + AI rephrase |
GET |
/api/seo/drafts |
List saved drafts |
GET |
/api/health |
Server health check |
| Variable | Required | Description |
|---|---|---|
PORT |
No (default: 5000) | Server port |
MONGODB_URI |
No | MongoDB connection string |
GEMINI_API_KEY |
For SEO tool | Google AI Studio key |
OPENAI_API_KEY |
Alternative to Gemini | OpenAI API key |
RAPIDAPI_KEY |
For social downloads | RapidAPI key |
RAPIDAPI_HOST |
With RapidAPI key | API host |
FRONTEND_URL |
No (default: localhost:5173) | CORS origin |
Multitool uses a custom glass-morphism dark theme with:
- Background:
#050508— near-black space - Primary:
#7C3AED— electric violet - Accent:
#06B6D4— cyan - Fonts: Inter (body) + Outfit (display) + JetBrains Mono (code)
- Animations: floating elements, glow pulses, smooth slide-ups
- YouTube: Requires
yt-dlpbinary installed on the server. High-quality (4K+) downloads needffmpeg. - Instagram/Facebook/Terabox: Requires a RapidAPI subscription. Without a key, these platforms show "requires configuration."
- SEO Rephraser: Requires a Gemini or OpenAI API key. Without a key, the tool shows a configuration message.
- PDF Size: In-memory PDF processing — very large PDFs (>50MB) may slow the server.
See CONTRIBUTING.md for guidelines.
MIT © Multitool