DALKEY ISLAND by Dave Meier

How to pick a Front-end Framework?

Zane Wolfgang Pickett
3 min readJan 7, 2015

I feel obligated to admit that this title is a somewhat bait and switch, but only for the best reasons.

I am a member of the Assembly community where we collaborate on open source projects. Which means that I am exposed to about 500% more side projects being started then I normally would be with just my developer friends. One of the most common early mistakes I see is that of selecting of a front-end framework.

The normal decision-making process I see is that of selecting a front-end Javascript framework before deciding how to use it. You wouldn't go to the home improvement store and buy a metric ton of cement without knowing where you're going to use it. Do you even know which type of cement to buy? What sort of load, moisture content, temperatures, or setting time you need?

So before you go and pour a bunch of time into what in all likely might be a bad foundation, step back and figure out your requirements. You might not even need a Javascript framework for the initial development.

In a bit of choose your own storybook adventure, You should be at least asking the following questions:

  1. Am I going to have dynamic content?

No: If you going to have static, or mostly static content, then your realistic don’t need a front-end framework. You are serving HTML files that don’t change, so build them and allow them to be cached like you would any other static CDN asset. [goto END]

Yes: [goto 2]

2. Is the majority of your users going to be viewing user-specific content?

No: If most of your content is going to be the same for your users, leverage cache by sending out pre-generated HTML. Then have javascript handle the dynamic content, see ‘Stop Writing Stateful HTML’. [goto END]

Yes: [goto 3]

3. Are you writing something that is highly dynamic and sensitive to user input?

No: If you made it this far, without falling into one of my broadly defined categories, you might want to reconsider what your building. Start by simplifying it down to your minimally viable (working) product. [goto END]

Yes: Feel free to now select front-end frameworks to your heart’s content.

Once you understand where you're going to be using this tool, and how much you're going to have to lean on it, you can start by selecting the right tool for the job. Some jobs need a simple spade, and others need a tunnel boring machine. It's even more likely you need something in between.

Sometimes you may want to use a bit of tech because it’s shiny, and you’re interested in trying it out. That’s fine, just be honest with everyone(including yourself) about it before you accept that risk.

The moral of the rant is: Find a problem to solve; before you make ‘solving’ your problem.

If you're still looking for some opinionated asshole to tell you what tech to use; My front-end guy says to use Angular. Though, he happens to be a pretty nice guy.

--

--

Zane Wolfgang Pickett

Domesticated Sushi Lover. All my regular expressions are my own.