A modern full-stack workspace for language translation, voice translation, document processing, PDF utilities, file conversion, productivity tools, and activity history — all inside one clean interface.
Quill is designed as a single productivity workspace instead of a collection of disconnected utilities.
It brings together:
- 🌍 Text and voice translation
- 🎙️ Speech-to-text and speech-to-speech translation
- 📄 Multi-page document translation
- 🧩 PDF, image, Word, and Excel utilities
- 🛠️ Everyday calculation and conversion tools
- 🕘 Account-synced activity history
- ⭐ Favorites and saved translations
- 🔔 Notifications
- ⚙️ Detailed application settings
- 🔐 Authentication and account management
- 📥 Export and download workflows
No installation is required.
Open the link in a modern browser and start using Quill.
| Workspace | Features |
|---|---|
| 🌍 Translate | Text translation, voice translation, auto-detection, translation preferences |
| 🎙️ Voice | Speech-to-text, text-to-speech, speech-to-speech |
| 📄 Documents | Multi-page upload, translation, preview and download |
| 🧩 Combine | PDF, image, Word and Excel file operations |
| 🛠️ Tools | Number, currency, unit, data, electrical, health and specific tools |
| 🕘 History | Search, filters, preview, delete, export and account sync |
| ⭐ Favorites | Save, remove and organize important translations |
| 🔔 Notifications | In-app, email and push notification workflows |
| ⚙️ Settings | General, appearance, translation, notifications, privacy, storage and account |
| 🔐 Authentication | JWT, email, Google OAuth and GitHub OAuth |
Quill provides a unified translation interface for text and speech.
| Mode | Description |
|---|---|
| Text → Text | Translate written text into another language |
| Text → Speech | Translate text and generate spoken audio |
| Speech → Text | Record speech and convert it into text |
| Speech → Speech | Record speech, translate it, and generate translated audio |
- 🌐 25 supported languages
- 🔎 Automatic source-language detection
- 🔄 Source/target language swapping
- ⚡ Automatic translation while typing
- 🕘 Translation history
- 📝 Formatting preservation
- 🎨 Translation style controls
- 🗣️ Formality controls
- 🚀 Translation speed settings
- 📋 Copy translated text
- 📥 Import
.txt,.md, and.csv - 🎤 Voice recording directly from the browser
- 🔊 Audio playback for generated speech
- ⚙️ Engine selection
- 🔁 Fallback translation services
- 🌏 Localized handling of remaining Latin terms for non-Latin languages
- ⭐ Save translations to favorites
Quill supports the following language workflows:
English, Hindi, Spanish, French, German, Italian, Portuguese, Russian, Japanese, Korean, Chinese, Arabic, Turkish, Dutch, Polish, Swedish, Indonesian, Vietnamese, Ukrainian, Marathi, Tamil, Telugu, Malayalam, Bengali, and Gujarati.
Quill includes a complete browser-to-backend speech pipeline.
🎤 Microphone
↓
🌐 Browser MediaRecorder
↓
📤 Uploaded Audio
↓
⚙️ FFmpeg / FFprobe
↓
🎵 Normalized WAV
↓
🧠 Speech Recognition
↓
🌍 Translation Engine
↓
🔊 Edge TTS / gTTS
↓
✅ Translated Audio
- 🎤 Browser microphone recording
- 🎵 WebM / OGG / MP4 audio support
- ⚙️ FFmpeg-based audio conversion
- 🎚️ 16 kHz mono WAV normalization
- 🧠 Speech recognition
- 🌐 Automatic language recognition
- 🗣️ Neural voice generation
- 🔄 gTTS fallback
- 🔊 Audio playback
- 🕘 Speech-to-speech history entries
Quill also provides a separate workspace for everyday calculation and conversion utilities.
• 🔢 Number • 💱 Currency • 📏 Unit • 🗃️ Data • ⚡ Electrical • ❤️ Health • 🧮 Specific
The Smart Tools interface supports workflows such as:
- 🔢 Number-base conversion
- 💱 Currency conversion
- 📏 Unit conversion
- 🗃️ Data conversion
- ⚡ Electrical calculations
- ❤️ Health-related calculators
- 🧮 Specific utility calculators
The tool workspace is designed for fast calculations without sending basic values to unnecessary external services.
- 📤 Upload documents and files
- 📑 Multi-page document preview
- 👁️ View original page
- 🌍 View translated page
- 🔎 Auto-detect source language
- 🎯 Select target language
- 📄 Page-by-page translation
- 📊 Progress tracking
- 🕘 Translation history
- 🧠 Layout-aware processing workflow
- 📝 Formatting preservation
- 🔐 Secure download workflow
- 📥 Export formats such as PDF, DOCX, TXT, and HTML
The interface is designed to preserve the layout, borders, and alignment of processed documents wherever supported by the workflow.
The Combine & Convert workspace contains document, image, and file transformation tools in one place.
- 📚 PDF Merge
- ✂️ PDF Split
- ⚡ PDF Compress
- 🔄 Rotate PDF
- 🗂️ Organize PDF
- 💧 Watermark PDF
- 🎨 PDF Color Enhance
- 🔢 N-up PDF
- 🖼️ Image Merge
- 📄 Image to PDF
- 🔄 Image Converter
- 🧩 N-up PDF / image-sheet workflows
JPG
JPEG
PNG
WEBP
GIF
BMP
TIFF
ICO
SVG
- 📄 Word Merge
- 🔄 PDF to Word
- 📘 Word to PDF
- 📊 PDF to Excel
- 📈 Excel to PDF
Quill keeps account-level activity in a dedicated history workspace.
- 🕘 Activity timeline
- 🌍 Translation history
- 🛠️ Tool activity
- 📄 Document activity
- 🧩 Combine activity
- 🏷️ Category filtering
- 🔎 Search history
- 📄 Export history as PDF
- 🗑️ Delete individual activity
- 🧹 Delete all history
- 🔐 Synced history for authenticated users
- 🎙️ Speech to Speech
- 🔢 Number Converter
- 🔄 Rotate PDF
- 🌍 Text Translation
- 📄 Document Translation
- 🧩 Combine / Convert
Quill includes a detailed Settings Center for controlling and personalizing the application.
- 🌍 Default source language
- 🎯 Default target language
- 🔄 Auto swap languages
- ⚡ Auto translate
- 📝 Preserve formatting
- 🕘 Save translation history
- 🎨 Translation style
- 🗣️ Formality level
- 🚀 Translation speed
- ☀️ Light appearance
- 🌙 Dark appearance
- ✨ UI personalization
- 🎨 Theme preferences
- 🌐 Default language preferences
- ⚙️ Translation behavior
- 🔌 Engine configuration
- 🎙️ Speech options
- 🔵 In-app notifications
- 📧 Email notification preferences
- ✅ Translation completion notifications
- 📲 Push notification preferences
- 🛡️ Account-aware security controls
- 📦 Data handling preferences
- 🔒 Privacy-oriented configuration
- ⚡ Cache settings
- 🕘 History storage
- 📤 Export preferences
- 💾 Local application data controls
- 👤 Profile information
- 💳 Plan information
- 📊 Billing / activity-related settings
- 🧑💻 Developer-oriented configuration
- ⚙️ Advanced application behavior
- 🔧 Runtime and integration settings
Quill is designed as a secure, account-based application.
- 🔐 JWT authentication
- 🎫 Access and refresh tokens
- 👤 Django authentication
- 📧 Email-based account flows
- 🔵 Google OAuth
- 🐙 GitHub OAuth
- 🔢 OTP / email verification workflows
- 🕘 Account-specific history
- ⭐ Account-specific favorites
- 🛡️ Protected API endpoints
Users can save important translations for quick access later.
- ⭐ Save translation
- ❌ Remove favorite
- 🕘 Favorite history item
- 📁 Favorite folders
- 👤 User-specific favorite records
- 💾 Persistent favorite data
Quill supports multiple notification channels for keeping users informed about important application activity.
- ✅ Translation completion
- 🎙️ Speech translation completion
- 📄 Document translation completion
- 🕘 History-related events
The backend supports SMTP-based email delivery for:
- 🔐 Account workflows
- 🔢 OTP verification
- ✅ Translation completion
- 📩 Application notifications
The application can support browser push notifications through VAPID-based subscriptions.
Quill follows a frontend + API backend architecture.
┌─────────────────────────┐
│ QUILL FRONTEND │
│ │
│ React + TypeScript │
│ Tailwind CSS │
└────────────┬────────────┘
│
│ REST / JSON
▼
┌─────────────────────────┐
│ DJANGO BACKEND │
│ │
│ Django REST Framework │
│ JWT Authentication │
└────────────┬────────────┘
│
┌────────────┴────────────┐
│ │
▼ ▼
┌──────────────────┐ ┌──────────────────┐
│ PostgreSQL │ │ External Services│
│ Database │ │ │
│ │ │ Translation │
└──────────────────┘ │ Speech / Email │
│ OAuth / APIs │
└──────────────────┘
Quill is built using a modern full-stack technology ecosystem combining a responsive React frontend, Django REST backend, database services, speech processing, document processing, and multiple external integrations.
- ⚛️ React 19 — Component-based UI development
- 🔷 TypeScript — Strongly typed frontend development
- 🎨 Tailwind CSS — Utility-first responsive styling
- 🧭 React Router — Application routing and navigation
- 🌐 Axios — API communication
- ⚡ React Query — Server-state and API data management
- 🗃️ Zustand — Lightweight client-side state management
- 🎯 Lucide React — Modern application icons
- 🧩 Heroicons — Additional interface icons
- 📄 jsPDF — PDF generation and export
- 📘 Mammoth — DOCX document processing
- 📑 PDF.js — PDF rendering and processing
- 🔥 Firebase — Authentication/integration workflows where required
- 🐍 Python — Core backend language
- 🌿 Django — Web application framework
- 🔗 Django REST Framework — RESTful API development
- 🔐 Simple JWT — Token-based authentication
- 👤 Django Allauth — Authentication and OAuth workflows
- 🐘 PostgreSQL — Persistent relational database
- ⚡ Celery — Background task processing
- 🗄️ Django Celery Results — Task result management
- 🎬 FFmpeg — Audio/video conversion and normalization
- 🔎 FFprobe — Media inspection and metadata handling
- 🎵 PyDub — Audio manipulation and processing
- 🎙️ SpeechRecognition — Speech-to-text processing
- 🔊 gTTS — Text-to-speech fallback
- 🗣️ Edge TTS — Neural text-to-speech generation
- 🌍 Deep Translator — Translation service integration
- 🔵 Google OAuth — Account authentication
- 🐙 GitHub OAuth — Social authentication
- 📧 Brevo SMTP — Email and OTP delivery
- 🌍 Google Translation Services — Translation provider
- 🔤 MyMemory — Translation fallback
- 🌐 Lingva — Translation fallback
- 🔄 LibreTranslate — Translation fallback
- 🟦 Microsoft Translator — Optional translation provider
- 🔷 DeepL — Optional translation provider
- 🤖 Grok / xAI — Optional AI integration
┌──────────────────────────────────────────────────────────┐
│ QUILL │
├──────────────────────────────────────────────────────────┤
│ │
│ 🎨 Frontend │
│ React • TypeScript • Tailwind CSS • React Query │
│ Zustand • Axios • PDF.js • Mammoth • jsPDF │
│ │
│ ↓ │
│ │
│ ⚙️ Backend │
│ Python • Django • DRF • Simple JWT • Allauth │
│ │
│ ↓ │
│ │
│ 🗄️ Data & Processing │
│ PostgreSQL • Celery • FFmpeg • FFprobe • PyDub │
│ │
│ ↓ │
│ │
│ 🔌 External Services │
│ OAuth • Translation APIs • SMTP • Speech Services │
│ │
└──────────────────────────────────────────────────────────┘
Quill/
│
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── hooks/
│ │ ├── services/
│ │ ├── store/
│ │ └── ...
│ │
│ ├── package.json
│ ├── package-lock.json
│ └── ...
│
├── backend/
│ ├── quill/
│ ├── users/
│ ├── translation/
│ ├── documents/
│ ├── combine/
│ ├── tools/
│ ├── history/
│ ├── about/
│ ├── settings_app/
│ ├── manage.py
│ └── ...
│
├── assets/
│ └── quill_logo.png
│
├── .gitignore
└── README.md
Follow the steps below to run Quill locally.
git clone https://github.com/Aarush005coder/Quill.git
cd QuillOpen a terminal and navigate to the frontend:
cd frontendInstall the required dependencies:
npm installStart the development server:
npm startThe frontend will be available at:
To create an optimized production build:
npm run buildOpen a second terminal and navigate to the backend:
cd backendCreate a Python virtual environment:
python -m venv venvActivate the virtual environment:
venv\Scripts\activatepip install -r requirements.txtpython manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverThe backend API will be available at:
👤 Developer
│
┌──────────┴──────────┐
│ │
▼ ▼
🎨 Frontend Terminal ⚙️ Backend Terminal
│ │
▼ ▼
npm install venv
│ │
▼ ▼
npm start pip install -r
│
▼
python manage.py migrate
│
▼
python manage.py runserver
| Service | URL |
|---|---|
| 🎨 Frontend | http://localhost:3000 |
| ⚙️ Backend API | http://127.0.0.1:8000 |
| 🔧 Django Admin | http://127.0.0.1:8000/admin/ |
Quill uses environment variables to keep sensitive configuration and service credentials outside the source code.
⚠️ Never commit production secrets to GitHub.
Create a file named:
frontend/.env
REACT_APP_API_URL=http://127.0.0.1:8000/apiFor the deployed application, use the Render backend:
REACT_APP_API_URL=https://quill-a52m.onrender.com/api🚫 Do not use
localhostor127.0.0.1in production.
Create a file named:
backend/.env
Example configuration:
# ─── Django ──────────────────────────────────────────────
SECRET_KEY=your-secret-key
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# ─── Application URLs ───────────────────────────────────
BACKEND_URL=http://127.0.0.1:8000
FRONTEND_URL=http://localhost:3000
# ─── PostgreSQL ──────────────────────────────────────────
DB_NAME=quill
DB_USER=postgres
DB_PASSWORD=your-db-password
DB_HOST=localhost
DB_PORT=5432
# ─── Google OAuth ────────────────────────────────────────
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# ─── GitHub OAuth ────────────────────────────────────────
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
# ─── Brevo SMTP ──────────────────────────────────────────
BREVO_SMTP_HOST=smtp-relay.brevo.com
BREVO_SMTP_PORT=587
BREVO_SMTP_USE_TLS=True
BREVO_SMTP_LOGIN=
BREVO_SMTP_KEY=
DEFAULT_FROM_EMAIL=Quill <your-email@example.com>
# ─── AI / Translation Services ──────────────────────────
GROK_API_KEY=
DEEPL_API_KEY=
MICROSOFT_TRANSLATOR_KEY=
MICROSOFT_TRANSLATOR_REGION=eastusProduction credentials should be configured through the hosting platform's Environment Variables section instead of being committed to GitHub.
Quill uses PostgreSQL for persistent application data.
Make sure PostgreSQL is running before starting the Django backend.
python manage.py makemigrationspython manage.py migratepython manage.py createsuperuserVoice translation and audio processing require:
- 🎬 FFmpeg
- 🔎 FFprobe
Run:
ffmpeg -versionand:
ffprobe -versionThe backend also supports explicit FFmpeg path configuration and automatic detection of common Windows installation layouts.
🎤 Browser Audio
↓
📤 Uploaded Audio
↓
⚙️ FFmpeg
↓
🔎 FFprobe
↓
🎵 Normalized WAV
↓
🧠 Speech Recognition
↓
🌍 Translation
↓
🔊 TTS
Quill uses a separated frontend and backend deployment architecture.
The React frontend is deployed on Vercel.
https://quill-one-sandy.vercel.app/
| Setting | Value |
|---|---|
| Framework | Create React App |
| Root Directory | frontend |
| Build Command | npm run build |
| Output Directory | build |
| Install Command | npm install |
REACT_APP_API_URL=https://quill-a52m.onrender.com/api🚫 Do not use
http://127.0.0.1:8000/apiin production.
The Django backend is deployed on Render.
https://quill-a52m.onrender.com/
https://quill-a52m.onrender.com/api
The production backend requires:
- 🐘 PostgreSQL
- 🔐 Environment variables
- 📁 Persistent media/storage strategy
- 🎬 FFmpeg where required
- 🌐 HTTPS
- 🔒 CORS configuration
- 📦 Static file handling
- ⚙️ Production WSGI/ASGI configuration
👤 User
│
▼
┌────────────────────────────┐
│ Vercel │
│ React Frontend │
│ │
│ quill-one-sandy.vercel.app │
└────────────┬───────────────┘
│
│ REST / JSON
▼
┌────────────────────────────┐
│ Render │
│ Django Backend │
│ │
│ quill-a52m.onrender.com │
└────────────┬───────────────┘
│
▼
┌────────────────────────────┐
│ PostgreSQL │
│ Data Layer │
└────────────────────────────┘
| Service | URL |
|---|---|
| 🌐 Live Frontend | https://quill-one-sandy.vercel.app/ |
| ⚙️ Backend | https://quill-a52m.onrender.com/ |
| 🔗 API Base URL | https://quill-a52m.onrender.com/api |
| 💻 GitHub Repository | https://github.com/Aarush005coder/Quill |
| Feature | Status |
|---|---|
| 🌍 Text Translation | ✅ |
| 🎙️ Speech to Text | ✅ |
| 🗣️ Speech to Speech | ✅ |
| 🔊 Text to Speech | ✅ |
| 🔎 Auto Language Detection | ✅ |
| 🌐 25 Languages | ✅ |
| 🕘 Translation History | ✅ |
| ⭐ Favorites | ✅ |
| 📄 Document Translation | ✅ |
| 📑 Multi-page Documents | ✅ |
| 📚 PDF Merge | ✅ |
| ✂️ PDF Split | ✅ |
| ⚡ PDF Compress | ✅ |
| 🔄 Rotate PDF | ✅ |
| 🗂️ Organize PDF | ✅ |
| 💧 Watermark PDF | ✅ |
| 🎨 PDF Color Enhance | ✅ |
| 🔢 N-up PDF | ✅ |
| 🖼️ Image Merge | ✅ |
| 📄 Image to PDF | ✅ |
| 🔄 Image Converter | ✅ |
| 📘 Word Merge | ✅ |
| 🔄 PDF to Word | ✅ |
| 📄 Word to PDF | ✅ |
| 📊 PDF to Excel | ✅ |
| 📈 Excel to PDF | ✅ |
| 🔢 Number Tools | ✅ |
| 💱 Currency Tools | ✅ |
| 📏 Unit Tools | ✅ |
| 🗃️ Data Tools | ✅ |
| ⚡ Electrical Tools | ✅ |
| ❤️ Health Tools | ✅ |
| 🧮 Specific Tools | ✅ |
| 🔔 In-App Notifications | ✅ |
| 📧 Email Notifications | ✅ |
| 📲 Push Notifications | ✅ |
| 🔵 Google OAuth | ✅ |
| 🐙 GitHub OAuth | ✅ |
| 🔐 JWT Authentication | ✅ |
| 🐘 PostgreSQL | ✅ |
| ⚛️ React Frontend | ✅ |
| 🌿 Django REST API | ✅ |
| ▲ Vercel Deployment | ✅ |
| 🚀 Render Deployment | ✅ |
Quill follows a modern workspace-oriented design system focused on clarity, consistency, usability, and responsiveness.
- ✨ Clean and minimal interface
- 🌙 Dark / light appearance support
- 🧱 Soft borders
- 🌫️ Subtle shadows
- 🔵 Rounded cards and controls
- 🎨 Blue / cyan / purple accent system
- 📱 Responsive layouts
- 👁️ Clear visual hierarchy
- 🧩 Dedicated workspaces
- ⚡ Fast and focused interactions
- 🎯 Consistent iconography
- ♿ Accessible controls
- 🧹 Minimal visual clutter
The goal is to make Quill feel like a professional SaaS productivity platform, rather than a collection of disconnected utilities.
┌────────────────────── QUILL ──────────────────────┐
│ │
│ 🏠 Overview │
│ 🌍 Translate │
│ 🛠️ Tools │
│ 📄 Documents │
│ 🧩 Combine │
│ 🕘 History │
│ ℹ️ About │
│ ⚙️ Settings │
│ │
└───────────────────────────────────────────────────┘
🌍 Choose Source Language
↓
🎯 Choose Target Language
↓
📝 Enter Text
↓
⚡ Translate
↓
👁️ Review Result
↓
📋 Copy / 🔊 Listen / ⭐ Save
🎤 Record Voice
↓
📤 Upload Audio
↓
⚙️ Convert Audio
↓
🧠 Speech Recognition
↓
🌍 Translate
↓
🔊 Generate Speech
↓
▶️ Play Audio
📤 Upload Document
↓
🔎 Detect / Select Language
↓
🎯 Choose Target Language
↓
📑 Process Pages
↓
🌍 Translate
↓
👁️ Review
↓
📥 Download
🛠️ Choose Tool
↓
📤 Upload Files
↓
⚙️ Configure
↓
🚀 Process
↓
👁️ Preview
↓
📥 Download
Quill supports multiple translation services with fallback strategies to improve reliability.
🌍 Requested Translation Engine
↓
Primary Service
↓
If Failed
↓
🔤 MyMemory
↓
If Failed
↓
🌐 Lingva
↓
If Failed
↓
🔄 LibreTranslate
↓
If Failed
↓
🌍 Google
This architecture helps prevent a failure from a single translation provider from breaking the complete translation workflow.
Quill normalizes browser-recorded audio before speech recognition.
🎤 Browser Audio
↓
⚙️ FFmpeg Decode
↓
🎚️ Mono Audio
↓
⏱️ 16 kHz Sample Rate
↓
🎵 PCM WAV
↓
🔇 Silence / Signal Analysis
↓
🧠 Speech Recognition
Generated speech follows:
🌍 Translated Text
↓
🗣️ Edge TTS
↓
If Failed
↓
🔊 gTTS Fallback
↓
🎵 MP3
↓
💾 Stored Media
↓
🔗 Audio URL
Quill includes defensive handling for:
⚠️ Invalid uploaded files- 🌍 Unsupported languages
- 🔌 Translation provider failures
- 🎙️ Speech recognition failures
- 🔊 TTS failures
- 🎬 FFmpeg conversion failures
- 🌐 API errors
- 🔐 Authentication failures
- 🗄️ Database/history operations
- 🔔 Notification failures
The goal is to keep the application resilient even when an optional external service becomes unavailable.
Availability depends on the specific operation and processing workflow.
Contributions are welcome.
git checkout -b feature/your-featuregit add .git commit -m "Add your feature"git push origin feature/your-featureThen open a Pull Request on GitHub.
Add the license that matches your intended distribution model before publishing the project publicly.
A LICENSE file can be placed in the repository root before publishing the project.