{
  "site": {
    "title": "Tools",
    "tagline": "small things, built well",
    "author": "Patrick Kehoe",
    "origin": "https://tools.patrickkehoe.com",
    "intro": "Things I made because I wanted them to exist. Each one runs entirely in your browser \u2014 nothing uploaded, no account, no tracking beyond a page count.",
    "homeUrl": "https://patrickkehoe.com",
    "repoUrl": "https://github.com/g00df00t/tools"
  },
  "tools": [
    {
      "slug": "lord-of-the-gains",
      "title": "Lord of the Gains",
      "blurb": "The 3-day full-body program I actually run, as a logger \u2014 sets, rest timer, and the setup cue for every lift. Fork it and swap in your own.",
      "tags": [
        "training",
        "log"
      ],
      "preview": "/previews/lord-of-the-gains.jpg",
      "published": "2026-08-24",
      "previewDark": "/previews/lord-of-the-gains-dark.jpg"
    },
    {
      "slug": "table-to-chart",
      "title": "Table to Chart",
      "blurb": "Paste a table out of a research PDF, a spreadsheet or a web page and get a chart worth putting in a deck \u2014 plus a link that carries the data.",
      "tags": [
        "charts",
        "finance"
      ],
      "preview": "/previews/table-to-chart.jpg",
      "published": "2026-08-23",
      "previewDark": "/previews/table-to-chart-dark.jpg"
    }
  ],
  "projects": [
    {
      "title": "Koraki",
      "url": "https://www.korakiwatch.com",
      "blurb": "Six books, one set of analyst picks. A live experiment in what exit rules do to conviction \u2014 fixed stop, ratcheting, trailing, hybrid, plain hold, and what I actually traded, all scored against SPY. The stopping criteria were published before the results.",
      "status": "running"
    }
  ]
}
