Introduction Link to heading

As you might’ve noticed, this blog runs on Hugo, a static site generator that I use as the base platform.

The site is hosted on GitHub Pages, which works great for a simple blog like this one. It’s easy to manage content with Markdown and push updates using just a few Git commands.

The Problem Link to heading

Since Hugo is written in Go, getting the binary to run on iPadOS isn’t exactly straightforward.

You might be thinking: why even bother using an iPad for this? — but I actually find it super convenient for writing and editing documents. So I started looking for a way to make it work.

Modern iPads are surprisingly capable, and there are now a few decent apps that can help power users do more than just browse and type.

The Solution Link to heading

Running the Hugo Binary Link to heading

Hugo works through the command line, and iPadOS doesn’t ship with one — so we have to rely on third-party apps.

I first tried the well-known iSH Shell, which is great in general, but Go support is lacking. After wasting quite a bit of time trying to get Hugo to work inside iSH, I gave up.

Then I came across UTM SE: Retro PC Emulator, and this one was a game-changer. UTM lets you run full virtual machines on an iPad — including Linux.

I grabbed a free Arch Linux VM from the UTM public gallery, and after updating and installing a few packages, I finally had Hugo up and running in a proper Linux shell — right on my iPad.

Writing Content Link to heading

For editing and Git integration, I use Working Copy, which lets me clone my GitHub repo, edit Markdown files, and push changes.

I set up a shared folder between the Arch VM and the iPad filesystem, which means I can use the Hugo CLI inside the VM to create new posts and build the site.

This post was created entirely on my iPad.

My Setup Summary Link to heading

If you’re curious about the exact setup I’m using to make this work, here’s a quick breakdown of the apps and hardware:

Apps & Tools Link to heading

  • Hugo — Static site generator used for building the blog.
  • UTM SE: Retro PC Emulator — Used to run a full Linux virtual machine on the iPad.
  • Arch Linux VM — Downloaded from the UTM public gallery; gives me a proper shell environment.
  • Working Copy – Git Client — Used to clone, edit, and push changes to my GitHub Pages repo.
  • iSH Shell — Mentioned as an alternative shell emulator, but lacks proper Go support.

Hardware Link to heading

  • iPad Air 11-inch (M3, 2024) — Main device I’m working on.
  • Logitech Combo Touch for iPad — Keyboard case with trackpad, makes typing and navigation way more comfortable.