5 Signs Your Web App Needs a Rebuild, Not a Patch

How to tell the difference between technical debt you can live with and a codebase that's actively costing you money and customers.

Technical DebtArchitectureSMB

Content (raw — renderer coming soon)

{
  "root": {
    "type": "root",
    "format": "",
    "indent": 0,
    "version": 1,
    "children": [
      {
        "type": "paragraph",
        "format": "",
        "indent": 0,
        "version": 1,
        "children": [
          {
            "mode": "normal",
            "text": "Every engineering team carries technical debt. The question isn't whether you have it — it's whether it's slowing you down or actively breaking things. These five signs tell you when patching stops working.",
            "type": "text",
            "style": "",
            "detail": 0,
            "format": 0,
            "version": 1
          }
        ],
        "direction": "ltr"
      },
      {
        "type": "paragraph",
        "format": "",
        "indent": 0,
        "version": 1,
        "children": [
          {
            "mode": "normal",
            "text": "1. New features take 3x longer than they used to. If adding a button now requires touching 12 files and understanding 4 undocumented systems, your codebase is fighting you. This compounds: the longer you wait, the worse it gets.",
            "type": "text",
            "style": "",
            "detail": 0,
            "format": 0,
            "version": 1
          }
        ],
        "direction": "ltr"
      },
      {
        "type": "paragraph",
        "format": "",
        "indent": 0,
        "version": 1,
        "children": [
          {
            "mode": "normal",
            "text": "2. You're afraid to deploy on Fridays. Fear of deployment is a symptom of a system that's too fragile and too coupled. If your team won't ship before a weekend, that fear has a real cost.",
            "type": "text",
            "style": "",
            "detail": 0,
            "format": 0,
            "version": 1
          }
        ],
        "direction": "ltr"
      },
      {
        "type": "paragraph",
        "format": "",
        "indent": 0,
        "version": 1,
        "children": [
          {
            "mode": "normal",
            "text": "3. Bugs in one area break unrelated features. This is the hallmark of an architecture that grew without intentional boundaries. When a change to the invoice module breaks the user profile page, something is fundamentally wrong.",
            "type": "text",
            "style": "",
            "detail": 0,
            "format": 0,
            "version": 1
          }
        ],
        "direction": "ltr"
      },
      {
        "type": "paragraph",
        "format": "",
        "indent": 0,
        "version": 1,
        "children": [
          {
            "mode": "normal",
            "text": "4. Onboarding a new engineer takes months, not days. If your codebase requires months of tribal knowledge transfer before someone is productive, that knowledge is trapped in the code rather than expressed by it.",
            "type": "text",
            "style": "",
            "detail": 0,
            "format": 0,
            "version": 1
          }
        ],
        "direction": "ltr"
      },
      {
        "type": "paragraph",
        "format": "",
        "indent": 0,
        "version": 1,
        "children": [
          {
            "mode": "normal",
            "text": "5. You're running on unsupported dependencies. Running Node 14, React 16, or an end-of-life database isn't just a security risk — it means every new library you want to use is blocked.",
            "type": "text",
            "style": "",
            "detail": 0,
            "format": 0,
            "version": 1
          }
        ],
        "direction": "ltr"
      },
      {
        "type": "paragraph",
        "format": "",
        "indent": 0,
        "version": 1,
        "children": [
          {
            "mode": "normal",
            "text": "If you recognize two or more of these, a targeted rebuild is almost always cheaper than continuing to patch. The key word is \"targeted\" — a full rewrite rarely ends well. Identify the 20% of the system causing 80% of the pain, and start there.",
            "type": "text",
            "style": "",
            "detail": 0,
            "format": 0,
            "version": 1
          }
        ],
        "direction": "ltr"
      }
    ],
    "direction": "ltr"
  }
}