Why I Built Wartatren.biz.id: A Developer's Toolbox That Runs in Your Browser

Why I Built Wartatren.biz.id: A Developer's Toolbox That Runs in Your Browser

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 prefers camelCase, and URLs want kebab-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:

ToolsWhat does the work
Merge, Split, Rotate, Remove Pages, Add Page Numbers, Watermark, JPG to PDFpdf-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 ImageThe 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 filesJSZip, 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:

LevelWhat it doesRendering resolutionJPEG quality
LosslessRewrites the PDF's internal structure more efficiently. Content is untouched and text stays selectable.——
LightRedraws each page as an image2× (about 144 DPI)82%
RecommendedRedraws each page as an image1.5× (about 108 DPI)66%
StrongRedraws each page as an image1.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.

Which level should you pick? For scanned documents, start with Recommended. For a PDF exported from Word or an accounting system, where you want people to be able to copy the text, use Lossless. If Lossless isn't enough, remove pages you don't need before reaching for a stronger level.

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

Written by Aqif Akhtar

Aqif is a full-stack PHP & WordPress developer in Lahore and a Junior Software Engineer at Fidigy, where he builds Laravel applications and WooCommerce and Shopify stores. He built the tools on Wartatren.biz.id. More about Aqif.