Ever since the iPad was introduced, I've wanted it to become a way to write and work with code. I waited a long time before giving up and building my own solution to the problem. Coding on the iPad is really hard. Apple doesn't allow apps to execute arbitrary code (with limited exceptions nowadays). So die-hard iPad coders have resorted to some pretty gnarly workarounds. The most powerful workaround involves getting your own remote server, and using a terminal app to shell in. There, you can write your code on a Linux box and run it from there. Suffice to say, turning your iPad into a dumb terminal isn't my idea of coding on the most advanced and personal computer ever. That's why I built Codewerks. It's an app that gives you the power of being hooked into a Linux box, but with a user interface worthy of iOS.

Watch some videos!

(All the videos are audio-free and about 20 seconds long.) Here's how it works: you create a new project, choosing from a set of pre-made templates for the environment you want. Choose from Node, Ruby, Python, Swift and more. Each of these is a full-on Linux server ready to go with your project.

Quickly create a new project using the templates available. Here we're setting up a Rails project. After naming it, you'll see the File Manager download the files, ready for you to get started. In your project, you get a file manager. Here you can create new files and folders, and import from iCloud Drive. It works like column view on macOS. As you work on files, they're synced to the Linux server.

Navigate your files in a column view. Create and rename files and folders, and import files from iCloud Drive. You can edit your files in the built-in code editor. It has syntax highlighting, line numbers, theme support and more. You can open multiple files at once; they open in tabs.

Open multiple files at once in the code editor. Edit your text with syntax highlighting. Use Find and Replace. Depending on the type of project you're working on, you may want to run your code in the terminal. Codewerks includes an XTerm-compatible terminal where you can run your code. It's all running remote, but it feels as fast as local.

Run your programs in the Terminal. And it's a real terminal emulator on a real Linux machine: here's top.
And if you're building something that outputs HTML, the built-in Preview screen can load your project. This is just the beginning for Codewerks. I have some pretty vivid ideas for where to take this product, in terms of features, improvements and product offerings.