Why I Built CompareStack
The jobs that kept repeating
I kept needing the same small jobs: see what changed between two pieces of text, read a PDF or Word revision without a visual proofing tool, check a spreadsheet export, and make a minified JSON or SQL paste readable enough to review.
Those jobs already have serious tools—Git, Word, Excel, an IDE. They are the wrong shape when the input is a file someone emailed, a payload from a log, or a query copied out of a ticket. CompareStack is the narrow set of pages I wanted for that case.
What I decided to build
Nine tools, in three groups. Document comparison covers pasted text, PDF text, Word text, and spreadsheet rows. Developer tools cover JSON validation and pretty-print, a whitespace SQL formatter, and a brace-based code indentation pass. Encoding tools cover raw URL encoding and standard Base64.
Each page is supposed to say what the implementation actually does. PDF Compare reads extracted text. It does not compare pixels and it does not OCR scans. Base64 is encoding, not encryption. The SQL formatter does not validate a dialect.
What I am not claiming
CompareStack is a personal project. I do not publish user counts, customer lists, or review scores. It does not replace version control, Track Changes, or a document management system.
If a page and the code disagree, the code is the source of truth. That is why the how-it-works page and this site’s changelog exist: so the description can be corrected in public when the behavior is clearer than the old copy.
How the tools were chosen
I kept the set small on purpose. Text compare is the baseline because most other jobs become a line diff after extraction. PDF, Word, and Excel exist because those files show up as attachments, not as repository paths. JSON and SQL formatters exist because unreadable pastes hide syntax errors and join mistakes. URL encoding and Base64 exist because people confuse them with security.
I did not add a visual PDF diff, OCR, a SQL dialect parser, or encryption. Those are different products, and describing them as if this site did them would be false.
Privacy, as implemented
Forms post to the server. File tools read PHP’s temporary upload for that request and do not move the file into application storage. Paste tools send the text in the request body. There is no account and no comparison history to reopen.
That is not a promise of zero retention. Server logs can still contain an IP address, a URL, and, when extraction or an Excel compare fails, the exception message. Do not upload material you are not allowed to send to a web service. The Privacy Policy is the policy page; the how-it-works page is the behavior page.
Limits I keep running into
Scanned PDFs have no text layer, so PDF Compare returns little or nothing. Whitespace, a byte-order mark, and PDF line wrapping create diffs that look larger than the edit. Pretty-printed JSON is easier to diff than a single line, but formatting does not validate a schema. SQL formatting helps a reviewer see JOIN and WHERE; it does not make the query faster. Base64 looks opaque and is still public.
Browser-based document tools also stop at file size. Uploads are capped at 10 MB, extracted text at about 3 MB, and Excel sheets at 1,200 data rows. Past that, the honest answer is to use a local tool on the full file.
How this is maintained
One person writes the tools and the pages. There is no separate editorial team. Corrections go to support@comparestack.in. If a statement on a tool page is wrong, I would rather change the page than leave a claim that the code does not support.
What you can expect: a result for the request you submitted, a written limit next to the form, and no invented usage numbers. What you should not expect: a saved library of your files, a guarantee about a third-party advertisement network, or a substitute for Git.