JuxtaCode

A native macOS app for browsing Git diffs, comparing branches and resolving merges in a three-way editor.

Developer Tools # git# macos# diff# merge# version-control# developer-tools
JuxtaCode Screenshot 1

Quick Facts

Pricing Model

Paid

Pricing Options

One-Time $40
Get Started Now

Compensation may be received for transactions completed through affiliate partnerships.

JuxtaCode Review: The Diff Tool You Buy Once, While Kaleidoscope Rents Itself to You

Kaleidoscope went subscription with version 4, and its pricing now starts around $8 a month billed annually. JuxtaCode costs $40, once. That single fact frames everything else about this app: it is a deliberate, opinionated alternative for Mac developers who are tired of paying rent on a diff viewer.

What it actually is

JuxtaCode is a native macOS app from solo developer Yori Mihalakopoulos for doing three things well: browsing a repository's history, comparing any two commits or branches side by side, and resolving merge conflicts in a three-way editor. It is not a Git client. There is no staging area, no push, no pull. You point it at a repo (or drive it from Tower, Gitfox, Fork, a VS Code extension, or the bundled juxta command-line tool) and it handles the "what changed and why" part of the job.

Michael Tsai's write-up when version 1.0.2 shipped nailed the distinction: where Kaleidoscope is built around picking two arbitrary versions to compare, JuxtaCode behaves more like a focused Git client. Move through the commit list and it shows each changeset, syntax highlighted, with a file history view that survives renames and moves. Commit search works by message, hash, branch, or tag, and you can filter files by name, type, or kind of change. For reviewing what a branch actually did before you merge it, this commit-centric flow is the app's real argument.

The merge editor is where the money goes

The three-way merge tool labels the commits on either side of a conflict so you can trace which changes caused the collision before resolving it. Word-level differences update as you type in the result pane, and version 1.3 added Twin Focus, which highlights the corresponding word on the other side of a diff when you hover. Release 1.3 also improved the diffing algorithm for rewrapped paragraphs, so a long line reflowed to a column limit shows up as "modified" with the newline differences marked instead of a wall of false changes. These are the touches of someone who resolves merges for a living.

One honest gripe from the app's Show HN thread: a commenter said the "ours/theirs" terminology was confusing enough that they had abandoned Sublime Merge over it, and even Mihalakopoulos admitted he has to stop and think about which term applies. JuxtaCode scatters Ours and Theirs badges through the UI to compensate, but if that mental model has burned you before, expect the same friction here.

Version 1.4 quietly fixed the oldest complaint

Back in that same 2023 Hacker News thread, the first question was whether it could diff two files outside of Git. The answer was "not yet." As of 1.4 (July 2026), non-Git comparisons can be edited in place, saved as .juxta documents, and written back to the original files. Large diffs also render dramatically faster, and juxta merge -a <file> -b <file> launches a merge session straight from Terminal. Version 1.3 even added support as a merge tool for Jujutsu, which tells you the maintainer is paying attention to where version control is heading.

The praise it gets tends to come from working indie devs rather than listicles. David Smith (Widgetsmith, Pedometer++) says he can "easily pick any two commits to compare and navigate changes," and Eerk Hofmeester, maker of Board Game Stats, calls it his go-to for reviewing changes spread across several commits and platforms.

Where it falls short

  • macOS only. A common HN reaction was some version of "looks nice, but I won't split my toolchain across operating systems." If you also work on Linux or Windows, this is a non-starter.
  • It does one job. No image diffs, no folder comparisons in the Kaleidoscope sense, no staging or committing. You still need a real Git client or the command line alongside it.
  • The user base is small, so community resources are thin. You are trusting one developer's release cadence, though the published release notes show steady, substantive updates since 2023.
  • Text only. If your work involves comparing images, plists visually, or binary assets, look elsewhere.

Should you buy it?

Pick JuxtaCode if you live on a Mac, resolve conflicts regularly, and resent the subscription Kaleidoscope now demands. The 14-day trial is the full app, so test it against your ugliest merge. Skip it if you need cross-platform consistency or folder and image comparison, because it will never do those things. At $40 with no subscription, it is one of the easier purchases in a Mac developer's toolkit to justify.

Key Features

  • Browse commits and compare any two commits or branches
  • Three-way merge editor for difficult conflicts
  • File history timeline with syntax highlighting
  • Edit non-Git comparisons in place and save as .juxta documents
  • juxta command-line tool for launching merge sessions
  • Fast rendering of very large diffs

Pros

  • Native macOS app rather than an Electron wrapper
  • One-off $40 payment with no subscription
  • 14-day free trial and Mac App Store availability
  • Endorsed publicly by a well-known indie iOS developer
  • Actively maintained with published release notes

Cons

  • macOS only
  • Single-purpose tool: diffs and merges, not a full Git client
  • Commission is a flat $8 one-time with no recurring revenue

Technical Performance

Lighthouse Audit

Speed
77/100 C
Accessibility
100/100 A
Best Practices
100/100 A
SEO
100/100 A

Core Web Vitals

LCP 5.9s
FCP 1.8s
CLS 0.000
TBT 2ms
Speed Index 2.1s

Performance data measured via Google Lighthouse. Fast load times indicate a well-optimized product that won't slow down your workflow.

User Reviews

No reviews yet. Be the first to review this tool!

Tags

gitmacosdiffmergeversion-controldeveloper-tools