Arc 5 Quest 20

The Free Paths

Decentralization, Radicle, alternatives and the future of Git

The Master Archivist awaits you at dawn, before the great doors of the Citadel. He wears neither his ceremonial robes nor his usual teaching garments. Today, he is dressed in a simple travel cloak, an ancient lantern in hand. Without a word, he opens the doors and beckons you to follow. For the first time since the beginning of your apprenticeship, you leave the walls of the Citadel.

Beyond the ramparts, the wild lands stretch as far as the eye can see. No paved roads, no watchtowers, no guilds. Just free paths, traced by those who refuse to follow the imposed routes.

"Look around you carefully. Here, no guild governs. No central Forge, no single authority. The archivists who live in these lands have chosen another path - the free path. They share their chronicles directly with each other, as equals, without intermediaries. This is the last lesson I have to teach you. And it may be the most important of all."

The limits of the centralized world

Throughout your journey, you have used platforms like GitHub, GitLab, Bitbucket. These forges are powerful, but they have a fundamental flaw: they are centralized.

The single point of failure

When GitHub goes down - and it happens - millions of developers worldwide find themselves blocked. No more push, no more pull, no more CI/CD. Work stops.

This is called a Single Point of Failure. The entire infrastructure depends on a single place. If that place goes down, everything goes down.

Corporate control

GitHub has belonged to Microsoft since 2018. GitLab is a publicly traded company. These platforms can:

  • Change their terms of service overnight
  • Raise prices or remove free features
  • Delete repositories for political, legal or commercial reasons
  • Restrict access to certain countries (economic sanctions)

Vendor lock-in

You use GitHub Actions? GitHub Pages? GitHub Packages? The more platform-specific services you use, the more you are locked in. Migration becomes increasingly difficult.

"The great guilds offer protection and comfort. But at what price? Whoever entrusts all their chronicles to a single guild depends entirely on its goodwill. And guilds are not eternal."

The irony of Git - a distributed tool used in a centralized way

Here is something fascinating: Git was designed to be distributed. Linus Torvalds created it in 2005 precisely to avoid depending on a central server (after the breakup with BitKeeper).

In Git, every clone is a complete repository. Every developer has the entire history. In theory, there is no "main server" - just peers synchronizing their copies.

And yet, what did we do? We re-centralized the entire system around GitHub. The origin became the single source of truth. Pull Requests exist only on the platform. Issues, wikis, CI - everything is on a central server.

What Git allows:              What we do in practice:

  Alice <-> Bob                  Alice -> GitHub <- Bob
    |         |                            |
  Carol <-> Dave                        Carol
                                           |
  (peer-to-peer)                         Dave

                                 (centralized star)

It's like having a car capable of flying, but only using it to park.

"Git was born free. It was designed so that every archivist would be the equal of any other. But the great guilds turned this free tool into a system of dependence. It's not Git's fault - it's ours."

Radicle - peer-to-peer collaboration

Radicle is a code collaboration protocol that works peer-to-peer. No central server, no account to create, no company controlling the infrastructure.

How it works

Radicle is built on Git. It's not a replacement for Git, it's a collaboration layer that uses Git as its foundation:

  • No central server: repositories are shared directly between peers
  • Cryptographic identity: no username/password. You are identified by a cryptographic key (like SSH, but for your identity)
  • Patches instead of Pull Requests: contributions are made through "patches" that are proposed, discussed and merged peer to peer
  • Seeds: nodes that stay online to improve availability (like "seeds" that keep data accessible)

Basic commands

# Initialize a Radicle project in an existing Git repo
rad init

# Publish your repo to the network
rad push

# Retrieve a project from the network
rad clone rad:<project-identifier>

# Synchronize with peers
rad sync

# Propose a patch (equivalent of a Pull Request)
rad patch create

# List pending patches
rad patch list

What changes compared to GitHub

Aspect GitHub Radicle
Hosting Microsoft's servers Peer-to-peer (no central server)
Identity User account Cryptographic key
Contributions Pull Requests Patches
Availability Depends on GitHub Depends on peers and seeds
Censorship Possible (the company controls) Very difficult (decentralized)
Cost Free with limits / paid Entirely free and open

The current state of Radicle

Let's be honest: Radicle is still young. The community is small but passionate. The interface is not as polished as GitHub. Some features are still missing.

But the idea is powerful. And like every movement that starts small - Linux, Git itself, the Web - sometimes a determined community is all it takes to change the world.

"Radicle is like the first villages beyond the walls. Small, imperfect, but free. They need no one's permission to exist. And one day, who knows - perhaps these villages will become cities greater than the ones we know."

Other alternative paths

Radicle is not the only alternative. Other projects explore different philosophies:

Forgejo / Gitea - Lightweight self-hosting

Forgejo (community fork of Gitea) is a forge you can host yourself on a simple server. Interface similar to GitHub, lightweight, fast, and entirely under your control.

  • Philosophy: "your code, your server, your rules"
  • Advantage: compatible with GitHub workflows (including Actions via Forgejo Actions)
  • Ideal for: teams that want GitHub's comfort without the dependence

SourceHut - Radical minimalism

SourceHut (sr.ht) is a minimalist forge created by Drew DeVault. No mandatory JavaScript, email-based workflow (patches by email, like the Linux kernel).

  • Philosophy: "the Web should be simple"
  • Advantage: fast, accessible, privacy-respecting
  • Ideal for: developers who prefer the command line and email

Fossil - The integrated alternative

Fossil is not based on Git - it's a completely different version control system, created by Richard Hipp (the creator of SQLite). It natively includes a wiki, a ticket system, and a forum.

  • Philosophy: "one tool for everything"
  • Advantage: a single binary, everything is integrated, no external services needed
  • Ideal for: small projects that want a complete and self-contained tool

Software Heritage - The universal archive

Software Heritage is a project by the INRIA foundation that archives all of humanity's public source code. Its goal is not collaboration but preservation - ensuring that code never disappears.

"There are as many paths as there are archivists. Some prefer the solitude of their own forge, others the minimalism of scrolls and mail. Others still create eternal libraries that will outlive the guilds themselves. Every path has its value."

The future of version control

The world of version control doesn't stop where we are. Here are the trends shaping the future:

Artificial intelligence in development

AI tools are already transforming the way we write and review code:

  • Code assistants (Copilot, Claude, etc.): real-time code generation and suggestions
  • Automated review: AIs that analyze Pull Requests and suggest improvements
  • Conflict resolution: AI could one day help resolve complex merge conflicts
  • Test generation: automatically creating tests from code

Ever-larger repositories

Git is evolving to handle increasingly massive projects:

  • Git LFS (Large File Storage): store large files outside the repository
  • Partial clone: clone a repository without downloading the entire history
  • Sparse checkout: retrieve only the folders you need
  • git maintenance: automatic optimization tasks to keep large repos performant
# Partial clone - only download objects when needed
git clone --filter=blob:none <url>

# Sparse checkout - retrieve only certain folders
git sparse-checkout init
git sparse-checkout set src/ docs/

# Automatic maintenance
git maintenance start

The Monorepo vs Polyrepo debate

A great debate stirs the development world:

  • Monorepo: all the company's code in a single giant repository (Google, Meta, Microsoft do this)
  • Polyrepo: one repository per project/service (the majority of companies)

Each approach has its strengths. The monorepo simplifies code sharing and cross-cutting refactors. The polyrepo offers independence and simplicity.

GitOps - Infrastructure driven by Git

GitOps is a philosophy where all infrastructure is described in files versioned with Git. Modifying infrastructure means making a commit. Deploying means merging.

  • The Git repository becomes the source of truth for infrastructure
  • Deployments are automatic and auditable
  • Rollbacks are as simple as a git revert

"The world never stops evolving. New forges will appear, new philosophies will be born. But the foundations you have learned - the commit, the branch, the merge, the history - these foundations are eternal. They will outlive all trends and all guilds."

Retrospective - Your complete journey

Take a moment to measure how far you've come. You arrived at this Citadel not knowing what a commit was. Look where you are now.

Arc 1 - The Versioner's Foundations

You learned the basics of Git - the foundations upon which everything rests:

  • git init, git add, git commit - create and record history
  • git status, git log, git diff - observe and understand history
  • git clone - retrieve another's history
  • The .gitignore file - know what should not be archived

Arc 2 - The Collaborator's Paths

You learned to work with others:

  • git branch, git switch, git merge - create and merge branches
  • git rebase - rewrite history cleanly
  • git remote, git push, git pull - synchronize with the world
  • Pull Requests and code review - collaborate with rigor

Arc 3 - The Advanced Arts

You mastered advanced techniques:

  • git stash - set aside work in progress
  • git bisect - track down a bug through history
  • git blame - find the author of each line
  • git cherry-pick - pick a specific commit
  • git tag - mark important versions
  • Git hooks - automate checks

Arc 4 - The Automated Forges

You discovered automation:

  • Continuous Integration (CI) - automatically test on every push
  • Continuous Deployment (CD) - automatically deploy to production
  • GitHub Actions - write automation workflows
  • The other forges - GitLab CI, Bitbucket Pipelines, Jenkins

Arc 5 - Beyond the Guilds

And now, you have seen beyond:

  • The limits of centralization
  • The irony of Git used in a centralized way
  • Radicle and peer-to-peer collaboration
  • Alternatives and the future of version control

Twenty quests. Five arcs. Dozens of commands. Hundreds of concepts. And yet, it all comes down to a single idea: capturing the history of code so nothing is ever lost. It's simple. It's beautiful. And now, you have mastered it.

Final exercise - My journey

For your final trial, create a repository that contains your personal reflection on everything you have learned:

  1. Create a my-journey repository
  2. Write a my-journey.txt file with your personal reflection
  3. Commit with a meaningful message
  4. Tag it with v1.0.0
  5. Run the verification to receive your title of Master Versioner

"For your final trial, I am not asking you to solve a technical problem. I am asking you something harder: step back and reflect on your journey. Create a repository that contains your personal reflection on everything you have learned. This is your first act as a Master Versioner."

Step 1 - Create the repository

mkdir my-journey
cd my-journey
git init -b main

Step 2 - Write your reflection

Create a my-journey.txt file and write your personal reflection. There is no imposed format. Here are some ideas to inspire you:

  • What surprised you the most about Git?
  • Which command or concept did you find the most difficult?
  • How do you plan to use Git in your future projects?
  • What do you take away from this adventure?

This is your text. Write what you want, in your own words.

Step 3 - Commit with a meaningful message

git add my-journey.txt
git commit -m "My journey as a Master Versioner"

Choose a commit message that has meaning for you. This is your first commit as a Master Versioner - it deserves a beautiful message.

Step 4 - Tag your version

git tag -a v1.0.0 -m "My first version as a Master Versioner"

This tag marks the beginning of your new chapter. Version v1.0.0 - stable, complete, ready.

Step 5 - Run the verification

Bash (Linux / macOS / Git Bash on Windows):

bash verifier.sh

PowerShell (Windows):

.\verifier.ps1

The final ceremony

The sun sets over the wild lands. The Master Archivist stops at the top of a hill overlooking the entire kingdom. From there, you can see the Citadel in the distance, the Forge towers, the roads between the guilds, and the free paths that wind toward the horizon.

He turns to you. His gaze is different - no longer that of a master to his student, but that of an equal to his peer.

"The day you arrived at the Citadel, you didn't even know what a commit was. You looked at scrolls without understanding the symbols. You were afraid of losing your work, afraid of breaking something, afraid of the unknown."

"And look at you now."

"You know how to create chronicles and protect them for eternity. You know how to weave branches and merge them with grace. You know how to travel through time, track errors through history, and resurrect the past when the present shatters."

"You know how to collaborate with other archivists, resolve conflicts, and build together works greater than what a single mind could imagine."

"You know how to forge automated pipelines that test, verify and deploy without rest, day and night, without ever failing."

"And today, you have seen beyond the walls. You know that guilds are not eternal, that freedom is a choice, and that the future belongs to those who build it."

The Master Archivist slowly unfastens the badge he wears on his left shoulder - a quill intertwined with a tree whose branches form an infinite network. It is the symbol of the Master Versioners, worn by the guardians of the kingdom's chronicles for generations.

He places it on your shoulder.

"I name you Master Versioner - guardian of the kingdom's chronicles, master of branches and merges, weaver of time, forger of eternal pipelines, and walker of the free paths."

"This title is not given to you. You earned it. Every commit, every branch, every merge, every resolved conflict - you are the one who traced this path."

"But remember: a Master Versioner is never at the end of their apprenticeship. The world evolves, tools change, new philosophies are born. Your curiosity is your most powerful weapon. Never stop learning. Never stop exploring."

"Now, go. The kingdom needs you. Your own chronicles await. And they will be magnificent."

The Master Archivist smiles at you one last time, then descends alone toward the Citadel, his lantern swaying gently in the twilight.

You stay a moment at the top of the hill. Before you, the kingdom stretches as far as the eye can see - the guilds, the forges, the free paths, and beyond, lands that no one has yet explored.

You breathe deeply. You are ready.

The Versioner's Chronicles are just beginning.

Concept summary

Concept Description
Centralization Dependence on a single server/platform
Decentralization Architecture without a central point of control
Radicle Peer-to-peer collaboration protocol on Git
Patches Decentralized contributions (alternative to Pull Requests)
Seeds Radicle nodes that improve availability
Forgejo / Gitea Lightweight self-hosted forges
SourceHut Minimalist email-based forge
Fossil Version control system with built-in wiki/tickets
Software Heritage Universal source code archive
Git LFS Managing large files in Git
Partial clone Clone without the full history
Sparse checkout Retrieve only certain folders
GitOps Infrastructure managed via Git
Monorepo All code in a single repository

End of the Versioner's Chronicles.

Thank you for completing these twenty quests. May your commits be clear, your branches clean, and your merges conflict-free.