A Dev Environment for Every Branch

Speaker:
Jason Axelson


Abstract:

What if every branch had its own server, its own database, and its own HTTPS URL — ready the moment you created it? That’s what git worktrees make possible, but git worktree add is not enough, you also need to build a workflow around it.

In this talk, I’ll show how I built a workflow that makes worktrees practical for Phoenix apps: copying _build artifacts with copy-on-write, cloning the Postgres database, automatically assigning ports so your servers never collide, and giving every branch its own URL — like https://my-feature.local (look Ma, no port!). I’ll also show how I used LLMs to build the script itself, and how you can prompt your way to a version that fits your personal workflow.

Key takeaways:

  • git worktrees lower the cost of context switching, but only with intentional tooling around them useful
  • we shouldn’t settle for not having isolated dev environments for each branch, one single shared dev environment is too limiting
  • LLMs are excellent at generating and adapting workflow automation scripts for your personal workflow

Target audience:

  • Any Elixir developer who has felt the friction of switching branches mid-flow — whether juggling features, hotfixes, experiments, or PR reviews. Developers who’ve tried git worktrees and given up will find a complete, practical workflow here. Comfort with the terminal is helpful but no shell scripting experience required.

Audience:

[“intermediate”]

Level:

Tags: devex workflow isolation