Is it bad practice to use Bootstrap in production?

It entirely depends on your unique UX needs. I like bootstrap for rapid prototyping proofs of concept. But I agree to previously mentioned, if you need a snowflake bootstrap will only hinder you workflow and overall maintenance. Use prudently.

Also, some will say that it does not make sense to reinvent the wheel. Sure, but not all UI are wheels.

Bootstrap is great for quickly throwing together a prototype or internal tool, but it is not intended for use on a production website (unless you want it to look like a Bootstrap website... I guess).

Bootstrap's way of doing things means fast development, but it makes zero sense for a uniquely designed website (ie. 99.999% of all websites). You're getting 150kb of styles out the gate, and then you'll start adding you own on top of them. So why would you start there?

You will sometimes see people claim that it's great for production sites, and point to the myth that Twitter used it themselves on their main website. This is false. Bootstrap was only ever designed for Twitter's internal tools. And that's the type of project it remains best at.

Worse than that, you also sometimes see inexperienced digital project managers demanding its use. They have heard the name, think it's cutting edge, and so want it on their website. Ugh.

If the site you're building a prototype or internal tool, it's fantastic. Otherwise, skip it. You don't need a bunch of unused styles clogging up your CSS and its presence on your unique website illustrates to me that you don't know what you're doing.

I would also recommend Tim G. Thomas's commentary on Bootstrap's strengths and weaknesses too, as he sums this up very well (starts at 17 minutes in, but the whole presentation is great).

I would not use Bootstrap for even prototyping. Its full of bad assumptions about how websites should use CSS.

For starters it uses pixel-based layouts and font-sizing which is the NUMBER ONE mistake every CSS person should avoid. (Use EM or percentages, Points for print). It also assigns margins inside containers which spells trouble if you are using pixel units on parents. You will often see Bootstrap layouts breaking through floats and parent divs because of that. Finally, it assumes that websites should be "gridded" then managed via floats which is unnecessary. By locking widths into pixel dimensions and then floating pixel unit layouts, you break the whole purpose of structure-content separation. The structure, layout and look of an application with bootstrap is more important than the flow of content. The user can no longer size fonts and text when they use pixels, and view of such layouts now is heavily dependent on zoom and float features now rather than expandable content/text blocks where the user's font size selections grow based on the user's viewport and device.

Bootstrap in that sense goes back to an OLDER 1999 view of the web and CSS by embracing the outdated visual priority of building web structures rather than the newer "content-is-king" view we developed using Web Standards and "scalable", text-based layouts after 2001. If they had reviewed the history they would have understood why CSS and websites changed in how text was displayed and how cross-browser decisions used to be made.

In that sense Bootstrap reinvented the wheel alright, created a square one when the round one was working just fine. :)