fix: update contact email in Code of Conduct and Contributing documents; enhance HTML structure and styling in index.html

This commit is contained in:
abdullahalam123
2025-10-12 20:26:24 +05:30
parent 3f90e5ed8d
commit 7e9ac95375
4 changed files with 253 additions and 36 deletions

View File

@@ -40,7 +40,7 @@ Maintainers have the right and responsibility to remove, edit, or reject comment
If you are subject to or witness unacceptable behavior, or have any other concerns, please report it by contacting the project team at:
**Email:** `abdus@example.com`
**Email:** `contact@bentopdf.com`
All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.

View File

@@ -23,7 +23,7 @@ You can contribute in several ways:
1. **Fork the Repository**
```bash
git clone [https://github.com/your-username/bento-pdf.git](https://github.com/your-username/bento-pdf.git)
git clone https://github.com/alam00000/bentopdf.git
cd bento-pdf
npm install
```
@@ -78,7 +78,7 @@ You can contribute in several ways:
If you discover a security vulnerability, please **do not** open a public issue. Instead, contact the project maintainer directly at:
**Email:** [abdus@example.com](mailto:abdus@example.com)
**Email:** [contact@bentopdf.com](mailto:contact@bentopdf.com)
---

197
README.md Normal file
View File

@@ -0,0 +1,197 @@
# BentoPDF
![Docker Pulls](https://img.shields.io/docker/pulls/bentopdf/bentopdf)
**BentoPDF** is a powerful, privacy-first, client-side PDF toolkit that allows you to manipulate, edit, merge, and process PDF files directly in your browser. No server-side processing is required, ensuring your files remain secure and private.
---
## ✨ Why BentoPDF?
- **Privacy First**: All processing happens in your browser. Your files are never uploaded to a server, guaranteeing 100% privacy.
- **No Limits**: Manipulate as many files as you want, as often you want. There are no restrictions or upload limits.
- **High Performance**: Built with modern web technologies, BentoPDF is fast and efficient, handling even large PDF files with ease.
- **Completely Free**: BentoPDF is a free and open-source tool for everyone.
---
## 🛠️ Features / Tools Supported
BentoPDF offers a comprehensive suite of tools to handle all your PDF needs.
### Organize & Manage PDFs
| Tool Name | Description |
| :--- | :--- |
| **Merge PDFs** | Combine multiple PDF files into one. |
| **Split PDFs** | Extract specific pages or divide a document into smaller files. |
| **Organize Pages** | Reorder, duplicate, or delete pages with a simple drag-and-drop interface. |
| **Extract Pages** | Save a specific range of pages as a new PDF. |
| **Delete Pages** | Remove unwanted pages from your document. |
| **Rotate PDF** | Rotate individual or all pages in a document. |
| **N-Up PDF** | Combine multiple pages onto a single page. |
| **View PDF** | A powerful, integrated PDF viewer. |
### Edit & Modify PDFs
| Tool Name | Description |
| :--- | :--- |
| **PDF Editor** | A comprehensive editor to modify your PDFs. |
| **Add Page Numbers** | Easily add page numbers with customizable formatting. |
| **Add Watermark** | Add text or image watermarks to protect your documents. |
| **Header & Footer** | Add customizable headers and footers. |
| **Crop PDF** | Crop specific pages or the entire document. |
| **Invert Colors** | Invert the colors of your PDF pages for better readability. |
| **Change Background** | Modify the background color of your PDF. |
| **Change Text Color**| Change the color of text content within the PDF. |
| **Fill Forms** | Fill out PDF forms directly in your browser. |
| **Flatten PDF** | Flatten form fields and annotations into static content. |
| **Remove Annotations**| Remove comments, highlights, and other annotations. |
### Convert to PDF
| Tool Name | Description |
| :--- | :--- |
| **Image to PDF** | Convert JPG, PNG, WebP, SVG, BMP, HEIC, and TIFF images to PDF. |
| **Markdown to PDF** | Convert `.md` files into professional PDF documents. |
| **Text to PDF** | Convert plain text files into a PDF. |
### Convert from PDF
| Tool Name | Description |
| :--- | :--- |
| **PDF to Image** | Convert PDF pages to JPG, PNG, WebP, BMP, or TIFF formats. |
| **PDF to Greyscale** | Convert a color PDF into a black-and-white version. |
| **OCR PDF** | Make scanned PDFs searchable and copyable using Optical Character Recognition. |
### Secure & Optimize PDFs
| Tool Name | Description |
| :--- | :--- |
| **Compress PDF** | Reduce file size while maintaining quality. |
| **Repair PDF** | Attempt to repair and recover data from a corrupted PDF. |
| **Encrypt PDF** | Add a password to protect your PDF from unauthorized access. |
| **Decrypt PDF** | Remove password protection from a PDF (password required). |
| **Change Permissions**| Set or modify user permissions for printing, copying, and editing. |
| **Sign PDF** | Add your digital signature to a document. |
| **Redact Content** | Permanently remove sensitive content from your PDFs. |
| **Edit Metadata** | View and modify PDF metadata (author, title, keywords, etc.). |
| **Remove Metadata** | Strip all metadata from your PDF for privacy. |
---
## 🚀 Getting Started
You can run BentoPDF locally for development or personal use.
### Prerequisites
- [Node.js](https://nodejs.org/) (v18 or higher recommended)
- [npm](https://www.npmjs.com/) (or yarn/pnpm)
- [Docker](https://www.docker.com/) & [Docker Compose](https://docs.docker.com/compose/install/) (for containerized setup)
### 🚀 Run BentoPDF with Docker (Quick Start)
You can run BentoPDF directly from Docker Hub without cloning the repository:
```bash
docker pull bentopdf/bentopdf:latest
docker run -p 3000:80 bentopdf/bentopdf:latest
```
Open your browser at: http://localhost:3000.
This is the fastest way to try BentoPDF without setting up a development environment.
### 🚀 Installation with npm
1. **Clone the Repository**:
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
```
2. **Install Dependencies**:
```bash
npm install
```
3. **Run the Development Server**:
```bash
npm run dev
```
The application will be available at `http://localhost:5173`.
### 🚀 Running with Docker Compose Locally
1. **Clone the Repository**:
```bash
git clone https://github.com/alam00000/bentopdf.git
cd bentopdf
```
2. **Run with Docker Compose**:
Create a `docker-compose.yml` file with the content provided in the repository or use the existing one. Then, run:
```bash
docker-compose up -d
```
The application will be available at `http://localhost:3000`.
> **Note:** After making any local changes to the code, its recommended to rebuild the Docker image using:
```bash
docker-compose up --build -d
```
This ensures your latest changes are applied inside the container
---
## 🛠️ Tech Stack & Background
BentoPDF was originally built using **HTML**, **CSS**, and **vanilla JavaScript**. As the project grew, it was migrated to a modern stack for better maintainability and scalability:
- **Vite**: A fast build tool for modern web development.
- **TypeScript**: For type safety and an improved developer experience.
- **Tailwind CSS**: For rapid and consistent UI development.
> **Note:** Some parts of the codebase still use legacy structures from the original implementation. Contributors should expect gradual updates as testing and refactoring continue.
---
## 🗺️ Roadmap
### Planned Features:
- **HTML to PDF**: Convert HTML files or web pages into PDF documents.
- **Markdown to PDF**: Enhanced support for converting `.md` files to PDF.
- **Sanitize PDF**: Remove potentially malicious content like scripts from PDFs.
- **Convert to PDF/A**: Convert PDFs to the PDF/A archival format.
- **Edit PDF Content**: Directly edit text and other content within your PDF.
- **Linearize PDF**: Optimize PDFs for fast web viewing.
Contributions and discussions on the roadmap are welcome! Join the conversation via [Discord](https://discord.gg/q42xWQmJ).
---
## 🤝 Contributing
We welcome contributions from the community! Heres how you can get started:
1. **Fork the repository** and create your branch from `main`.
2. Follow the **Getting Started** steps to set up your local environment.
3. Make your changes and commit them with a clear message.
4. **Open a Pull Request** and describe the changes you've made.
Have an idea for a new tool or an improvement? [Open an issue](https://github.com/alam00000/bentopdf/issues) to discuss it first.
---
## Special Thanks
BentoPDF wouldnt be possible without the amazing open-source tools and libraries that power it. Wed like to extend our heartfelt thanks to the creators and maintainers of:
- **[PDFLib.js](https://pdf-lib.js.org/)** For enabling powerful client-side PDF manipulation.
- **[PDF.js](https://mozilla.github.io/pdf.js/)** For the robust PDF rendering engine in the browser.
- **[PDFKit](https://pdfkit.org/)** For creating and editing PDFs with ease.
- **[EmbedPDF](https://github.com/embedpdf/embed-pdf-viewer)** For seamless PDF embedding in web pages.
- **[Cropper.js](https://fengyuanchen.github.io/cropperjs/)** For intuitive image cropping functionality.
- **[Vite](https://vitejs.dev/)** For lightning-fast development and build tooling.
- **[Tailwind CSS](https://tailwindcss.com/)** For rapid, flexible, and beautiful UI styling.
Your work inspires and empowers developers everywhere. Thank you for making open-source amazing!
## 📜 License
This project is licensed under the **Apache 2.0**. See the [LICENSE](https://github.com/alam00000/bentopdf/blob/main/LICENSE) file for details.

View File

@@ -64,14 +64,28 @@
Fast, Secure and Forever Free.
</p>
<div class="flex flex-wrap justify-center items-center gap-2 sm:gap-4 mb-8">
<span class="pill">No Signups</span>
<span class="pill">Unlimited Use</span>
<span class="pill">Works Offline</span>
<span
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-gray-800/50 border border-indigo-500/30 text-indigo-300 text-sm font-medium backdrop-blur-sm">
<i data-lucide="check-circle" class="w-4 h-4"></i>
No Signups
</span>
<span
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-gray-800/50 border border-indigo-500/30 text-indigo-300 text-sm font-medium backdrop-blur-sm">
<i data-lucide="check-circle" class="w-4 h-4"></i>
Unlimited Use
</span>
<span
class="inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-gray-800/50 border border-indigo-500/30 text-indigo-300 text-sm font-medium backdrop-blur-sm">
<i data-lucide="check-circle" class="w-4 h-4"></i>
Works Offline
</span>
</div>
<div class="flex flex-col items-center gap-4">
<a href="#tools-header"
class="inline-block px-8 py-3 rounded-full bg-gradient-to-b from-indigo-500 to-indigo-600 text-white font-semibold focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-900 focus:ring-indigo-400 hover:shadow-xl hover:shadow-indigo-500/30 transition-all duration-200 transform hover:-translate-y-1 mt-5">Start
class="inline-block px-8 py-3 rounded-full bg-gradient-to-b from-indigo-500 to-indigo-600 text-white font-semibold focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-900 focus:ring-indigo-400 hover:shadow-xl hover:shadow-indigo-500/30 transition-all duration-200 transform hover:-translate-y-1">Start
Using - Forever Free</a>
</div>
</section>
@@ -163,14 +177,6 @@
</div>
</div>
<!-- <div id="loader-modal"
class="hidden fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50">
<div class="bg-gray-800 p-8 rounded-lg flex flex-col items-center gap-4 border border-gray-700 shadow-xl">
<div class="animate-spin rounded-full h-16 w-16 border-t-4 border-b-4 border-indigo-500"></div>
<p id="loader-text" class="text-white text-lg font-medium">Processing...</p>
</div>
</div> -->
<div id="loader-modal"
class="hidden fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50">
<div class="bg-gray-800 p-8 rounded-lg flex flex-col items-center gap-4 border border-gray-700 shadow-xl">
@@ -544,14 +550,28 @@
<div>
<h3 class="font-bold text-white mb-4">Follow Us</h3>
<div class="flex justify-center md:justify-start space-x-4">
<a href="https://www.instagram.com/thebentopdf/" class="text-gray-400 hover:text-indigo-400">
<a href="https://github.com/alam00000/bentopdf" target="_blank" rel="noopener noreferrer"
class="text-gray-400 hover:text-indigo-400" title="GitHub">
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path fill-rule="evenodd"
d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"
clip-rule="evenodd" />
</svg>
</a>
<a href="https://discord.gg/q42xWQmJ" target="_blank" rel="noopener noreferrer"
class="text-gray-400 hover:text-indigo-400" title="Discord">
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path
d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.27 18.27 0 0 0-5.487 0a12.64 12.64 0 0 0-.617-1.25a.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.078.078 0 0 0 .084-.028a14.09 14.09 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13.107 13.107 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10.2 10.2 0 0 0 .372-.292a.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127a12.299 12.299 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028a19.839 19.839 0 0 0 6.002-3.03a.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03zM8.02 15.33c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418zm7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418z" />
</svg>
</a>
<a href="https://www.instagram.com/thebentopdf/" class="text-gray-400 hover:text-indigo-400" title="Instagram">
<i data-lucide="instagram"></i>
</a>
<a href="https://www.linkedin.com/company/bentopdf/"
class="text-gray-400 hover:text-indigo-400">
<a href="https://www.linkedin.com/company/bentopdf/" class="text-gray-400 hover:text-indigo-400" title="LinkedIn">
<i data-lucide="linkedin"></i>
</a>
<a href="https://x.com/BentoPDF" class="text-gray-400 hover:text-indigo-400">
<a href="https://x.com/BentoPDF" class="text-gray-400 hover:text-indigo-400" title="X (Twitter)">
<svg class="w-6 h-6" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path
d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" />