I've always loved the iPad, but it has never really felt like a replacement for my laptop. When the M4 iPad Pro 13-inch with an OLED nano-texture display was released—paired with built-in cellular and the Apple Magic Keyboard—I felt like, “Finally, this is the machine that could replace my laptop.”
The problem has always been the software. Everything is designed primarily for touch, which makes sense because it is, first and foremost, a touch device. But any kind of serious content productivity—especially coding or writing—requires using a keyboard. Ideally, I should be able to do everything without my fingers leaving the keyboard to hunt down a button or swipe a thingy. I look back on the early days of text editors like Brief and Vim, where your fingers could fly across the keyboard to write code. I want that experience on my iPad.
The sandboxed environment of iPadOS makes the iPad great and safe for my mom, but it also limits power users from installing a compiler, then installing the editor or IDE of their choice, and writing code. Swift Playgrounds is great for simple projects, but it is not enough for building serious applications. I want to be able to write code in any language, compile it, and get feedback so I can fix bugs—all on my beautiful iPad. That is the vision.
I started by looking at the most popular text editors for the iPad: Textastic and Koder. They’re fine-ish, but they don’t do what I want, they feel dated, and they don’t give me the purist joy I remember from writing with Brief. So I set out to write a new text editor for the iPad. It’s been 18 months, and welcome to Greditor. I built it for myself, but I am making it available to the world.
First, it’s designed to be used with a physical keyboard. You can use the virtual on-screen keyboard in a pinch if your physical keyboard isn’t available, but if that is how you primarily want to edit, then Greditor is probably not the right tool for you.
Second, I approached the UI from a writer’s and coder’s “purist” standpoint. The focus should be on content, and typing should feel like a dream. The entire screen is available for you to use to focus on your work, except for a single line at the top that displays the filename or title, caret position, and modified status. No sidebars, button bars, and so on. A very simple interface with a lot of power under the hood.
Third, the keyboard mapping is completely configurable. I think I’ve created a default keyboard mapping that works pretty well and provides mappings for most functions. I’ve also defined mappings that mimic Xcode, VS Code, and Emacs, though there are many editing features that simply don’t exist in those editors. You can extend those mappings as you like or create new ones. In addition to the
usual commands for deleting to the start or end of a line, or moving backward and forward by word, you can also delete the line above or below the caret, copy the current line to the line above or below, move lines up and down, transpose characters, and more. Check out the documentation of key commands for all the different options.
Selecting text is not awkward with a keyboard. Yes, you can use Shift with the arrow keys, but you can also use a keyboard sequence to start marking, move the caret using advanced navigation, and then end the marking—without losing the selected text. The clipboard is not just about copy and paste. You can copy and cut multiple times and paste text from a clipboard history.
The screen can be split into up to four panes, which are resizable. Buffers are easy to navigate, and any buffer can appear in any pane. Of course, all of the typical features you’d expect in a professional code editor are there: find and replace with regular expression support, line numbering, text size adjustment, undo/redo, auto-save, and Unicode support. There are over a dozen themes included, and they can be customized or you can easily define your own.
An important part of my vision is that work should not be significantly hampered by a lack of an active internet connection. While compilers live apart from the iPad, you should still be able to edit documents while offline. In that spirit, I’ve included all documentation locally so that if you need to look up a key mapping or macro instruction, it’s all there with you.
You can create and edit documents in several places. Quick documents, notes, and lists are most conveniently stored locally in the “Local” space. The iPad’s local “Documents” area is for files and workspaces that stay on the iPad itself. These documents can be shared with other applications, and this is where Git repositories are cloned and created. Oh yes, Git support is fully integrated into Greditor and does not require purchasing an additional application.
You can connect to and edit documents from an SFTP location. Of course, this requires having an active internet connection. You can also create and edit documents locally on iCloud so that they sync automatically between your Apple devices.
Finally, I’ve created a proprietary file sync protocol called Greditor Remote. Why a new file sync technology stack? Well, this will be the mechanism by which truly remote development is realized. At present, Greditor Remote allows you to work from multiple locations on macOS, Windows, or Linux computers—or all three if you like. When you install Greditor Remote clients on the computers you want to access, you control the sandboxing and access to the files and folders. They can be any combination of folders spread across your computer.
Greditor Remote is the only functionality that requires an additional in-app purchase ($2/month with a 14-day free trial). That is because there is a centralized hosting element that must be maintained.
Greditor projects allow you to specify folders for quick access to files you use often. When a project references a Greditor Remote folder, the files in that folder are automatically synchronized whenever there is an available internet connection rather than downloading on demand.
I created Greditor, and I continue to improve it, for myself. It’s a wonderful editor now for writing code and creating text documents, but I also want to use the same powerful keyboard capabilities and customizations for taking meeting notes, maintaining lists, and developing ideas. For that purpose, I created a free-form document view called a canvas. Canvas documents allow you to type anywhere; the text is automatically wrapped into blocks that you can size and
move around the screen. The saved document file is a JSON-formatted file with a .canvas extension that stores the text, layout, and other attributes.
With canvas documents, you can build lists and check off items, highlight text in different colors, and build forms with fields that can be validated—think custom surveys. Canvas document functionality will continue to evolve. You can view the canvas documentation on greditor.com for more information.
Many of the classic editors from the old days had a macro language so that you could code your own functionality for document formatting and manipulation. Greditor has a built-in macro language. Included are example macros for some common tasks and a fully documented macro language so that you can build your own. You can write and debug your macros right in Greditor. This allows Greditor
to be extended so that you can write a macro and assign it to a key combination or command.
Finally, MCP support. AI is working its way into just about
every application, and while AI on the iPad is a bit behind other platforms, Greditor can be set up as an MCP server so that you can use AI to create, edit, and manipulate documents, canvases, and files. You set up the projects that AI can access so you have full control.
For me, Greditor is not done. It is a work in progress. However, I’m releasing it now to the App Store because it is undoubtedly already the best native editor you can get for the iPad. It’s only $15, so the value proposition is great if you use an editor for anything. I paid $149 for Brief in the 1990s, I know, a different time, but still... and there’s more to come!
I’d love to hear your feedback and ideas for new functionality. Thank you for the opportunity to share! Cheers!
Top comments (0)