Mass Migration: ix.ai to egos.tech

Since it’s again spring, it was time for a clean-up project I’ve postponed for a long time: cleaning up ix.ai
.
Table of Contents
Migrating Projects (a.k.a. Git gymnastics)
The centerpiece of this clean-up was moving all relevant Git repositories from the old gitlab.com/ix.ai
namespace to the much cleaner and better-scoped gitlab.com/egos-tech
. Sounds simple, right?
Well, turns out that migrating dozens of repos while preserving pipelines, tags, issues (where relevant), and CI/CD setups… isn’t quite as plug-and-play as you might hope.
Some fun facts from the trenches:
- I used a combination of
git clone --mirror
,git remote set-url
, andgit push --mirror
more times than I care to count. I ended up relying more and more onforks
or changing the namespace of the project. - Yes, I briefly considered writing a migration script. Yes, I also considered setting my laptop on fire instead.
- GitLab doesn’t let you bulk move or rename groups (yet), so everything was done project-by-project—with a few awkward moments when environment variables had to be manually adjusted.
CI/CD: from Spaghetti to Simplicity
Most legacy projects came with lovingly hand-crafted .gitlab-ci.yml
files—some of which dated back to the Jurassic period of GitLab CI. These have now been:
- Rebased on the shared
ci-image
, which includes sane defaults for Python, Node.js, and general Linux-based builds. - Refactored to use a consistent pipeline structure:
test
,lint
,build
, andrelease
stages, with caching that actually works™. - Switched to centralized Renovate Bot config to make dependency updates less chaotic and more predictable. (No more random MRs at 3AM on Sundays.)
Bonus: everything now runs faster, logs are easier to parse, and I actually trust the pipelines again.
Why egos-tech
?
The old ix.ai
group was kind of like that drawer in your kitchen where you find batteries, loose cables, and an instruction manual for a blender you no longer own.
It grew organically, lacked a clear scope, and had naming conventions ranging from cryptic to “please don’t ask”.
With egos-tech
, the goal is clarity: everything in there has a purpose, a home, and hopefully fewer legacy decisions haunting me at night. As a bonus, I also archived the mirrors under github.com/ix-ai
, so no more double-work.
What’s Next?
Now that the cobwebs have been cleared, I can actually:
- Start shipping updates to small CLI tools that have been dormant for too long.
- Open-source a few internal helpers I’ve been using privately (like the Docker builder cache setup that doesn’t suck).
- Maybe even write docs. (No promises.)