Who I am
Hi, I'm Aqif Akhtar. I'm a full-stack PHP developer based in Lahore. Since February 2024 I've worked as a Junior Software Engineer at Fidigy, a Sweden-based company, where I build e-commerce stores, marketplaces and business web applications in Laravel, WordPress, WooCommerce and Shopify. Before that I built PHP modules at a software house in Faisalabad, and I started my career on the testing side, as a System Engineer supervising software QA.
Wartatren.biz.id is my own side project. This post explains why it exists, how the tools work behind the scenes and, just as importantly, what they can't do. If you'd like more background, there's a short author page too.
The small file jobs that fill a developer's week
Big features get planned in sprints. Small file jobs just turn up in the middle of the day, and they always need doing now:
- Product photos that are far too heavy. Store owners send pictures straight from a phone or a supplier's catalogue. Before they go on a product page they need cropping, resizing and compressing. I've built and maintained more than eight WordPress, WooCommerce and Shopify stores, and page speed has been part of the job on almost all of them. I wrote about my approach in Product Images for WooCommerce and Shopify.
- JSON that needs reading quickly. API responses and payment-gateway webhooks arrive as one long line of JSON. When I'm integrating something like Stripe, I just want to see the structure clearly.
- Names that need converting. Database columns in Laravel are
snake_case, JavaScript preferscamelCase, and URLs wantkebab-case. I explain how I handle that in camelCase vs snake_case in Laravel, WordPress and JavaScript. - PDFs that need merging, splitting or shrinking. Business software produces a lot of documents: statements, reports, invoices and scanned paperwork. Sooner or later one of them is too big to email or needs a page removed.
- Passwords for handover. When a new admin, staging or client account is set up, it needs a strong password, not a variation of the project name.
There are websites for all of these jobs, and I used them for years. Too many of them were covered in pop-ups, put a watermark on the result, asked me to sign up after the second file, or quietly uploaded my file to a server I knew nothing about. So I started building my own versions, and Wartatren.biz.id is where they ended up.
Why everything runs in your browser
The single most important decision was this: your files are processed on your own device, not uploaded to my server.
Part of the reason is the kind of work I do. One of the biggest projects I've built is Libro Accounts, a complete accounting system in Laravel with customers, suppliers, ledgers and real-time reporting. Working on software like that teaches you how sensitive ordinary business documents are. A supplier statement or a customer ledger is exactly the kind of file people upload to “free” online converters without thinking twice. Compressing a PDF should not require handing it to a stranger.
The other part comes from my time in software testing. QA teaches you to keep asking two questions: where does the data actually go? and what happens at the edges? Browser-based processing gives the first question a very simple answer: nowhere. You can check it yourself by opening your browser's developer tools, choosing the Network tab and running a tool. You'll see the page's code load, but your file is never sent.
How the tools work under the hood
No magic is involved. The tools are built on well-tested open-source libraries and on features that every modern browser already has:
| Tools | What does the work |
|---|---|
| Merge, Split, Rotate, Remove Pages, Add Page Numbers, Watermark, JPG to PDF | pdf-lib, a JavaScript library that reads and writes the PDF structure directly |
| PDF to JPG and Compress PDF (image-based levels) | PDF.js, Mozilla's PDF renderer, the same engine Firefox uses to display PDFs |
| Compress, Resize, Convert, Crop and Rotate Image | The browser's built-in Canvas API, which can draw an image at any size and re-encode it as JPG, PNG or WebP |
| Downloads with many files | JSZip, which packs the results into a single ZIP file |
| Text tools (Word Counter, Case Converter, JSON Formatter, Base64 and the rest) | Plain JavaScript written for this site |
Because the processing happens on your computer or phone, speed depends on your device rather than on a queue on someone else's server. Everyday jobs, like merging a few PDFs or resizing a handful of photos, usually finish almost instantly. Long scanned documents take longer, because every page has to be drawn and re-encoded.
What “Recommended” compression actually does
Most compression tools give you a slider and say nothing else. I'd rather tell you exactly what happens to your file. These are the real settings in Compress PDF:
| Level | What it does | Rendering resolution | JPEG quality |
|---|---|---|---|
| Lossless | Rewrites the PDF's internal structure more efficiently. Content is untouched and text stays selectable. | — | — |
| Light | Redraws each page as an image | 2× (about 144 DPI) | 82% |
| Recommended | Redraws each page as an image | 1.5× (about 108 DPI) | 66% |
| Strong | Redraws each page as an image | 1.1× (about 79 DPI) | 50% |
Two safety rules are built in. First, if the compressed version isn't actually smaller, the tool gives you back your original file instead of a worse one. Second, very large pages are capped at 5,000 pixels on their longest side, so a single huge page can't freeze your browser.
Honest limits
Every tool has trade-offs, and I'd rather you hear them from me:
- Image-based compression flattens text. The Light, Recommended and Strong levels turn each page into a picture, so text can no longer be selected or searched. That doesn't matter for scans, but it does for digital documents.
- Your device sets the ceiling. A 500-page PDF or a batch of 50 large photos needs memory. A desktop will cope; an older phone may struggle. If that happens, split the job into smaller batches.
- Password-protected PDFs have to be unlocked with their password before these tools can render them.
- There's no OCR and no PDF text editing. These tools reorganise, convert and compress documents. They don't recognise text in scans or let you edit sentences inside a PDF.
What comes next
I'll keep adding tools when they solve a real problem, and keep writing guides from the projects I work on, especially on web performance, e-commerce images and the small developer tasks that waste time. If a tool doesn't work the way you expect, or there's something you'd like me to build, send me a message. Bug reports are especially welcome; old QA habits die hard.
Thanks for using Wartatren.biz.id.
— Aqif