
/copy output, so it's clearer to the humans reading it where it came from.
3 November 2026 · 3m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
/copy output, so it's clearer to the humans reading it where it came from.
3 November 2026 · 3m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
Adding Pushover notifications to Amp
Writing a custom plugin to send a Pushover push notification when Amp is waiting for input.
3 November 2026 · 1m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
Thirteen backlogs in a trenchcoat: Analysing Renovate's many requests
What we've found by investigating the different sources of work the Renovate project has, and how we're hoping to improve prioritisation going forwards.
30 October 2026 · 24m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
type and const for known constant values in Typescript.
28 October 2026 · 1m
www.jvt.me • by Jamie Tanna
Adding date-based pagination to my site
Announcing support for date-based pagination on my site, and the end of very long paginated lists of content.
28 October 2026 · 1m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
Lukewarm recommendations for improving AI agents' interactions with your projects
A few small recommendations we've found with Renovate to improve how AI agents contribute to the codebase.
25 October 2026 · 7m
www.jvt.me • by Jamie Tanna

Writing to AWS S3 from Fly.io (in Go)
How to use OpenID Connect to authenticate to AWS from Fly.io, without long-lived credentials in Go.
18 October 2026 · 4m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
Making an optional, required, status check with GitHub Actions
Avoiding the dreaded Expected — Waiting for status to be reported when trying to make a status check optional.
16 October 2026 · 7m
www.jvt.me • by Jamie Tanna
tmux to your Xorg session
How to stop Can't open display: (null) errors blocking you interacting with Xorg in tmux, for instance after an X crash.
16 October 2026 · 2m
www.jvt.me • by Jamie Tanna
Adding Pushover notifications to Claude Code
Writing a custom hook to convert a 'Claude is waiting for input' to a Pushover push notification.
12 October 2026 · 2m
www.jvt.me • by Jamie Tanna

jq
How to take a pretty-printed JSON string and replace it with a minifed JSON string using jq.
8 October 2026 · 1m
www.jvt.me • by Jamie Tanna
Gotcha: GitHub Custom Properties are public
A known documented, but maybe lesser known, fact about GitHub Custom Properties' values and descriptions being available to anyone with read access.
8 October 2026 · 2m
www.jvt.me • by Jamie Tanna

Authoring Markdown externally and getting even 'prettier' output in Slack with md2slack
Writing a tool, using Slack Block Kit, to write really pretty Slack messages, with syntax highlighting, tables and more.
30 September 2026 · 3m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
Uploading a large OpenTelemetry trace to a local OTLP/HTTP traces receiver
How to take a newline-delimited (.ndjson/.jsonl) file with OpenTelemetry traces inside of it, and ingest it into a local OTLP/HTTP traces receiver.
30 September 2026 · 1m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
Getting a full-width PR review pane on GitHub temporary private forks
How to improve your code review experience on a temporary private forks on GitHub, by making sure that the code is showed at the maximum page width.
23 September 2026 · 1m
www.jvt.me • by Jamie Tanna
Looking back at my first year as the Renovate Project Lead
Reviewing some of the key highlights of my last year working as the Renovate Project Lead, and showing some stats about the project, its community and myself.
21 September 2026 · 21m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
Updating apk add and apt install definitions in Dockerfiles with Renovate
Sharing that Renovate 44.103.0 automagically parses apk add and apt install commands inside a Dockerfile.
18 September 2026 · 3m
www.jvt.me • by Jamie Tanna
Performing per-environment staged rollouts of dependency updates with Renovate
How to gradually stage upgrades across environments (stored across multiple branches or on a single branch) with Renovate.
8 September 2026 · 6m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna

Determining if your branch is part of a GitHub Stacked PR
How to work out whether you're on a branch which is part of a Stacked PR, and what position you are in the stack.
26 August 2026 · 2m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
My new workflow for local code review with tuicr
How I'm currently reviewing code from the terminal, using tuicr.
25 August 2026 · 5m
www.jvt.me • by Jamie Tanna
Updating dependent branches when rebasing, automagically
How to use git rebase --update-refs to update dependent branches when rebasing.
25 August 2026 · 2m
www.jvt.me • by Jamie Tanna
What commit did I branch off from?
Using git merge-base to work out what commit a given branch was branched off from.
23 August 2026 · 1m
www.jvt.me • by Jamie Tanna
I'm on Fallthrough: A Modest Proposal Proposal
Announcing my appearance as a co-host on Fallthrough, talking about the Go proposal proposal and many other things.
22 August 2026 · 1m
www.jvt.me • by Jamie Tanna
Announcing some improvements to renovate-pretty-log-tui
Shipping some large changes to my local tooling for interacting with Renovate debug logs.
17 August 2026 · 2m
www.jvt.me • by Jamie Tanna
Why I still hand write my commit messages
Explaining why I still spend a lot of time writing my commit messages by hand.
17 August 2026 · 6m · Popular post
www.jvt.me • by Jamie Tanna
GopherCon UK 2026
A writeup of the GopherCon UK 2026 conference.
14 August 2026 · 15m
www.jvt.me • by Jamie Tanna
Finding which PRs have been taken out of the Merge Queue due to failed status checks
How to check which PRs were removed from the Merge Queue due to failed status checks, via the GraphQL API.
11 August 2026 · 2m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna
How much AI can a maintainer get away with using without losing their humanity?
Thinking about the onslaught of AI-generated contributions, and if there is space for maintainers to "fight fire with fire".
2 August 2026 · 8m · 🤖 with some LLM-derived content · Popular post
www.jvt.me • by Jamie Tanna
Merging the default branch into a PR, from the API
How to use the GitHub API to merge main (or the default branch) into a given PR, from the API.
30 July 2026 · 2m
www.jvt.me • by Jamie Tanna
newRootPath to reduce overly nested paths for HTTP files being synced with Vendir.
21 July 2026 · 1m · 🤖 with some LLM-derived content
www.jvt.me • by Jamie Tanna


I'm on Fallthrough: He Who Controls the Source
Announcing my appearance as a co-host on Fallthrough, talking about a mix of current affairs, including SHai-Hulud, the Open Source Resistance and more.
16 May 2026 · 1m
www.jvt.me • by Jamie Tanna
Caveats around using Libyears
Why taking the Libyear metric at face value can mislead you, and suggesting a new metric 'Tempered Libyears'.
14 May 2026 · 5m
www.jvt.me • by Jamie Tanna
I hate the recent open-source rise
Why I'm worried about folks using the term open-source and some minimal research into why it's wrong.
12 May 2026 · 3m · Popular post
www.jvt.me • by Jamie Tanna
NPM_TOKEN set to run
Why you may be seeing Failed to replace env in config: ${NPM_TOKEN} if you don't have an NPM_TOKEN set.
5 May 2026 · 1m
www.jvt.me • by Jamie Tanna
Configuring Renovate to only suggest updates that match your go directive
How to make sure that Renovate's updates to Go modules keep you within the minor version of your go directive.
2 May 2026 · 4m
www.jvt.me • by Jamie Tanna
I'm on Fallthrough: No Country for Old Maintainers
Announcing my appearance as a co-host on Fallthrough, talking about a mix of current affairs, including OAuth, maintainer burnout, of course some AI and more.
25 April 2026 · 1m
www.jvt.me • by Jamie Tanna
A deep dive into the wild world of GitHub Actions' tagging formats
Inside the ways that GitHub Actions' versioning works, and how we improved Renovate's support.
24 April 2026 · 7m · Popular post
www.jvt.me • by Jamie Tanna
I'm on Fallthrough: Supply Chain Reaction
Announcing my appearance as a guest co-host on Fallthrough, talking about supply chain security, AI, Claude Mythos, and many more topics.
18 April 2026 · 1m
www.jvt.me • by Jamie Tanna
Setting up Neovim with the Debug Adapter Protocol for Javascript/Typescript
How to use Neovim, nvim-dap, Mason and js-debug-adapter to add debugging capabilities for a Javascript/Typescript application.
17 April 2026 · 2m
www.jvt.me • by Jamie Tanna
How to build a git diff driver
How to write an external tool for git diff to delegate complex diffs to.
11 April 2026 · 3m
www.jvt.me • by Jamie Tanna
Using oasdiff for rich Git diffs of OpenAPI spec changes
How to configure git diff to use oasdiff's rich changelog on changes to OpenAPI specs.
11 April 2026 · 2m
www.jvt.me • by Jamie Tanna
Pointing lazy.nvim to a Pull Request
How to configure lazy.nvim to reference a Pull Request for a given plugin.
22 March 2026 · 1m
www.jvt.me • by Jamie Tanna
My workflow for testing Renovate config changes (2026 edition)
A runthrough of my process for testing more complex Renovate config changes where I want confidence up-front.
8 March 2026 · 11m
www.jvt.me • by Jamie Tanna
You're currently viewing page 1 of 19, of 923 posts.
Every post, by when it was posted. The brighter a month, the more was posted that month.