If you searched for a code screenshot app for iPhone, you were probably expecting a roundup. Ten apps, a comparison table, a winner.
There isn't one to write. Go looking and what you find is web tools you can open in Safari, and code editors that highlight syntax but do not make shareable images. The category that exists in abundance on the desktop barely exists as native iPhone software at all.
That is a strange gap for something so many developers do, and it is worth understanding before you settle for whichever browser tab loads.
Disclosure before you read on: we make Codeshot, which is one of the few native options and is not free. The last section says who should not buy it. This is it running on an iPhone, so you know what is being argued for:
What you actually find when you look
Web tools. Carbon.now.sh, ray.so, and a long tail of similar sites. These are the real incumbents. They work on a phone in the sense that the page loads.
Code editors. Textastic and Koder are genuinely good native iOS apps that highlight code. Neither is trying to produce a styled image for a post — that is simply not what an editor is for.
Very little in between. That gap is the whole subject of this page.
To be fair to the App Store: it is large, and something may well exist that neither we nor a search will surface. But the fact that you have to hunt is itself the finding. On desktop this category is crowded to the point of parody.
Why the gap exists
Not because nobody wants it. Because of what the thing costs to build.
A code screenshot tool is three pieces that have to agree with each other. A syntax highlighter covering enough languages to be useful — that means shipping and maintaining a grammar set, not writing a regex. A renderer that lays out text with the right font, spacing and window chrome, and produces the same pixels every time. An export pipeline that scales cleanly and hands off to wherever the image is going.
On the web all three are close to free. The browser already has a layout engine, highlight.js is a script tag, and export is a canvas. That is why Carbon exists at all, and why the dozen tools that followed it are also web pages — the marginal cost of the next one is very low.
Native is the opposite. You bring your own highlighter, your own text layout, and your own rendering. And unlike a web tool, you cannot ship a fix by pushing to a branch.
So the incentive has always pointed at the browser. The apps that did go native went where native pays off — editors, where you need real text handling anyway.
What breaks when you use a web tool on a phone
Nothing dramatic. It is friction, three times over, every time.
Getting the code in. The editor is a web text area. Selection handles, the caret, and autocorrect behave the way they do in every other web field on iOS, which is not the way a code editor behaves.
Adjusting anything. Carbon's premise is that everything is adjustable — theme, font, padding, background, scale. On a desktop that is a row of dropdowns you skim. On a phone it is small targets you hunt for, each one covering the preview you are adjusting. ray.so survives this better precisely because it offers less.
Getting the image out. Export is a browser download. On iOS that means the file lands somewhere and you go find it, rather than moving straight into the app you were posting from.
Once a month, none of this matters. Weekly, it is the same three fights every time.
What native actually buys
Three things, and they are all about the ends rather than the middle.
The clipboard is one tap. Universal Clipboard means the snippet you copied on your Mac is already on your phone. A native app can take it directly.
Export goes to the share sheet. Not a download — straight into Messages, Slack, a draft post, Files, or the photo library.
Your settings persist. Theme, backdrop and ratio are still what you chose last time, which is most of why the tenth image takes seconds rather than minutes.
There is a fourth that matters to some people and not at all to others: your code never goes into a web page. If you are pasting client work or an unreleased feature, that distinction may matter to someone above you even if it does not matter to you.
So what should you use
Once in a while — ray.so in Safari. Free, few enough options that a small screen does not become a problem, good enough result. A free tool you use twice a month does not need replacing.
Mostly at a desk — Carbon.now.sh on your Mac, and stop trying to do this on the phone. It is free, open source, and excellent where it was designed to be used.
Regularly, from the phone — this is the case native is for. Codeshot is a native Mac and iPhone app: paste from the clipboard in one tap, 30 syntax themes, 60 languages detected from the code itself, ratio presets from 1:1 to 9:16, and export into the share sheet.
Never — the built-in screenshot. It captures your phone's width rather than your code's, and the lines are already wrapped before you press anything.
Who should not buy ours
It is $5.99 and it is Apple-only. Every web tool on this page is free and runs anywhere.
If you make one code image a month, ray.so is the right answer and we would rather you used it. If you are not on an iPhone or a Mac, this is not a decision you have. And if the images you make are always made at a desk, Carbon on the desktop is free and very good.
The case for a native app is narrow and specific: you do this often, you do it from your phone, and the friction has started to cost you more than the app does.
If that is you, How to Screenshot Code on iPhone walks through the whole thing, and Carbon.now.sh on iPhone goes deeper on what breaks in the browser.