Ten Years of Bootstrap
blog.getbootstrap.com
blog.getbootstrap.com
A negative effect of all these frameworks is that I work with more and more frontend devs that just don't know their way around (S)CSS, so if you throw them into a project that uses a framework they don't know or (gasp) hand-crafted CSS they are completely lost. Same thing with Javascript tooling btw, in a recent project a frontend dev wanted to rewrite the whole codebase because he was not familiar with Webpack and only knew vite (which is the new cool thing it seems), so he wasn't able to work with the existing code.
I try to do this for my own projects but there's gravitational pull toward frameworks in companies.
Its all well and good saying that, as long as you do not value your time.
Personally, I would rather use a reasonably up-to-date framework such as Bootstrap 5 because Bootstrap has already taken care of the majority of those CSS hacks that are often required to make things look right on various browsers.
And frankly, why re-invent the wheel ? Most "utilize modern css and js directly instead of relying on frameworks" likely ends up looking like "a lot of boilerplate with a few customisations". So why not use Bootstrap for all the boilerplate and spend your time more productively by focusing on the customisations ?
P.S. JS is not a strict requirement for Bootstrap, it can be used CSS-only. But one added benefit of Bootstrap 5 in particular is they've removed the jQuery dependency.
Making any large front end application WITHOUT a framework or a view library is just a bad idea, even today. There is nothing in the DOM or spec-wise that is equivalent to the power of React or Vue, period.
When it comes to CSS, the situation is better. Flexbox, CSS grids, ... have made creating CSS layouts extremely easy. So CSS kind of successfully brought in a lot of things that were directly exploitable by front-end developers.
To this day, HTML and the DOM are JUST NOT RAD for complex UI, period. Web components have a few nice ideas but a lot of flaws (especially support on IOS). Whether you build your own framework or use someone else library, you will absolutely need something that sits on top of the DOM for large front-end applications.
So it's not by choice that most front-end devs have to rely on a framework. It's because the standards are not good enough.
> I try to do this for my own projects but there's gravitational pull toward frameworks in companies.
A simple example. you need a mechanism to manage the life cycle of event handlers on your page, if your app uses the history API. If you do so then you've already started writing your own framework.
Web components failed to address a lot of stuff developers use view libraries for. That's why it is not that popular.
Except you'll build a framework. You'll add a bunch of classes for frequently used elements (nav, modals, buttons, etc), SASS variables, etc
They can't Google how to do something in your framework. They can't find component libraries that extend your framework. They probably can't find sandboxes that demonstrate every single one of your framework's use cases. The documentation of your framework is also likely to be worse than that of frameworks that have had tens of thousands man hours be put in their development and tens if not hundreds of thousands more battle testing them in production across a variety of projects.
The difference is instead of having your style in a single language (css) in a cohesive system, you have styles in both css and bootstrap and they often clash.
For example, in Bootstrap and other frameworks you'll always have JS components as well, for non-trivial concerns, such as providing carousels, lightbox functionality, tooltips, collapsibles, tabs and so on. Not using any of those will mean having to write your own from scratch, which will only make the aforementioned problems worse. Sure, you could probably figure things out without too many problems if it was just CSS, but it never is.
Sure, you'll need custom styling on top of all of those anyways in most cases, but i'd argue that it's harder to screw that up and therefore most teams should just stick to the already tested and established solutions out there, like building atop Bootstrap or others.
I do want to reuse these, i just dont want to have to override the shitty style that comes with them that clashes with my design anyway. Also bootstrap for example doesnt do all of these so you would have to use yet another 3rd party library on top of bootstrap. Bootstrap is useless to me, but I’m not against component libraries in general.
Bootstrap does provide most of those:
Carousels - https://getbootstrap.com/docs/5.1/components/carousel/
Tooltips - https://getbootstrap.com/docs/5.1/components/tooltips/
Collapsible - https://getbootstrap.com/docs/5.1/components/collapse/
Tabs - https://getbootstrap.com/docs/5.1/components/navs-tabs/
For lightbox functionality, you'd indeed need an external plugin (or just combine modal + responsive image), but i see the fact that such plugins are even available as a plus, since that means being able to download one and start using it, without spending days or weeks developing low level functionality.I think that the difference here is that you seem to prefer to focus on the design part a lot more (which is valid in projects where the brand is front and center), whereas i care more about implementing functionality quickly and prioritize that. For the latter case, Bootstrap works nicely. Probably less so for the former.
Side note, for nostalgia, here is the HN posting on it from 10 years ago: https://news.ycombinator.com/item?id=2904355
Prior to Bootstrap, the concept of a purely CSS framework was relatively foreign. Aside from jQuery UI (which of course required jQuery and had limitations on styling) the closest thing we had in the 2009-2011 period was reset.css and 960.gs. Even rudimentary things like rounded buttons were still impacted by the lack of uniform border-radius support plus an IE6/IE7 marketshare greater than 30%.
When you just want to move a button ... "oh they're using bootstrap" often saved a ton of time, for things that really shouldn't take time.
I went through several projects where team leads laughed at the idea of Bootstrap in their projects. They treated Bootstrap as a bulky, unnecessary mess of a framework that only inexperienced code monkeys used in spite of it being small and modular.
The dumbest one of all was a team lead who turned out to have little to no real world experience in decision making. He had some help creating an internal CSS framework. It was responsive, modular, mobile first, and had lots of builtin classes for font/element sizes, colors, behavior, etc. Sound familiar? His column-based framework was a terrible drop in for Bootstrap. Even the class attributes were blatant rip-offs, but the lack of robustness meant lots of inline CSS to fix elements.
I think the bar was low for good design on the web, and they did a really good of making it out of the box seem like "good design".
I remember the first time I saw an open source thing was bootstrap based, without knowing what bootstrap was, I immediately asked "wait, what did you use to make it look that good, and how can I use it?" I could guess it was using some third party tool, it was just so much better than typical.
...it was about 6 months later I discovered what Bootstrap was, after noticing half the websites I was visiting looked just like his.
A university I worked at had a beautiful internal website, designed by a Design professor there and tested in students using all the famous methodologies. A few months after I left, a couple new developers were hired and decided to nuke the old design and reimplement it all using Bootstrap because they didn't know CSS/JS.
It was never the same.
They're called "new" developers. They don't have the same skillset of "experienced" developers. Luckily, "new" developers become "experienced" over time.
Or a masochist if you're actually trying to code with it (being turning complete).
I don't think I'd consider this guy a frontend developer given that he couldn't be bothered to learn a framework that falls within his job description. But we also had a UX team to actually design the visuals, so I don't think I'd put him in the designer camp with them either. What was he? "Lead CSS Guy?"
HTML+CSS can get you pretty far in a lot of cases without any JS required, though since HTML5, the spec includes interfaces to the Javascript APIs, as well as a whole bunch of stuff for accessibility. I enjoyed this post from a few months ago which helps give you a sense of the depth of HTML: https://news.ycombinator.com/item?id=27080348 . This person didn't even dive into the spec, just the MDN docs.
To contrast this, a designer is someone who does things like visual branding and consistency, creating assets like logos, background images, maybe even vector graphics, and device breakpoints.
HTML and CSS are also complex enough that you can even spend a significant time specializing in one/both.
Not necessarily. There's still plenty of experienced developers with multiple years of experience that only know a very limited set of technologies. And for years before Bootstrap, inexperienced developers often knew CSS and a bit of JS. And there is nothing wrong with those developers.
My post is not a judgement on beginner developers, I think you're projecting this. It's rather a lamentation of how a certain technology ended up affecting both design and learning negatively.
Also, I find it extremely wasteful and un-pragmatic to rewrite a well designed website from scratch for no benefit other than to the devs themselves. It was a loss for not only the students and teachers of the university, but also for those developers.
> Luckily, "new" developers become "experienced" over time.
Not really if they actively avoid learning.
Bootstrap democratized accessible design. It might be vanilla and bland but no one had trouble navigating a bootstrap site so “negative” is a subjective judgement here.
Just because Bootstrap had some very good aspects, doesn't mean it also didn't have some negative ones. I find this idolatry of tools a very troubling aspect of our industry. It should be possible to reflect on the negative aspect of good tools without someone saying you're "shitting" on it.
Also notice that I never complained about Bootstrap being vanilla or bland. The issue here was that something well designed and well tested was rewritten from scratch and replaced with something that ended up being inferior for no reason other than misguided developers.
And "no one had trouble navigating a bootstrap site" is a bold claim, considering how flexible it was. In fact the main issue with the website I mentioned was the worsened navigation introduced by the developers.
In my experience, the "experienced" developers produce inaccessible messes. While Bootstrap continues to be a web leader in accessibility.
No, they'd seen window.getElementById() but quickly realized that DOM API manipulation wasn't consistent between browsers. The whole reason jQuery was created in the first place was to abstract these browser inconsistencies away into a single API.
Bootstrap might not be the prettiest but it gets the job done. I'm currently in the process of contracting a designer to re-skin/re-design a product I made using a bought bootstrap theme. I honestly doubt I'd have taken on this project (and executed it successfully) or be able to pay a designer to do this so that I can improve for next year's use of this project without Bootstrap.
I have a ton of respect for designers and what they do but I don't have those skills and often I either can't afford a good designer or it's not something that the general public will see, for those things Bootstrap is a godsend.
In a similar vein, I only just now started watching Alias, which premiered in 2001. In one of the first season episodes, one of the characters is talking about MEMS[1] and how it's "the next generation's next generation." I was struck by that as I had no idea that MEMS was as old a technology as it is.
Seems like everything is getting old so fast here lately.
[1]: https://en.wikipedia.org/wiki/Microelectromechanical_systems
The server-side code would just scrape the entire dataset and dump it directly into the client-side script as one big array, lol. And then the UI could filter and narrow the data from there. It was goofy, but it worked.
My love for the web began there, and Bootstrap honestly contributed to my experience. Aesthetics are important to me, and the fact that I could so easily make something that looked nice was really gratifying. I haven't really used Bootstrap for anything else since then - I quickly fell in love with and got comfortable with handwritten CSS - but I'm glad it was there at the start.
Some like 2.3.x style look really nice IMO.
Style is cyclical.
* {
background-image: linear-gradient(a big shadow);
border-radius: 5 million pixels;
box-shadow: 5 million pixels;
text-shadow: 5 million pixels;
}
...that should get you most of the wayNo I shouldn't.
It's helped me learn(ing) vue and build fast. Just like the original CSS bootstrap helped me learn a lot about CSS.
I still use some of their patterns like css 'classes.'
I'm indebted again and great to see the dev community keeping up with new tech! For me taking templates and editing and building on them is a great way to pick something new up.
Yes!
Blew ours minds back at the time.
This kind of traditional way of getting paid while working on open source (a company pays you a salary to work for them, you work on open source in some of your time, you don't make money from the open source) sometimes seems like a thing of the past for big/popular projects, interesting to see it still in play here.
I remember this because I was approached to write a book on Bootstrap and Sass by Packt. I believe that's when I stopped using Bootstrap!
Looked up and found the old post (now deleted/pruned) in the Archives - http://web.archive.org/web/20120207101527/https://brajeshwar...
People complain that it has a very recognizable style, but they ignore you can use it in SCSS (instead of the compiled CSS) so you can configure it to your leisure and make it look totally different.
When using it in SCSS you can also strip modules you don't need to reduce its size too.
My first project was an exam study website. I made a couple of Quizlet sets, embedded the study guide PDFs from teachers (and made my own) into one page. It was a great way to procrastinate on studying and "sort of" study myself.
I don't think I'd have done web development without it!
Thanks for all the great work over the years!