How do you compare front-end frameworks? If you google for ‘best front-end framework’, you find accountings of github stars, mammoth feature list comparison tables, and the personal opinions of everyone who’s ever written a line of HTML. Seldom do we stop to consider, what are we actually trying to achieve with these frameworks? What should they be doing for us? We believe the answer is about Freedom, and that every single framework today is falling short.
Freedom
A lot of the world is thinking about freedom today. In the United States of America, people are celebrating Independence Day, the day in which the founding fathers of this country broke free from Great Britain to form an independent nation. A few short years later, the Constitution of the United States of America was drafted, with the first ten amendments being called the Bill of Rights. The Bill of Rights is a formal and legal protection of the rights all citizens, residents and visitors to the American territory, and has inspired similar laws throughout the world for hundreds of years. And while its power and influence have been challenged at various moments since this country’s birth, the Bill of Rights is something the vast majority of Americans, and much of the world, hold in high esteem.
But freedom in parts of our lives is in danger. It’s being taken from us in ways big and small. Our options are being limited, and our choices reduced. Instead, it seems like people and organizations are restricting us more and more. We’re told what to do, how to think and how to feel.
So all of this talk about freedom had us thinking about the work that we do. Is freedom being threatened in design and on the web? Are front-end frameworks limiting or are they freeing? How opinionated should the tools we use be? Where does the line between freeing people up their work and enforcing a narrow way for them to do it lie? Are we living up to our own ideals? So putting our heads together, we drafted up a new guiding document that is influencing the future of Foundation.
The Framework Bill of Rights
1. Freedom to Design
All too often designers tells that they feel confined by most frameworks, or that they spend most of their time wrestling with the framework rather than feeling empowered by it. This is wrong. Frameworks should not restrict the freedom of a designer to fully realize their vision, or incorporate their businesses needs. They should make it simpler and easier to bring designs to life, without any losses or compromises.
2. Freedom to Build
With the JavaScript ecosystem evolving faster than any other technology system and new CSS standards coming online at lightning speed, frameworks should not be trying to pick winners or constrain implementations. Developers deserve the freedom to build in the JavaScript framework of their choice, using the CSS architecture and naming scheme of their choice, while still being able to leverage the power of a front-end framework.
3. Freedom to Choose
Design languages and technologies are constantly evolving, and can often change throughout the course of a project. Changing design languages should not require you to replace your framework, and nor should changing technologies. Designers, Developers, and Decision Makers deserve the freedom to continue to choose what’s best for their products without being constrained by the front-end framework they’re using.
4. Freedom to Innovate
Product development is a continuous process of feedback, experimentation, and bold risks, but some frameworks pin you down and keep you within a certain set of patterns and functionality. Your front-end framework should amplify your ability to innovate, not merely speed up your execution on existing ideas.
5. Freedom to Simplify
By definition, front-end frameworks are collections of code we can use in our projects. But frameworks are often large, unwieldy, and bloated. They can add unnecessary bulk to projects and make it difficult to “trim the fat.” Your framework should make it easy for you to pick and choose what you need and what you want to leave out.
6. Freedom to Extend
No front-end framework can handle every case you’re going to need to handle. If your framework simply exposes finished interfaces and doesn’t expose the tooling to build those interfaces, you’re stuck if you go beyond what the framework offers. Your front-end framework should be easy to extend and integrate into any system, allowing you to still leverage its power when going beyond it’s capabilities.
7. Freedom to Contribute
Some frameworks are maintained by small teams or even single individuals. Other teams try to build their own frameworks because they can’t get what they need into an existing one. Your front-end framework should give you the freedom to contribute to a better solution while letting you lean on the expertise of as many people as possible to draw out the best ideas and solutions.
8. Freedom to be Different
Design best practices change and evolve over time, and not every website wants to look like Twitter. Your framework should provide you with the tools to build high quality sites and applications more reliably with less time, without making it hard to stand out from the pack.
9. Freedom to Evolve
Products change and evolve, and their needs evolve with them. The tooling that supports your rapid prototyping may not be same tooling that will stand the test of time as your product matures in production. Your front-end framework should not force you into one mode or the other, but support these changing needs and empower you to evolve your product throughout its lifecycle, from prototype to production.
10. Freedom to Win
Most importantly, a front-end framework should always help you get to your goal as quickly and easily as possible. Whether you are rapidly prototyping an idea or polishing a site visited by millions every day, your front-end framework should not introduce frictions but make the path to victory clearer.
The F Stands for Freedom
So while other frameworks wallow in development limbo, gorge themselves into unfocused and bloated messes, pigeonhole their users into confined and restrictive boxes, or some combination of all three, the Foundation team is dedicated to freedom. Millions of designers and developers and hundreds of thousands of the world’s biggest companies and brands depend on Foundation every single day. It’s a fact that we do not take lightly. We’ve made a promise to our users that Foundation will continue to lead the way in how the web is designed and built and we are actively planning not only what the next Foundation looks like, but what the next five years of web development looks like. Fortunately, in addition to our wonderful team, we have the help of our Yetinauts and thousands of talented developers around the world who bringing the best and most innovative ideas forward. It’s such a rush to see some of these big ideas crystalize and come to life.
Yes, we realize this Framework Bill of Rights is a little grandiose and audacious, but so was the constitutional Bill of Rights. It was a big, shared dream that drew all kinds of people together in ways that no one thought was possible. And while we can always point to places we’re falling short, that shared dream has brought us a tremendous distance and continues to inspire millions to speak up, act, and make this country just a little bit better.
We’re committed to keep re-imagining the possible, keep dreaming bigger, and keep pushing Foundation and the world of front-end frameworks forward. Sign up now to join us on the journey.