I will be comparing a few frameworks for use in my first web application. But first, I should tell you why I am even considering one.
What’s a front-end framework?
The unsophisticated definition: a framework provides a basic user interface for your web site, and you build from there. It saves you time.
More specifically, a framework:
- Makes responsive design much easier. Your content will look good on any device.
- Provides a familiar, intuitive interface for your users. Links are blue. Buttons look clickable. These subtle design decisions, already made for you, make your site easier to learn.
- Works cross-browser. The best frameworks are well-tested on all of the major browsers, so you won’t have to do as much debugging.
Should I use a framework?
There are pros and cons. Chris Coyier of CSS-Tricks summarizes them in a post from 2007 that is still relevant.
For sites that need to be heavily customized or introduce a new kind of interaction that isn’t standard, it may take longer to customize a framework than to build from scratch.
But, as Chris wrote about one major framework, “I think a web app startup could do a lot worse than starting with this to get up and running quickly.” That sums it up for me. I am a one-man band on this project, so time is of the essence. I’ll be using a front-end framework.
Frameworks don’t excuse ignorance
Someone could use a front-end framework to build a site without knowing any CSS. That’s fine, but the site will look like thousands of others.
In reality, anyone doing front-end development should know how to write CSS from scratch, without the cushion of a framework.
So, in addition to using a framework for my web app, I am going to read a real CSS book. Stay tuned for updates on that.
It’s time for speed dating
The past few years have seen dozens of new front-end frameworks. To find the right match for me, I need to spend a little bit of time with each of them. You’ll come along for the ride in an upcoming posting. Keep in mind, though – everyone’s framework soulmate may be different.