TIL
Why bundle exec actually matters
Spent way too long on a build that worked for me but broke for a teammate. Same repo, different output.
Turned out I was running the tool straight (jekyll build), which picks up whatever version is installed globally. That global version was newer than what the project pinned.
bundle exec runs the command against the versions in Gemfile.lock instead:
bundle exec jekyll build
Now everyone runs the exact versions the project agreed on, not whatever happens to be on their machine. Lesson: if a project has a Gemfile.lock, prefix Ruby tools with bundle exec.