← All posts

September 12, 2026 · Oneva Team

Moving our own source code home

Moving to European alternatives is the right thing to do, but the unfamiliarity and the work involved put it off. It took us six months to move our source code off GitHub. AI is why it finally took a day.

Moving to European alternatives is the right thing to do, but the unfamiliarity of the new solutions and the work required may be off-putting. When we started Oneva we did as everyone else. We put our source code on GitHub. It was meant to be temporary, but it took us six months before we finally brought it home.

Luckily, AI has taken away the drudgery of migration.

Our code now lives on a server we rent in Europe, running Forgejo — open-source software anyone can install, sitting beside the rest of our infrastructure. The cutover took a day, and nothing broke.

What AI actually removed

The manual labour, almost entirely. A repository moves in an afternoon. Everything pointing at it does not — the automated tests, the rules deciding who reviews which files, the scripts that quietly assume the old address. Dozens of small connections, none of them difficult, all needing to be found, moved and checked. AI agents did the planning and that work in parallel. Our part was to approve and to make the judgement calls.

The decisions that are not obvious. This is the part people underestimate. Much of a migration is not moving something, it is deciding what it should look like on the other side — settings with no self-evident right answer, where you would normally read documentation for an hour and then guess. Something that can do the reading, propose an answer and show you why turns those from afternoons into minutes.

The fear of getting stuck. This is the one that actually stops people, and it stopped us. The worry is not that a migration is long. It is that you begin, hit a problem you do not know how to solve, and end up with the old arrangement half-dismantled and the new one not working — days of unplanned work to reach a position no better than the one you left.

We did hit problems like that. Every migration does. The difference was that they were worked through in the moment instead of becoming a week of reading and guessing. And the honest admission: on our own we would not have started. Not because the destination was unclear, but because we knew it would raise questions we were not equipped to answer quickly, and that is enough to keep a good idea on the list indefinitely.

Why it was worth doing

We ask people to think about where their files and mail live, and who else can reach them. It would be strange not to ask that about our own source code.

There was a commercial reason too. Every change we make runs through automated tests, and the bill for running them was a fast-growing line in our costs. A small European server costs less than that bill alone did, and it does other work as well.

There is also a quieter benefit. Any system that has been running for a while accumulates things nobody has looked at lately, and a migration is one of the few occasions you are forced to examine every piece and ask whether it still does what it was meant to. We came out of it with a tidier setup than we went in with, which was not the goal but is worth having.

But the reason that decided it was simpler. A code repository is not a filing cabinet. It is where the work is reviewed, where the checks run, and where the record of every decision lives. Keeping all of that with a single supplier, in a foreign jurisdiction, means living with answers you did not write: what happens if access is suspended, what the terms permit your code to be used for, what changes next year without your agreement.

Those are not predictions. They are questions we could not answer about the most valuable thing we own. Now we can.

If you have been putting one off

Ours was never hard. It was boring, and it looked risky — days of invisible work with nothing to show a customer at the end, and a real chance of getting stuck halfway. So it lost to whatever was in front of us, every time.

The reasons yours never reached the top of the list may not apply any more.

Our code sits on a machine in Europe, on software anyone can read, in a form we could move again tomorrow. That is what we offer you, too: not a promise that we will behave well, but an arrangement where you never have to find out.

— The Oneva Team

KEEP READING

Interested in Oneva? Join the waitlist or get started with an access code.