Introducing Backdrop CMS, a fork of Drupal.
Backdrop is intended to be a platform for developers and users of Drupal who might be thinking about adopting other platforms after evaluting Drupal 8. The goal of the Backdrop project is to provide shiny new features built on an iteration of the existing Drupal 7 APIs: before Symfony, PSR-0, and the "Drupal Kernel" were introduced.
Preserving our audience
Backdrop is a project built for the love of Drupal. For many developers, working on the Drupal project has led to lots of exciting new opportunities. People have earned new jobs, visited new cities, and made new friends though the Drupal community! Hundreds of hours have gone into developing websites for clients, but time has also been lovingly donated to create reusable code for the core or the contrib module repository. But even better, any people have been empowered by Drupal to promote their ideas through a system that anyone can install for free!
The traditional audience of Drupal is not a crowd of professional developers. We've gotten to that point through years of building flexible systems at low cost. However, "low cost" isn't exactly how most people would describe Drupal today. Even in the current version of Drupal, we've abstracted things beyond where a new developer could pick up Drupal in a day, grasp the basic concepts, and then start building a website.
Many of Drupal's leading developers didn't even know PHP when they first started making Drupal websites. But as is often the case, after some initial hacking, they were hooked! Backdrop aims to meet the needs of this community. It will provide a simple, intuitive API that's easy to understand at first glance.
Small-scale Drupal
Backdrop appeals to a different developer audience than Drupal 8. By rewinding APIs back a bit further (removing database query abstraction and page-level renderable arrays for example), Backdrop will lower its barrier to entry, increase performance, and position itself closer to the WordPress market.
The hypothetical growth chart below estimates the Drupal market today, and on into the future. It's not backed up by statistics or hard numbers, it only depicts the general history of Drupal's audience and predicts the future of the Drupal market, with and without Backdrop.
Backdrop aims to grow the overall market by sustaining those that might leave the Drupal community without it. Backdrop also aims to appeal to new adopters who may find Drupal 8 too complex, but feel limited by WordPress.
A Product for End-Users
Drupal 8 includes some great end-user features: a visual editor, revamped content creation, built-in Views module, and more. Backdrop also aims to provide all of these new and improved end-user features, but on a codebase that's simpler than that of Drupal 7.
Backdrop will value end-users over contrib developers, and contrib developers over core deveopers. For end-users, this means a committment to improved usability. To contrib developers, this means a committment to maintaining backwards compatability as much as possible. By working within existing code and similar patterns, developers can spend more effort on the tools and products they are building, and less trying to keep up with the underlying software.
A Different Release Cycle
Backdrop aims to deliver features to end-users more quickly with more frequent ("minor") releases. At the same time, APIs will move more slowly over longer ("major") release cycles. Backdrop will encourage both developers and end-users to upgrade through the features it delivers.
Backdrop will use semantic versioning (which is also under consideration for Drupal itself).
Major versions
Incompatible API changes (every 2 or 3 years)
Minor versions
Backwards-compatible feature and API additions (every 4 months)
Patch versions
Backwards-compatible bug fixes (as-needed)
The amount of work can be kept to a minimum by organizing development branches cleverly with Git. Bugs in today's software can be fixed today, before being merged into the next version.
Goals
- Appeal to existing Drupal 6 and 7 Developers
We will deliver modern features (configuration management, content listings, rich-text editing, etc.) on a traditional Drupal-based architecture. - Keep it simple
We will make sure that new developers can understand the basics of the Backdrop architecture (info files, hooks, and callbacks) with minimal effort. An hour should be enough to summarize the architecture. - Keep APIs Stable ("Major" versions)
We will make the upgrade process easier on end-users by maintaining slower-moving core APIs. - Deliver New Features Often ("Minor" versions)
We will deliver new features at regular intervals with minimal risk of API breakage. - Ensure Great Performance
We will focus on direct implementations and speed rather than accounting for edge-cases through abstraction. - Provide a Better End-User Experience
We will constantly be improving the editorial and site-building experience. The first version aims to improve content creation (matching Drupal 8's advancements), and deliver a universal layout manager for site-builders (replacing blocks). - Grow the community
We will focus on attracting new developers at all points of the spectrum, but especially remembering the entry-level developer.
Podcasts & Discussion
If you'd like to hear more information about Backdrop CMS, check out these great podcasts covering the topic:
- Drupalize.me Podcast: Backdrop: A Drupal Fork. Addison Berry (add1sun) interviews founding forkers Nate Haug and Jen Lampton on why Backdrop CMS decided to fork Drupal.
- DrupalEasy Podcast 114: Community sprints and discussing Backdrop CMS. Drupal (and Backdrop) community members discuss the impact and direction of the Backdrop CMS fork.
- Modules Unraveled: Backdrop and Drupal8. Discussion with Jen Lampton, Nate Haug, John Albin Wilkins, and Alex Bronstein about both Backdrop CMS and Drupal 8
- Taking Drupal: Backdrop CMS. Discussion with Nate, Jen and Drupal community members about Backdrop CMS.
Contribute
Contribute code
Development for Backdrop is on Github. You can fork the Backdrop repository to take a look. Development issues, bugs, and feature requests are currently on Github, in the Backdrop issue tracker.
Contribute dollars
If you don't have the code to contribute, you can help get Backdrop off the ground by providing seed funding for infrastructure, and branding. Donations are being gratefully accepted through PayPal.
Stay informed
Participate in Weekly Meetings
Weekly progress meetings are being held on Goolge Hangouts. Agendas for each meeting will be posted ahead of time on Twitter, and the hangout URL will shared in our IRC channel: #backdrop on Freenode.
Miss a meeting? No problem! Videos of past meetings will be automatically posted on the BackdropCMS YouTube Channel.
Thanks
Thanks for reading the Backdrop introduction. Please join in development and help us make Backdrop an amazing system that anyone can learn and use.
There's a lot more to discuss. For your concerns and input, please discuss in the Github issue tracker, or reach out to me personally at backdrop@quicksketch.org.
- Nate Haug "quicksketch", Founding Forker
- - -
UPDATE 9/21: We've received a lot of feedback (on both sides, though mostly positive) since this was published. In the past 10 days alone:
- We've received 256 stars and 64 people have forked the Backdrop repository.
- We've merged in over 50 pull requests.
- We've been topping the most trending PHP projects on Github on and off. :)
- We've raised over $2500 in funding to get Backdrop's initial infrastructure off the ground and seed development efforts.
- - -
UPDATE 11/29:
- Added information about our weekly meetings.
- Added PayPal donate button for Backdrop CMS.
- Added more links to Backdrop Podcasts.
- - -
This was the original backdrop announcement, and has been moved to the backdropcms.org blog for historical purposes.