DEV Community

Cover image for Migrating Bootstrap 3 to 5 with Claude Code: every gotcha that isn't in the docs
Nikolay Kazmin
Nikolay Kazmin

Posted on

Migrating Bootstrap 3 to 5 with Claude Code: every gotcha that isn't in the docs

I started Domestina in 2014, and like many apps from that period, the first version was built on Bootstrap 3.1.

At some point we updated to 3.3, but after that the frontend stack mostly froze, because the migration never made sense commercially. It always looked like 1–2 weeks of focused work, a lot of regression risk, and no visible customer value — while the backlog was full of things that customers actually asked for.

Then came Opus 4.6 and over the last few months I managed to ship a large part of the feature backlog that had been sitting around for months and years. That finally gave me room to attack some old technical debt, and Bootstrap, as by far the oldest lib that I used, was a natural place to start.

The migration was done in two very different phase.The first part was surprisingly fast. I gave my custom orchestrator a structured task brief, let it run, and came back about 4 hours later to a mostly working Bootstrap 5 bundle. It handled the mechanical work pretty well: dependency changes, the new SCSS pipeline, class renames, react-bootstrap 2.x, glyphicon → bootstrap-icons, and so on.

The second part was slower and much more manual: about 2 days of going page by page with Claude, fixing the things that only show up when a real, old production app starts running on Bootstrap 5.

I think that with the new AI tools, we'll have a lot of people starting to pay off technical debt. That's why I decided to summarize and share my experience with this migration with the hope that it will save some time to a lot of fellow devs.

Paste it into Claude, ChatGPT, Cursor, etc. before starting a Bootstrap 3 → 5 migration and it should save you from a lot of the weird bugs that are not obvious from the official docs.

Repo: https://github.com/kazmin/bootstrap-3-to-5-migration-prompt

Framework-agnostic. MIT licensed. PRs welcome.

Top comments (0)