Diff Viewer
Visually compare differences between two text blocks and instantly identify additions, removals, and changes.
Line breaks and whitespace differences are also highlighted, helping you catch even subtle modifications.
This tool is useful for reviewing documents, proofreading content, and checking revisions in source code or specifications.
All comparisons are performed directly in your browser, and no text is sent to any server.
Text Diff and Comparison Tool
This text diff tool compares two pieces of text and highlights added, removed, and changed lines. It is useful for code snippets, configuration files, documentation drafts, logs, generated output, and any situation where small changes are easy to miss by eye.
When to use it
- Review code before committing: Compare an old snippet with a new one and catch accidental edits.
- Check configuration changes: Compare JSON, YAML,
.env, server configs, or deployment settings. - Edit documentation: See exactly which sentences or lines changed between two drafts.
Review tip
Whitespace, indentation, and line endings can appear as differences. When reviewing a diff, separate meaningful content changes from formatting-only changes so you can focus on the behavior or wording that actually changed.
Articles for this tool
How to Read Text Diffs: Understanding Line-Level and Word-Level Comparison
Learn how to read diffs: the meaning of + and -, line vs. word-level comparison, handling whitespace and line endings, and practical uses in code review.
Unified Diff Format Reference: Reading @@ Hunks in git diff Output
How to read the unified diff format git produces: what the four numbers in @@ -12,7 +12,9 @@ mean, why a one-character edit shows as a whole-line replacement, the whitespace and line-ending traps, \ No newline at end of file, combined @@@ diffs on merges, and rename detection via similarity index.
Recent Articles
curl Options Cheat Sheet: What -X, -H and -d Actually Do
A reference for the curl options you meet in real API work: why -d already implies POST, how -d differs from --data-raw, the @ prefix that silently reads a file, single vs double quotes, and why -k and -L deserve more caution than they usually get.
Converting Between JSON Schema and Zod: How required Maps to .optional()
Inside a two-way converter that turns JSON Schema into a Zod schema and Zod code back into JSON Schema. Covers the inverted defaults between required and .optional(), the constraint mapping table, and how the Zod side is parsed without executing any code.
SQL Clause Order Reference: Why WHERE Can't See Your SELECT Alias
The order you write SQL clauses is not the order the database runs them. A reference for the logical execution order (FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT), why aliases fail in WHERE, when to use WHERE vs HAVING, and the MySQL/PostgreSQL differences that bite.
Unified Diff Format Reference: Reading @@ Hunks in git diff Output
How to read the unified diff format git produces: what the four numbers in @@ -12,7 +12,9 @@ mean, why a one-character edit shows as a whole-line replacement, the whitespace and line-ending traps, \ No newline at end of file, combined @@@ diffs on merges, and rename detection via similarity index.
UTC to JST Reference: The 9-Hour Offset, Cheat Sheet & Timezone Pitfalls
Convert between UTC and JST (Japan Standard Time) with a cheat sheet. Covers what Z and +09:00 mean in ISO 8601, when JavaScript date parsing silently shifts by 9 hours, MySQL/PostgreSQL timezone behavior, and why GitHub Actions cron always runs in UTC.
CREATE TABLE Reference: MySQL vs PostgreSQL vs SQLite Types & Constraints
A cross-database CREATE TABLE (DDL) reference with cheat sheets for data types, auto-increment keys (AUTO_INCREMENT / IDENTITY / rowid), foreign key ON DELETE behavior, and the CHECK constraint that MySQL silently ignores.