[
 {
  "rank": 1,
  "name": "Git",
  "url": "/p/git/",
  "category": "Git and code hosting",
  "recommenders": 59,
  "warners": 8,
  "rising": 4.58,
  "loved_for": [
   "Powerful commands",
   "Reliable and proven"
  ],
  "caveat": "Confusing UX"
 },
 {
  "rank": 2,
  "name": "Jujutsu",
  "url": "/p/jujutsu/",
  "category": "Git and code hosting",
  "recommenders": 56,
  "warners": 1,
  "rising": 2.25,
  "loved_for": [
   "Git compatibility",
   "History editing"
  ],
  "caveat": "GitHub team workflows"
 },
 {
  "rank": 3,
  "name": "GitLab",
  "url": "/p/gitlab/",
  "category": "Git and code hosting",
  "recommenders": 36,
  "warners": 18,
  "rising": 19.75,
  "loved_for": [
   "Self-hosting",
   "CI/CD"
  ],
  "caveat": "Slow, cluttered UI"
 },
 {
  "rank": 4,
  "name": "Codeberg",
  "url": "/p/codeberg/",
  "category": "Git and code hosting",
  "recommenders": 35,
  "warners": 24,
  "rising": 14.76,
  "loved_for": [
   "GitHub alternative",
   "No-AI policy"
  ],
  "caveat": "LLM ban"
 },
 {
  "rank": 5,
  "name": "Magit",
  "url": "/p/magit/",
  "category": "Git and code hosting",
  "recommenders": 32,
  "warners": 3,
  "rising": 2.15,
  "loved_for": [
   "Better git UX",
   "Essential Emacs package"
  ],
  "caveat": "Performance"
 },
 {
  "rank": 6,
  "name": "GitHub",
  "url": "/p/github/",
  "category": "Git and code hosting",
  "recommenders": 26,
  "warners": 83,
  "rising": 3.44,
  "loved_for": [
   "Reliable for some",
   "Free tier"
  ],
  "caveat": "Outages"
 },
 {
  "rank": 7,
  "name": "Fossil",
  "url": "/p/fossil/",
  "category": "Git and code hosting",
  "recommenders": 22,
  "warners": 1,
  "rising": 11.38,
  "loved_for": [
   "All-in-one",
   "Easy self-hosting"
  ],
  "caveat": "Small ecosystem"
 },
 {
  "rank": 8,
  "name": "Tangled",
  "url": "/p/tangled/",
  "category": "Git and code hosting",
  "recommenders": 21,
  "warners": 2,
  "rising": 9.05,
  "loved_for": [
   "Federated design",
   "Self-hosted knots"
  ],
  "caveat": "No private repos"
 },
 {
  "rank": 9,
  "name": "lazygit",
  "url": "/p/lazygit/",
  "category": "Git and code hosting",
  "recommenders": 18,
  "warners": 2,
  "rising": 0.09,
  "loved_for": [
   "Terminal workflow fit",
   "Fast, easy git"
  ],
  "caveat": "Advanced merges"
 },
 {
  "rank": 10,
  "name": "SourceHut",
  "url": "/p/sourcehut/",
  "category": "Git and code hosting",
  "recommenders": 18,
  "warners": 8,
  "rising": 8.38,
  "loved_for": [
   "SSH-able CI",
   "Email workflow"
  ],
  "caveat": "Maintainer controversy"
 },
 {
  "rank": 11,
  "name": "Radicle",
  "url": "/p/radicle/",
  "category": "Git and code hosting",
  "recommenders": 10,
  "warners": 0,
  "rising": 4.36,
  "loved_for": [
   "Decentralization",
   "GitHub alternative"
  ],
  "caveat": "Contributor barrier"
 },
 {
  "rank": 12,
  "name": "Mercurial",
  "url": "/p/mercurial/",
  "category": "Git and code hosting",
  "recommenders": 10,
  "warners": 0,
  "rising": -0.62,
  "loved_for": [
   "Simpler UX",
   "Team satisfaction"
  ],
  "caveat": "Git dominance"
 },
 {
  "rank": 13,
  "name": "Perforce",
  "url": "/p/perforce/",
  "category": "Git and code hosting",
  "recommenders": 7,
  "warners": 0,
  "rising": 4.35,
  "loved_for": [
   "Large binaries",
   "Scales to monorepos"
  ],
  "caveat": "Expensive"
 },
 {
  "rank": 14,
  "name": "Lore",
  "url": "/p/lore/",
  "category": "Git and code hosting",
  "recommenders": 6,
  "warners": 0,
  "rising": -1.96,
  "loved_for": [
   "Large binary files",
   "Avoids Git"
  ],
  "caveat": "LLM-generated docs"
 },
 {
  "rank": 15,
  "name": "Gerrit",
  "url": "/p/gerrit/",
  "category": "Git and code hosting",
  "recommenders": 6,
  "warners": 0,
  "rising": 3.35,
  "loved_for": [
   "Code review",
   "Self-hosting"
  ],
  "caveat": "Learning curve"
 },
 {
  "rank": 16,
  "name": "Bitbucket",
  "url": "/p/bitbucket/",
  "category": "Git and code hosting",
  "recommenders": 6,
  "warners": 2,
  "rising": 4.67,
  "loved_for": [
   "Easy and clean",
   "Free private repos"
  ],
  "caveat": "Dropped features"
 },
 {
  "rank": 17,
  "name": "Sublime Merge",
  "url": "/p/sublime-merge/",
  "category": "Git and code hosting",
  "recommenders": 5,
  "warners": 0,
  "rising": 2.35,
  "loved_for": [
   "Hard to replace",
   "Speed"
  ],
  "caveat": "Slow development"
 },
 {
  "rank": 18,
  "name": "Graphite",
  "url": "/p/graphite/",
  "category": "Git and code hosting",
  "recommenders": 5,
  "warners": 1,
  "rising": -1.64,
  "loved_for": [
   "Stacked PRs",
   "Daily use"
  ],
  "caveat": "Pricing"
 },
 {
  "rank": 19,
  "name": "jjui",
  "url": "/p/jjui/",
  "category": "Git and code hosting",
  "recommenders": 5,
  "warners": 0,
  "rising": -0.31,
  "loved_for": [
   "Primary jj interface",
   "Simplifies jj"
  ],
  "caveat": "Inconsistent commands"
 },
 {
  "rank": 20,
  "name": "SourceGit",
  "url": "/p/sourcegit/",
  "category": "Git and code hosting",
  "recommenders": 4,
  "warners": 0,
  "rising": 0.02,
  "loved_for": [],
  "caveat": ""
 },
 {
  "rank": 21,
  "name": "Azure DevOps",
  "url": "/p/azure-devops/",
  "category": "Git and code hosting",
  "recommenders": 4,
  "warners": 1,
  "rising": 1.35,
  "loved_for": [],
  "caveat": ""
 },
 {
  "rank": 22,
  "name": "Codefloe",
  "url": "/p/codefloe/",
  "category": "Git and code hosting",
  "recommenders": 3,
  "warners": 0,
  "rising": 1.67,
  "loved_for": [],
  "caveat": ""
 },
 {
  "rank": 23,
  "name": "Entire",
  "url": "/p/entire/",
  "category": "Git and code hosting",
  "recommenders": 3,
  "warners": 1,
  "rising": 1.67,
  "loved_for": [],
  "caveat": ""
 },
 {
  "rank": 24,
  "name": "ArtifactFS",
  "url": "/p/artifactfs/",
  "category": "Git and code hosting",
  "recommenders": 3,
  "warners": 0,
  "rising": -0.98,
  "loved_for": [],
  "caveat": ""
 },
 {
  "rank": 25,
  "name": "Git worktree",
  "url": "/p/git-worktree/",
  "category": "Git and code hosting",
  "recommenders": 3,
  "warners": 1,
  "rising": 1.67,
  "loved_for": [],
  "caveat": ""
 }
]