Ghost Themes
Ghost Themes A living gallery of the best, updated as new ones ship. 444 demos from 112 publishers. Search themes
iPad is the best coding computer, which is why I always code on Mac.
Have you ever...
I have. So I started coding on my iPad; and I'm not going back.

iPad Pro with Magic Keyboard is the most comfortable computer I've ever used. Not the most powerful, not the most versatile—the most comfortable. It weighs roughly a kilogram, runs silent, lasts all day, and disappears into a backpack without complaint. Every location that used to be "not a computer place" became one.
There's another side to portability: durability. Spill water on MacBook keyboard and you're buying new MacBook. Spill lava on my iPad's Magic Keyboard and I'm buying a new keyboard; an expensive one, sure, but a keyboard nonetheless.
The hardware is perfect for coding; the software is the problem.
iPad Pros ship with the same M-series chips as Macs. The silicon is identical. In theory, this device could run macOS, Xcode, a full terminal, the works. But Apple won't let it. There's no native shell, no package manager, no pip install. Everything is an app, sandboxed and isolated.
I tried. Textastic has syntax highlighting and FTP. Pythonista runs Python directly on the device. These apps are impressive for what they are, but "what they are" is not a development environment.
I wanted to install my Vim configuration: my dotfiles, my plugins, the muscle memory I've spent years building. On Mac, it's a single git clone and a setup script. On iPad, it's an odyssey: file system sandboxing, half my plugins broken, no way to pipe commands together. I just wanted a terminal. A real one.
The editing was fine. Everything around it—file management, version control, builds, testing—felt like surgical precision with oven mitts. Long press to rename. Share sheet to move. Switch apps to run. iPad stopped feeling like a tool and started feeling like a puzzle.
So I gave up programming on iPad, and I started programming via iPad.
My MacBook already has everything I need: Z-Shell, Vim, tmux, Git, Python, C++ toolchains. All I needed was a way to reach it from my iPad. This problem was solved in 1995 via SSH.
Blink is my SSH client. It's a native iOS terminal emulator that supports SSH and Mosh, renders fonts well, and integrates with iPad keyboard shortcuts so ⌘+Tab works like Mac. It doesn't try to be an IDE or a file manager. It's a terminal. That's it.
Other options worth considering:
On the same network, macOS has SSH built in. Go to System Settings → General → Sharing → Remote Login and toggle it on. Your Mac gets a local hostname, and from Blink:
ssh [email protected]
That's it. You're in.
On a different network, Tailscale creates a free personal VPN connecting your devices as if they were on the same network. Install it on both, sign in, and your Mac gets a stable address you can SSH into from anywhere.
Developing a website and hosting it locally? SSH port forwarding lets you access it on your iPad:
ssh -L 4000:localhost:4000 [email protected]
Now localhost:4000 in Safari on your iPad shows your local dev server running on your Mac.
Mosh is SSH for mobile connections. Where SSH dies on network hiccups, Mosh picks up where you left off and predicts keystrokes locally so typing feels instant on high-latency connections.
I use it sparingly. It occasionally mangles my terminal rendering, the kind of artifacts that make Vim feel like a funhouse mirror. For day-to-day coding, plain SSH is cleaner.
But for long-running connections, Mosh is unbeatable. If I'm port forwarding a dev server to Safari, I don't want that tunnel dying every time I switch apps or my WiFi wobbles. I'll start a Mosh session for the port forward, open Safari in Split View, and code in a separate SSH session. The Mosh connection just sits there, indestructible, keeping my preview running.
tmux is what makes this setup practical. It's a terminal multiplexer: persistent sessions with multiple panes that survive disconnections.
I start a tmux session on my Mac, open Vim in one pane, run a build in another. Then I close my iPad, go to sleep, wake up, open Blink, reconnect, and type tmux attach. Everything is exactly where I left it. The Vim buffer with my half-written function. The build output. The git log I was reviewing.
Without tmux, every disconnection kills your processes and closes your files. With it, your Mac becomes a persistent development server that your iPad dials into whenever you want.
I open Blink, type ssh mac, and I'm at my Z-Shell prompt. If a tmux session is already running—it usually is—I reattach:
tmux attach
From here, it's indistinguishable from sitting at my Mac. Vim, Python, C++, Git, grep. It is my Mac's terminal, just displayed on my iPad. Some common workflows:

A few months in, here's what doesn't work.
Images are a pain. Anything visual, the files live on your Mac and a terminal image viewer doesn't cut it. For image-heavy work, I still reach for MacBook.
File transfer is clunky. AirDrop and iCloud Drive work but neither integrates into a terminal workflow. Too much context-switching.
Network quality matters. Fast WiFi feels local. Weak signal or cellular, every keystroke has a delay. There's a floor below which this isn't enjoyable.
Your Mac needs to stay on. The display can sleep, but the system needs to keep running. Keep it plugged in and toggle System Settings → Battery → Options → "Prevent your Mac from sleeping automatically when the display is off" (or pmset -a sleep 0 in Terminal). One-time setup.
One screen is still one screen. Split View gives you two apps, but there's no second monitor for documentation.
I'm still learning. A few months in, I'm still hitting walls. That's part of the appeal, honestly. There's something satisfying about optimizing a setup nobody designed but works anyway.
My iPad isn't replacing my Mac. It's extending it to places Mac can't comfortably go. Mac does the computing; iPad does the being-there.
If you have Mac and iPad, you already have everything you need. SSH has been around since 1995. tmux since 2007. The tools are decades old. The form factor is what's new.
The best coding computer is the one that lets you code when you otherwise wouldn't.