Skip to content
Open

pull #64

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,30 +63,30 @@ jobs:
run: |
# The 'out' directory contains the static export
cd out
zip -r ../pdfcraft-${{ steps.version.outputs.version }}.zip .
zip -r ../PDFRose-${{ steps.version.outputs.version }}.zip .
cd ..

echo "📦 Release package created: pdfcraft-${{ steps.version.outputs.version }}.zip"
echo "📊 Package size: $(du -h pdfcraft-${{ steps.version.outputs.version }}.zip | cut -f1)"
echo "📦 Release package created: PDFRose-${{ steps.version.outputs.version }}.zip"
echo "📊 Package size: $(du -h PDFRose-${{ steps.version.outputs.version }}.zip | cut -f1)"

# Create GitHub Release with auto-generated notes from commits
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.version }}
name: PDFCraft ${{ steps.version.outputs.version }}
name: PDFRose ${{ steps.version.outputs.version }}
body: |
## 🚀 PDFCraft Release ${{ steps.version.outputs.version }}
## 🚀 PDFRose Release ${{ steps.version.outputs.version }}

### 📦 Download & Usage
1. Download `pdfcraft-${{ steps.version.outputs.version }}.zip`
1. Download `PDFRose-${{ steps.version.outputs.version }}.zip`
2. Extract to any directory
3. Serve with any static HTTP server

**Quick start:**
```bash
# Using Python
cd pdfcraft
cd PDFRose
python -m http.server 8080

# Or using Node.js
Expand All @@ -102,7 +102,7 @@ jobs:
**Commit:** `${{ github.sha }}`
**Build Time:** ${{ steps.version.outputs.build_time }}
files: |
pdfcraft-${{ steps.version.outputs.version }}.zip
PDFRose-${{ steps.version.outputs.version }}.zip
draft: false
prerelease: false
generate_release_notes: true
Expand Down
2 changes: 1 addition & 1 deletion .htaccess
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Apache .htaccess configuration for PDFCraft static export
# Apache .htaccess configuration for PDFRose static export
# Place this file in the root of your web directory (where out/ contents are copied)

# Enable rewrite engine
Expand Down
4 changes: 2 additions & 2 deletions DEPLOYMENT.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# PDFCraft Static Export Deployment Guide
# PDFRose Static Export Deployment Guide

This project is configured for static export, making it deployable to any static hosting provider.

Expand Down Expand Up @@ -368,7 +368,7 @@ NEXT_PUBLIC_GA_ID=G-XXXXXXXXXX

## 🌐 Multi-language Routes

PDFCraft supports multiple languages. The static export generates pages for all locales:
PDFRose supports multiple languages. The static export generates pages for all locales:

| Locale | URL Pattern | Example |
|--------|-------------|---------|
Expand Down
12 changes: 6 additions & 6 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# =============================================================================
# PDFCraft Production Dockerfile
# PDFRose Production Dockerfile
# Multi-stage build for optimized image size
# Optimized with BuildKit cache mounts for faster builds
# =============================================================================
Expand Down Expand Up @@ -34,17 +34,17 @@ RUN --mount=type=cache,target=/root/.npm \
FROM nginx:1.25-alpine AS production

# Add labels for GitHub Container Registry
LABEL org.opencontainers.image.source="https://github.com/PDFCraftTool/pdfcraft"
LABEL org.opencontainers.image.description="PDFCraft - Professional PDF Tools, Free, Private & Browser-Based"
LABEL org.opencontainers.image.source="https://github.com/PDFRoseTool/PDFRose"
LABEL org.opencontainers.image.description="PDFRose - Professional PDF Tools, Free, Private & Browser-Based"
LABEL org.opencontainers.image.licenses="AGPL-3.0"
LABEL org.opencontainers.image.title="PDFCraft"
LABEL org.opencontainers.image.vendor="PDFCraftTool"
LABEL org.opencontainers.image.title="PDFRose"
LABEL org.opencontainers.image.vendor="PDFRoseTool"

# Copy custom nginx configuration
COPY nginx.conf /etc/nginx/conf.d/default.conf

# Copy the static export from builder stage
COPY --from=builder /app/out /website/pdfcraft
COPY --from=builder /app/out /website/PDFRose

# Expose port 80
EXPOSE 80
Expand Down
36 changes: 18 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# PDFCraft
# PDFRose

<div align="center">
<img src="public/images/logo.png" alt="PDFCraft Logo" width="120" height="120" />
<img src="public/images/logo.png" alt="PDFRose Logo" width="120" height="120" />
<h1>Professional PDF Tools</h1>
<p>
<strong>Free, Private & Browser-Based</strong>
Expand All @@ -13,7 +13,7 @@

<div align="center">

[![Website](https://img.shields.io/website?url=https%3A%2F%2Fpdfcraft.devtoolcafe.com%2Fen%2F)](https://pdfcraft.devtoolcafe.com/en/)
[![Website](https://img.shields.io/website?url=https%3A%2F%2FPDFRose.devtoolcafe.com%2Fen%2F)](https://PDFRose.devtoolcafe.com/en/)
![Next.js](https://img.shields.io/badge/Next.js-15-black?style=flat-square&logo=next.js)
![React](https://img.shields.io/badge/React-19-blue?style=flat-square&logo=react)
![TypeScript](https://img.shields.io/badge/TypeScript-5-blue?style=flat-square&logo=typescript)
Expand All @@ -23,7 +23,7 @@

## 📖 About

**PDFCraft** is a comprehensive suite of PDF tools designed for privacy and performance. Unlike many online converters, PDFCraft processes your files entirely within your browser using WebAssembly technology. Your documents **never** leave your device, ensuring maximum security for your sensitive data.
**PDFRose** is a comprehensive suite of PDF tools designed for privacy and performance. Unlike many online converters, PDFRose processes your files entirely within your browser using WebAssembly technology. Your documents **never** leave your device, ensuring maximum security for your sensitive data.

This project is built with modern web technologies to provide a slick, app-like experience directly in the browser.

Expand All @@ -39,7 +39,7 @@ This project is built with modern web technologies to provide a slick, app-like

> ⚠️ **Early Development Notice**: This feature is currently in early development stage. You may encounter bugs or incomplete functionality. We appreciate your feedback and patience!

PDFCraft includes a powerful **visual workflow editor** that allows you to chain multiple PDF operations together, creating automated processing pipelines.
PDFRose includes a powerful **visual workflow editor** that allows you to chain multiple PDF operations together, creating automated processing pipelines.

<div align="center">
<img src="public/images/workflow-editor-screenshot.png" alt="Workflow Editor Screenshot" width="800" />
Expand Down Expand Up @@ -211,8 +211,8 @@ To run this project locally, follow these steps:

1. **Clone the repository**
```bash
git clone https://github.com/PDFCraftTool/pdfcraft.git
cd pdfcraft
git clone https://github.com/PDFRoseTool/PDFRose.git
cd PDFRose
```

2. **Install dependencies**
Expand All @@ -238,21 +238,21 @@ To run this project locally, follow these steps:

### 🐳 Docker

PDFCraft provides both pre-built Docker images and Docker Compose for flexible deployment options.
PDFRose provides both pre-built Docker images and Docker Compose for flexible deployment options.

#### Option 1: Use Pre-built Image (Recommended)

The easiest way to run PDFCraft is using our pre-built image from GitHub Container Registry:
The easiest way to run PDFRose is using our pre-built image from GitHub Container Registry:

```bash
# Pull the latest image
docker pull ghcr.io/pdfcrafttool/pdfcraft:latest
docker pull ghcr.io/PDFRosetool/PDFRose:latest

# Run the container
docker run -d -p 8080:80 --name pdfcraft ghcr.io/pdfcrafttool/pdfcraft:latest
docker run -d -p 8080:80 --name PDFRose ghcr.io/PDFRosetool/PDFRose:latest
```

Open [http://localhost:8080](http://localhost:8080) to access PDFCraft.
Open [http://localhost:8080](http://localhost:8080) to access PDFRose.

**Available tags:**
| Tag | Description |
Expand All @@ -269,8 +269,8 @@ If you want to build from source or need to modify the code:

```bash
# Clone the repository
git clone https://github.com/PDFCraftTool/pdfcraft.git
cd pdfcraft
git clone https://github.com/PDFRoseTool/PDFRose.git
cd PDFRose

# Development mode (with hot reload)
docker compose --profile dev up
Expand Down Expand Up @@ -298,7 +298,7 @@ docker compose down

## 🚀 Production Deployment Guide

PDFCraft is configured for static export (`output: 'export'`), which means it can be deployed to any service that supports static website hosting without requiring a Node.js server.
PDFRose is configured for static export (`output: 'export'`), which means it can be deployed to any service that supports static website hosting without requiring a Node.js server.

> 📖 **For comprehensive deployment instructions, see [DEPLOYMENT.md](DEPLOYMENT.md)**

Expand Down Expand Up @@ -351,9 +351,9 @@ Contributions are welcome! Please feel free to submit a Pull Request.

## 🤝 Acknowledgements

PDFCraft stands on the shoulders of giants. We gratefully acknowledge [BentoPDF](https://github.com/alam00000/bentopdf) for their pioneering work in privacy-first, client-side PDF tools.
PDFRose stands on the shoulders of giants. We gratefully acknowledge [BentoPDF](https://github.com/alam00000/bentopdf) for their pioneering work in privacy-first, client-side PDF tools.

Their project served as a significant inspiration and reference for our core logic. While PDFCraft has been re-engineered for the Next.js ecosystem and extends functionality with unique features like the *Workflow Editor*, we deeply respect the foundation laid by the BentoPDF team.
Their project served as a significant inspiration and reference for our core logic. While PDFRose has been re-engineered for the Next.js ecosystem and extends functionality with unique features like the *Workflow Editor*, we deeply respect the foundation laid by the BentoPDF team.

## 📄 License

Expand All @@ -362,5 +362,5 @@ This project is licensed under the AGPL-3.0 License - see the [LICENSE](LICENSE)
---

<div align="center">
Built with ❤️ by the PDFCraft Team
Built with ❤️ by the PDFRose Team
</div>
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ services:
ports:
- "8080:80"
volumes:
- static_out:/website/pdfcraft:ro
- static_out:/website/PDFRose:ro
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
builder:
Expand Down
18 changes: 9 additions & 9 deletions extension/README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# PDFCraft Chrome Extension
# PDFRose Chrome Extension

A simple Chrome extension for quick access to PDFCraft's 72+ PDF tools.
A simple Chrome extension for quick access to PDFRose's 72+ PDF tools.

## Features

- 🚀 **Quick Access Popup**: Click the extension icon to see popular tools
- 📋 **Right-Click Menu**: Access PDFCraft tools from any webpage
- 📋 **Right-Click Menu**: Access PDFRose tools from any webpage
- 🎨 **Modern UI**: Beautiful dark theme with gradient effects
- ⚡ **Fast**: Lightweight extension with no background processing

Expand All @@ -18,12 +18,12 @@ A simple Chrome extension for quick access to PDFCraft's 72+ PDF tools.
3. Enable **Developer mode** (toggle in top-right corner)
4. Click **Load unpacked**
5. Select the `extension` folder from this repository
6. The PDFCraft icon should appear in your toolbar!
6. The PDFRose icon should appear in your toolbar!

### Usage

- **Click the icon** in your toolbar to see quick links to popular PDF tools
- **Right-click** on any webpage and select "Open with PDFCraft" to access tools
- **Right-click** on any webpage and select "Open with PDFRose" to access tools

## Tools Included

Expand All @@ -37,19 +37,19 @@ The popup provides quick access to:
- Sign PDF
- Encrypt PDF

And 64+ more tools via the "Open PDFCraft" button!
And 64+ more tools via the "Open PDFRose" button!

## Privacy

This extension:
- ✅ Does NOT collect any data
- ✅ Does NOT track browsing activity
- ✅ Only opens PDFCraft website when you click
- ✅ Only opens PDFRose website when you click

## Links

- Website: [pdfcraft.gitu.net](https://pdfcraft.gitu.net)
- GitHub: [github.com/PDFCraftTool/pdfcraft](https://github.com/PDFCraftTool/pdfcraft)
- Website: [PDFRose.gitu.net](https://PDFRose.gitu.net)
- GitHub: [github.com/PDFRoseTool/PDFRose](https://github.com/PDFRoseTool/PDFRose)

## License

Expand Down
52 changes: 26 additions & 26 deletions extension/background.js
Original file line number Diff line number Diff line change
@@ -1,73 +1,73 @@
// PDFCraft Chrome Extension - Background Service Worker
// PDFRose Chrome Extension - Background Service Worker

const PDFCRAFT_URL = 'https://pdfcraft.gitu.net/en';
const PDFRose_URL = 'https://PDFRose.gitu.net/en';

// Create context menu when extension is installed
chrome.runtime.onInstalled.addListener(() => {
// Create main context menu item
chrome.contextMenus.create({
id: 'pdfcraft-open',
title: 'Open with PDFCraft',
id: 'PDFRose-open',
title: 'Open with PDFRose',
contexts: ['link', 'page']
});

// Create submenu for specific tools
chrome.contextMenus.create({
id: 'pdfcraft-merge',
parentId: 'pdfcraft-open',
id: 'PDFRose-merge',
parentId: 'PDFRose-open',
title: 'Merge PDFs',
contexts: ['link', 'page']
});

chrome.contextMenus.create({
id: 'pdfcraft-compress',
parentId: 'pdfcraft-open',
id: 'PDFRose-compress',
parentId: 'PDFRose-open',
title: 'Compress PDF',
contexts: ['link', 'page']
});

chrome.contextMenus.create({
id: 'pdfcraft-convert',
parentId: 'pdfcraft-open',
id: 'PDFRose-convert',
parentId: 'PDFRose-open',
title: 'Convert to PDF',
contexts: ['link', 'page']
});

chrome.contextMenus.create({
id: 'pdfcraft-all-tools',
parentId: 'pdfcraft-open',
id: 'PDFRose-all-tools',
parentId: 'PDFRose-open',
title: 'All Tools →',
contexts: ['link', 'page']
});

console.log('PDFCraft context menus created');
console.log('PDFRose context menus created');
});

// Handle context menu clicks
chrome.contextMenus.onClicked.addListener((info, tab) => {
let url = PDFCRAFT_URL;
let url = PDFRose_URL;

switch (info.menuItemId) {
case 'pdfcraft-merge':
url = `${PDFCRAFT_URL}/tools/merge-pdf`;
case 'PDFRose-merge':
url = `${PDFRose_URL}/tools/merge-pdf`;
break;
case 'pdfcraft-compress':
url = `${PDFCRAFT_URL}/tools/compress-pdf`;
case 'PDFRose-compress':
url = `${PDFRose_URL}/tools/compress-pdf`;
break;
case 'pdfcraft-convert':
url = `${PDFCRAFT_URL}/tools/jpg-to-pdf`;
case 'PDFRose-convert':
url = `${PDFRose_URL}/tools/jpg-to-pdf`;
break;
case 'pdfcraft-all-tools':
case 'pdfcraft-open':
url = PDFCRAFT_URL;
case 'PDFRose-all-tools':
case 'PDFRose-open':
url = PDFRose_URL;
break;
default:
url = PDFCRAFT_URL;
url = PDFRose_URL;
}

// Open PDFCraft in a new tab
// Open PDFRose in a new tab
chrome.tabs.create({ url: url });
});

// Log when service worker starts
console.log('PDFCraft background service worker started');
console.log('PDFRose background service worker started');
8 changes: 4 additions & 4 deletions extension/manifest.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"manifest_version": 3,
"name": "PDFCraft - PDF Tools",
"name": "PDFRose - PDF Tools",
"version": "1.0.0",
"description": "Quick access to 72+ free online PDF tools. Merge, split, compress, convert PDFs - all in your browser.",
"author": "PDFCraft Team",
"homepage_url": "https://pdfcraft.gitu.net",
"author": "PDFRose Team",
"homepage_url": "https://PDFRose.gitu.net",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
Expand All @@ -17,7 +17,7 @@
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"default_title": "PDFCraft - PDF Tools"
"default_title": "PDFRose - PDF Tools"
},
"background": {
"service_worker": "background.js"
Expand Down
Loading