Drupal http://buytaert.net/tag/drupal en Drupal 8 turns one! http://buytaert.net/drupal-8-turns-one <span>Drupal 8 turns one!</span> <span><span>Dries</span></span> <span>Fri, 11/18/2016 - 06:49</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> <div><a href="/tag/drupal-sites" hreflang="en">Drupal sites</a></div> </div> </div> <div><p>Tomorrow is the one year anniversary of Drupal 8. On this day last year we celebrated <a href="http://buytaert.net/drupal-8-0-0-released">the release of Drupal 8</a> with over <a href="https://groups.drupal.org/drupal-8-release-parties">200 parties around the world</a>. It's a project we worked on for almost five years, bringing the work of more than <a href="https://youtu.be/yOggQwNFl3w">3,000 contributors together</a> to make Drupal more flexible, innovative, scalable, and easier to use.</p> <p>To celebrate tomorrow's release-versary, I wanted to look back at a few of the amazing Drupal 8 projects that have launched in the past year.</p> <h3>1. <a href="http://www.nba.com">NBA.com</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-nba.gif" style="display:block" alt=""/> </div> </figure> <p>The NBA is one of the largest professional sports leagues in the United States and Canada. Millions of fans around the globe rely on the NBA's Drupal 8 website to livestream games, read stats and standings, and stay up to date on their favorite team. Drupal 8 will bring you courtside, no matter who you're rooting for.</p> <h3>2. <a href="http://business.nasdaq.com/intel/ir-management/communication-and-compliance/ir-websites">Nasdaq</a></h3> <iframe width="853" height="480" src="https://www.youtube.com/embed/s2HTiiNBuzo?rel=0" frameborder="0" allowfullscreen></iframe> <p><a href="http://buytaert.net/nasdaq-using-drupal-8-for-new-investor-relations-websites">Nasdaq Corporate Solutions has selected Drupal 8</a> as the basis for its next generation Investor Relations Website Platform. IR websites are where public companies share their most sensitive and critical news and information with their shareholders, institutional investors, the media and analysts. With Drupal 8, Nasdaq Corporate Solutions will be providing companies with the most engaging, secure, and innovative IR websites to date.</p> <h3>3.<a href="http://www.hubert-burda-media.com">Hubert Burda Media</a> </h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-burda.gif" style="display:block" alt=""/> </div> </figure> <p>For more than 100 years, Hubert Burda Media has been Germany's premier media company. Burda is using Drupal 8 to expand their traditional business of print publishing to reach more than 52 million readers online. Burda didn't stop there, the media company also open sourced <a href="https://www.drupal.org/project/thunder">Thunder</a>, a distribution for professional publishers built on Drupal 8.</p> <h3>4. <a href="http://www.jurassicworld.com">Jurassic World</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-jurassic-world.gif" style="display:block" alt=""/> </div> </figure> <p>Drupal 8 propels a wide variety of sites, some of Jurassic proportion. Following the release of the blockbuster film, Jurassic World built its digital park on Drupal 8. Jurassic World offers fans games, video, community forums, and even interactive profiles all of the epic dinosaurs found on Isla Nublar.</p> <h3>5. <a href="http://www.wwf.org.uk">WWF</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-wwf.gif" style="display:block" alt=""/> </div> </figure> <p>The World Wide Fund for Nature has been a leading conservation organization since its founding in 1961. WWF's mission is to protect our planet and Drupal 8 is on their team. WWF UK uses Drupal 8 to engage the community, enabling users to adopt, donate and join online. From pole to pole, Drupal 8 and WWF are making an impact.</p> <h3>6. <a href="https://www.ymcamn.org">YMCA Greater Twin Cities</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-ymca.gif" style="display:block" alt=""/> </div> </figure> <p>The YMCA is one the leading non-profit organizations for youth development, healthy living, and social responsibility. The YMCA serves more than 45 million people in 119 countries. The team at YMCA Greater Twin Cities turned to Drupal 8 to build OpenY, a platform that allows YMCA members to check in, set fitness goals, and book classes. They even hooked up Drupal to workout machines and wearables like Fitbit, which enables visitors to track their workouts from a Drupal 8 powered mobile app. The team at Greater Twin Cities also took advantage of Drupal 8's built-in multilingual capabilities so that other YMCAs around the world can participate. The YMCA has set a new personal record, and is a great example of what is possible with Drupal 8.</p> <h3>7. <a href="http://www.jackdaniels.com/en-us">Jack Daniels</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-jack-daniels.gif" style="display:block" alt=""/> </div> </figure> <p>The one year anniversary of Drupal 8 is cause for celebration, so why not raise a glass? You might try Jack Daniels and their Drupal 8 website. Jack Daniels has been making whiskey for 150 years and you can get your fill with Drupal 8.</p> <h3>8. <a href="http://www.aljazeera.com">Al Jazeera Media Network</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-al-jazeera.gif" style="display:block" alt=""/> </div> </figure> <p>Al Jazeera is the <a href="http://buytaert.net/how-al-jazeera-successfully-managed-through-the-turmoil"> largest news organization focused on the Middle East</a>, and broadcasts news and current affairs 24 hours a day, 7 days a week. Al Jazeera required a platform that could unify several different content streams and support a complicated editorial workflow, allowing network wide collaboration and search. Drupal 8 allowed Al Jazeera to do that and then some. Content creators can now easily deliver critical news to their readers in real time.</p> <h3>9. <a href="http://www.alabama.gov">Alabama.gov</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-alabama-gov.gif" style="display:block" alt=""/> </div> </figure> <p>From Boston to LA and even Australia, Drupal is supporting the digital needs of governments around the globe. Alabama is leading the way with Drupal 8. Alabama.gov puts its citizens first, and demonstrates how open source can change the way the public sector engages online.</p> <h3>10. <a href="https://www.box.com">Box</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-box.gif" style="display:block" alt=""/> </div> </figure> <p>Box has been a leader in the technology industry since its founding in 2005. Box takes advantage of Drupal 8 and the improved features made available right out-of-the-<strong>box</strong>. Bad puns aside, companies like Box are using Drupal 8's new features and improved user interface to build the best digital experiences yet.</p> <h3>11. <a href="http://www.habitat.org/">Habitat for Humanity</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-habitat-for-humanity.gif" style="display:block" alt=""/> </div> </figure> <p>The historic nonprofit Habitat for Humanity doesn't just build houses for those in need; they build <a href="http://www.habitat.org">habitat.org</a> on Drupal 8. Habitat for Humanity provides affordable housing for communities in over 70 countries around the world. You can discover their impact through the "Where we Build” interactive map, donate, and volunteer all on their Drupal 8 site.</p> <h3>12. <a href="https://www.obermeyer.com">Obermeyer</a></h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/drupal/drupal-8-obermeyer.gif" style="display:block" alt=""/> </div> </figure> <p>Obermeyer and Drupal 8 will take you into new territory. The ski wear company offers seamless end to end commerce integration, providing both new and loyal customers a great shopping experience. Let Obermeyer's Drupal 8 integration with Drupal Commerce keep you warm because winter is coming ...</p> <h3>Happy 1st birthday Drupal 8!</h3> <p>I can't think of a better way to celebrate Drupal 8's one year anniversary than by sharing some incredible experiences that are being created with Drupal 8. Whether the project is big or small, features dinosaurs, or spreads awareness for an important cause, I'm proud to say that Drupal 8 is supporting an amazing array of projects. In my recent <a href="https://buytaert.net/state-of-drupal-presentation-september-2016">keynote at DrupalCon Dublin</a>, I explained why <a href="http://buytaert.net/drupal-collective-purpose">the why of Drupal</a> is so important. After one year of Drupal 8, it's clear how powerful our collective purpose, projects, and passions can be.</p> <p>Thank you to everyone who has continued to contribute to Drupal 8! I can't wait for another year of exciting projects. Special thanks to <a href="https://www.drupal.org/u/pdjohnson">Paul Johnson</a> for crowdsourcing great examples that I wouldn't have known about otherwise.</p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-130386"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://precessionmedia.com">Dimitar (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Great examples, great sites! @Dries, you&#039;re a Bulls fan? No Celtics gif? :)</p> </div> </div> <small><a href="/comment/130386#comment-130386">November 18, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130386&amp;1=default&amp;2=en&amp;3=" token="33df946c"></drupal-render-placeholder></small> </div> <a id="comment-130391"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://www.ashday.com">Clint Randall (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Hey Dries! So we saw your highlights of sites built on D8 and the thought occurred to me to send you a link to the YMCA scheduling app we also built in D8. :)</p> <p>YMCA of Greater Williamson County - counter.ymcagwc.org</p> <p>Thanks!</p> <p>Clint Randall</p> </div> </div> <small><a href="/comment/130391#comment-130391">November 18, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130391&amp;1=default&amp;2=en&amp;3=" token="9016da99"></drupal-render-placeholder></small> </div> <a id="comment-130401"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Margaret Plett (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Yay for one year of Drupal 8! Not sure if you&#039;ve heard, but we&#039;re hosting a &quot;celebration&quot; tomorrow at <a href="http://www.drupal8day.com/">http://www.drupal8day.com/</a>. We&#039;re spending the day hosting 17 free, live, sessions to share information about Drupal 8 for all who are interested. Kind of like a virtual Drupal Camp. I heard from Steve Burge yesterday that we have more than 1,700 registrations already!</p> </div> </div> <small><a href="/comment/130401#comment-130401">November 18, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130401&amp;1=default&amp;2=en&amp;3=" token="626fa76a"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130411"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>I wasn't aware of "Drupal 8 Day". I like the idea of doing virtual DrupalCamps. I'll help promote it today.</p> </div> </div> <small><a href="/comment/130411#comment-130411">November 19, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130411&amp;1=default&amp;2=en&amp;3=" token="1da63cf9"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130421"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Margaret Plett (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Thanks Dries!</p> </div> </div> <small><a href="/comment/130421#comment-130421">November 19, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130421&amp;1=default&amp;2=en&amp;3=" token="9dfc904c"></drupal-render-placeholder></small> </div> </div><a id="comment-130466"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Elijah Lynn (not verified)</span>:</strong> <br /> <div class="content"> <div><p>That is great you recorded all the sessions. I look forward to watching some of them!</p> <p>And I definitely look forward to more virtual camps!</p> </div> </div> <small><a href="/comment/130466#comment-130466">November 21, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130466&amp;1=default&amp;2=en&amp;3=" token="65ab2d27"></drupal-render-placeholder></small> </div> </div><a id="comment-130416"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://www.zyxware.com">Anoop John (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Happy birthday to Drupal 8 and congratulations to the best free software community in the world.</p> </div> </div> <small><a href="/comment/130416#comment-130416">November 19, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130416&amp;1=default&amp;2=en&amp;3=" token="c1a6e99f"></drupal-render-placeholder></small> </div> <a id="comment-130456"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://www.lucidsoftech.com/">Ankur Singh (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Fantastic achievements so far. Congratulations Drupal 8 on turning one. We would like to see some more amazing involvement with Drupal 8.</p> <p>Dries, you are doing simply great. Keep it up. Special thanks to its community.</p> </div> </div> <small><a href="/comment/130456#comment-130456">November 21, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130456&amp;1=default&amp;2=en&amp;3=" token="e5f18192"></drupal-render-placeholder></small> </div> </section> Fri, 18 Nov 2016 05:49:20 +0000 Dries 3821 at http://buytaert.net Content and Commerce: a big opportunity for Drupal http://buytaert.net/content-and-commerce-a-big-opportunity-for-drupal <span>Content and Commerce: a big opportunity for Drupal</span> <span><span>Dries</span></span> <span>Thu, 11/10/2016 - 16:08</span> <div> <div>Topic</div> <div> <div><a href="/tag/opinion" hreflang="en">Opinion</a></div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> <div><a href="/tag/commerce" hreflang="en">Commerce</a></div> <div><a href="/tag/business" hreflang="en">Business</a></div> <div><a href="/tag/acquia" hreflang="en">Acquia</a></div> </div> </div> <div><p>Last week Acquia announced a partnership with Magento. I wanted to use this opportunity to explain why I am excited about this. I also want to take a step back and share what I see is a big opportunity for both Drupal, Acquia and commerce platforms.</p> <h3>State of the commerce market</h3> <p>First, it is important to understand what is one of the most important market trends in online commerce: consumers are demanding better experiences when they shop online. In particular, commerce teams are looking to leverage vastly greater levels of content throughout the customer's shopping journey - editorials, lookbooks, tutorials, product demonstration videos, mood videos, testimonials, etc.</p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/content-and-commerce-1.gif" style="display:block" alt=""/> </div> </figure> <p>At the same time, commerce platforms have not added many tools for rich content management. Instead they have been investing in capabilities needed to compete in the commerce market; order management systems (OMS), omnichannel shopping (point of sale, mobile, desktop, kiosk, etc), improved product information management (PIM) and other vital commerce capabilities. The limited investment in content management capabilities has left merchants looking for better tools to take control of the customer experience, something that Drupal addresses extremely well.</p> <p>To overcome the limitations that today's commerce platforms have with building content-rich shopping experiences, organizations want to integrate their commerce platform with a content management system (CMS). Depending on the situation, the combined solution is architected for either system to be "the glass", i.e. the driver of the shopping experience.</p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/content-and-commerce-2.gif" style="display:block" alt=""/> </div> <figcaption style="font-style: italic; color: #777;">Lush.com is a nice example of a content-rich shopping experience built with Drupal and Drupal Commerce.</figcaption> </figure> <h3>Drupal's unique advantage for commerce</h3> <p>Drupal is unique in its ability to easily integrate into ambitious commerce architectures in precisely the manner the brand prefers. We are seeing this first hand at Acquia. We have helped many customers implement a "Content for Commerce" strategy where Acquia products and Drupal were integrated with an existing commerce platform. Those integrations spanned commerce platforms including IBM WebSphere Commerce, Demandware, Oracle/ATG, SAP/hybris, Magento and even custom transaction platforms. Check out Quicken (Magento), Puma (Demandware), Motorola (Broadleaf Commerce), Tesla (custom to order a car, and Shopify to order accessories) as great examples of Drupal working with commerce platforms.</p> <p>We've seen a variety of approaches to "Content for Commerce" but one thing that is clear is that a best-of-breed approach is preferred. The more complex demands may end up with IBM WebSphere Commerce or SAP/hybris. Less demanding requirements may be solved with Commerce Tools, Elastic Path or Drupal Commerce, while Magento historically has fit in between.</p> <p>Additionally, having to rip and replace an existing commerce platform is not something most organizations aspire to do. This is true for smaller organizations who can't afford to replace their commerce platform, but also for large organizations who can't afford the business risk to forklift a complex commerce backend. Remember that commerce platforms have complex integrations with ERP systems, point-of-sales systems, CRM systems, warehousing systems, payment systems, marketplaces, product information systems, etc. It's often easier to add a content management system than to replace everything they have in place.</p> <p>This year's "State of Retailing Online" series asked retailers and brands to prioritize their initiatives for the year. Just 16% of respondents prioritized a commerce re-platform project while 41-59% prioritized investments to evolve the customer experience including content development, responsive design and personalization. In other words, organizations are 3 times more likely to invest in improving the shopping experience than in switching commerce platforms.</p> <p>The market trends, customer use cases and survey data make me believe that (1) there are hundreds of thousands of existing commerce sites that would prefer to have a better shopping experience and (2) that many of those organizations prefer to keep their commerce backend untouched while swapping out the shopping experience.</p> <h3>Acquia's near-term commerce strategy</h3> <p>There is a really strong case to be made for a best-of-breed approach where you choose and integrate the best software from different vendors. Countless point solutions exist that are optimized for narrow use cases (e.g. mobile commerce, marketplaces and industry specific solutions) as well as solutions optimized for different technology stacks (e.g. Reaction Commerce is JavaScript-based, Magento is PHP-based, Drupal Commerce is Drupal-based).</p> <p>A big part of Acquia's commerce strategy is to focus on integrating Drupal with multiple commerce platforms, and to offer personalization through Lift. The partnership with Magento is an important part of this strategy, and one that will drive adoption of both Drupal and Magento.</p> <p>There are over 250,000 commerce sites built with Magento and many of these organizations will want a better shopping experience. Furthermore, given the consolidation seen in the commerce platform space, there are few, proven enterprise solutions left on the market. This has increased the market opportunity for Magento and Drupal. Drupal and Magento are a natural fit; we share the same technology stack (PHP, MySQL) and we are both open source (albeit using different licenses). Last but not least, the market is pushing us to partner; we've seen strong demand for Drupal-Magento integration.</p> <p>We're keen to partner with other commerce platforms as well. In fact, Acquia has existing partnerships with SAP/hybris, Demandware, Elastic Path and Commerce Tools.</p> <h3>Conclusion</h3> <p>Global brands are seeing increased opportunity to sell direct to consumers and want to build content-rich shopping journeys, and merchants are looking for better tools to take control of the customer experience.</p> <p>Most organizations prefer best of breed solutions. There are hundreds of thousands of existing commerce sites that would like to have more differentiation enabled by a stronger shopping experience, yet leave their commerce capabilities relatively untouched.</p> <p>Drupal is a great fit. It's power and flexibility allow it to be molded to virtually any systems architecture, while vastly improving the content experience of both authors and customers along the shopping journey. I believe commerce is evolving to be the next massive use case for Drupal and I'm excited to partner with different commerce platforms.</p> <p><em>Special thanks to Tom Erickson and Kelly O'Neill for their contributions to this blog post.</em></p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-130241"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="Http://www.inviqa.com">Richard Jones (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thanks for taking the time to post this Dries. The Magento announcement last week caused a few waves in the Drupal community and I think it&#039;s very important for you to put this into context. </p> <p>Having been heavily involved in some of the Drupal Commerce examples you mention in this post I have a strong belief that Drupal Commerce with Drupal as a single destination content and commerce platform is a very powerful and widely underrated solution. Since iKOS joined Inviqa I&#039;ve had the benefit of working with some of the best Magento engineers around and this has allowed me to experience first hand where the short falls in content management are in these mainstream commerce platforms. I have also seen enough to know just how far we can push Drupal Commerce. </p> <p>I like the phrasing you use - determining which platform is the &quot;glass&quot; when combining two systems. It&#039;s an important decision and often not an obvious one. Drupal 8 now being a capable decoupled system makes this a little easier as we can benefit from the full strengths of Drupal whilst maintaining the well respected back office capabilities of Magento. </p> <p>I have huge respect for what Ryan, Bojan and the team have done with Commerce 2. It&#039;s so important for people to realise that the split of Commerceguys from Platform.sh did not and does not mean the death of Drupal Commerce - slow or otherwise. It&#039;s understandable that this massive effort in rewriting commerce and addressing many of the thing we learnt from D7 has taken a long time with a small core team. It&#039;s now time for those of us maintaining the supporting modules to step up and complete the picture. </p> <p>As a long term partner of Acquia, Commerceguys and Magento we have interesting times ahead. Our approach is always to look at the business value our clients get from their systems rather that to dictate the solution that meets our interests. As you rightly point out replacing an commerce platform is not always possible so we need to be flexible in how we operate. I expect we will have the opportunity to bring in Drupal Commerce solutions in the future as well as continuing our efforts to bring Drupal and Magento closer together. </p> <p>More case studies and success stories will benefit all of us against the strong competition in the market.</p> </div> </div> <small><a href="/comment/130241#comment-130241">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130241&amp;1=default&amp;2=en&amp;3=" token="ea5ff278"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130271"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://ryanszrama.com">Ryan Szrama (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thanks, Rich - we really appreciate your support. : )</p> </div> </div> <small><a href="/comment/130271#comment-130271">November 11, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130271&amp;1=default&amp;2=en&amp;3=" token="6a055ecd"></drupal-render-placeholder></small> </div> </div><a id="comment-130251"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://ryanszrama.com">Ryan Szrama (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thanks for sharing, Dries! My perspective on the partnership is colored by my long history of promoting native eCommerce solutions within the Drupal community (and with Commerce 2.x we&#039;re pushing hard to be more competitive with dedicated commerce applications out of the box), but I think your strategy w/ respect to winning over existing Magento users is clear / commendable and still points to the opportunity for Drupal Commerce.</p> <p>I would&#039;ve shared this assessment even before your partnership was announced for the key reason you mention in the post: re-platforming can be a tough pill to swallow, and even if you are committed to it (that 16% still represents thousands of merchants), the fewer integrations you have to rewrite between your eCommerce application and the various back-end services you depend on for order management, fulfillment, reporting, etc. the better. Every dollar you save on what is purely a cost (i.e. rewriting integrations, absent scalability or other performance issues) you can invest in future revenue by creating a more appealing, engaging experience on the front end.</p> <p>That said, maintaining separate applications side-by-side will itself increase your technology costs (e.g. hosting, software updates, developer training, etc.), so I believe in a future where Drupal Commerce is sufficient for more use cases and easily scales to meet the demands of the largest merchants. It&#039;s great for digital commerce, for event sites, for selling user generated content, etc. (essentially, for verticals where the content *is* the product) - and it&#039;s a decent foundation for building robust D2C brand sites (e.g. lush.co.uk or the more recent obermeyer.com) and highly custom business requirements. However, we know that we need to be more competitive both out of the box (esp. with regards to merchandising) and as an ecosystem (esp. with regards to order management / fulfillment), so we&#039;ve prioritized addressing both of those during Commerce 2.x development.</p> <p>While making Drupal Commerce an easy replacement for a third party eCommerce application is a long term goal, the short term opportunity is for merchants to use Drupal Commerce as a front-end for third party applications just as you are suggesting. Meaningful integrations will require structured representation of commerce data within Drupal, and there&#039;s no reason they shouldn&#039;t take advantage of the relevant Commerce modules and libraries, which were designed to be used in part and not just as a whole. For sites requiring currency / address localization, I&#039;d almost say it&#039;s a requirement, and the libraries we built to handle this have been humming along in production environments for some time now. : )</p> </div> </div> <small><a href="/comment/130251#comment-130251">November 11, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130251&amp;1=default&amp;2=en&amp;3=" token="959669eb"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130371"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Erlend Strømsvik (not verified)</span>:</strong> <br /> <div class="content"> <div><p>You mention costs and software updates as something which argues against &quot;separate applications side-by-side&quot;. I would argue those a absolutely minimal. To host a commerce solution you already need a huge stack of software/applications. One more does not add much to the total cost. That&#039;s even more true if one add the costs of development and not only the continued maintenance costs.</p> <p>The cost of developer training depends solely on the longevity of the skills learned. If skills learned for one set of library/framework is viable for the next 5, 10 or 15 years then that has to factored into the equation. From personal experience I can say that the costs of having to relearn a framework is huge. There is a major undertaking both upfront and for several years when new bugs/problems surface. I&#039;ve been following UberCart for a long time. We ventured into Drupal Commerce and felt a bit blindsided by that experience. Now Commerce2 is fronted as a &quot;total rewrite&quot; which really makes one wonder what has changed in the real world - tax rules (only tax rates has changed), discount calculations, price handling, currency handling, payment handling, order registrations (backend), order handling (backend), and more has not changed for the last 15-20 years. The presentation of information has changed quite a lot of course, and also so has user interaction, but the backend side of commerce has not changed. </p> <p>What we experienced from UberCart to Commerce, and our fear is that going from Commerce to Commerce2 the backend again changes (a lot). Those of us who develop and maintain large commerce sites with a myriad of backend integrations (logistics, accounting, third party pricing-systems, giftcards, etc) are faced with a huge undertaking the day we have/want to upgrade a commerce site (UberCart -&gt; Commerce -&gt; Commerce2). The &quot;upgrade&quot; project is so large that we end up facing the same project costs as when we initially set up the commerce site. The result is that the customer might conclude that the best thing is to put out request for proposals on a new site. &quot;A new site&quot; is a pretty accurate description of every major Drupal upgrade and especially if the site is a commerce site with UberCart/Commerce/Commerce2.</p> <p>We have just begun nibbling at D8. For us the most important thing when considering how to get out of the current Pressflow+UberCart and Drupal+Commerce stack will be how decoupled is the commerce backend from Drupal. If the next iteration of Drupal will again require huge amount of work on the commerce backend then that&#039;s not a good option at all. In my opinion an upgrade of the presentation of information (Drupal) should not touch the way prices are calculated or when tax is applied... Neither how orders are stored or handled. Just to give an example. Except for a few, most of our customers never touch an order in Drupal+Commerce. Orders and payments are handled and processed in their own ERP system. Some of those systems are 10+ years old. Some are even nearing 20 years. They still work and there is absolutely no need to upgrade or change system. </p> <p>Drupal + Magento is something we have looked at earlier. Then we were in them midst of D7 + Commerce development. It will however be quite interesting to compare D8 + Commerce2 and D8 and a Magento stack next year. It will come down to how reusable is current Commerce code/modules with Commerce2 and what the planned life cycle of Commerce2 and (current version) of Magento be.</p> </div> </div> <small><a href="/comment/130371#comment-130371">November 17, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130371&amp;1=default&amp;2=en&amp;3=" token="037c55a8"></drupal-render-placeholder></small> </div> </div><a id="comment-130286"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.thirdandgrove.com/">Justin (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Great post Dries.</p> <p>I&#039;m flattered to see our innovative Drupal + Magento work with Quicken mentioned by you. Quicken is one of the earliest and largest Magento 2 stores launched in the world. We have built headless commerce with Drupal many times now, most recently with Quicken.com (headless Magento 2) and BenefitCosmetics.com (headless Hybris).</p> <p>We are also thrilled to be partnering with you and Acquia on building this Drupal Magento integration by porting the work we have already done for many enterprise clients and bringing it into the Acquia stack. Exciting times!</p> <p>TAG has been integrating best-of-breed commerce solutions with Drupal for many years. We recently shared our analysis of where we think the content and commerce space is going: <a href="https://medium.com/third-grove/the-death-of-drupal-commerce-as-an-ecommerce-solution-daa6c30dff94#.xgjz94r33">https://medium.com/third-grove/the-death-of-drupal-commerce-as-an-ecomm…</a></p> <p>We recently contributed the connectors we developed for Drupal and Hybris back to the community (<a href="https://www.drupal.org/project/hybris">https://www.drupal.org/project/hybris</a>). These connectors -- like our Quicken work connecting Drupal and Magento -- are used today in production at enterprise-scale to power awesome shopping experiences with Drupal and headless Hybris. As our sponsorship of one of Drupal&#039;s six core maintainers (catch) shows, giving back to Drupal is very important to Third &amp; Grove. And it&#039;s something we will continue to do as we continue our journey in the content and commerce space.</p> </div> </div> <small><a href="/comment/130286#comment-130286">November 12, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130286&amp;1=default&amp;2=en&amp;3=" token="5aa69f09"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130316"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>In my mind, the opportunity for Drupal Commerce is (1) to be an abstraction/integration layer for a variety of different commerce-related services, (2) to provide merchant-optimized tools for creating content-rich shopping experiences and (3) to help deliver those shopping experiences to different channels (i.e. be the "glass").</p> <p>Organizations uses a variety of different commerce tools and often have different teams. Drupal Commerce could bring much of that together and provide a unified user interface and merchant-optimized workflow to make building content-rich shopping experiences better, faster, cheaper.</p> <p>So in a way, Drupal Commerce would be a layer that sits above the Hybris-Drupal integration module. The Hybris-Drupal integration module (thanks Third &amp; Grove) allows you to import products from Hybris into Drupal as standard Drupal entities and keep them synced, but the Drupal Commerce modules allow you to use those product entities to build shopping experiences. A Magento-Drupal module could be used to import products from Magento and for the merchants it would be invisible and irrelevant wether these products come from Hybris or Magento. It doesn't have to be limited to product information -- Drupal Commerce could also help unify analytics, promotions, shopping carts, etc.</p> <p>Thoughts?</p> </div> </div> <small><a href="/comment/130316#comment-130316">November 14, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130316&amp;1=default&amp;2=en&amp;3=" token="04b8dfe5"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130336"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.thirdandgrove.com/">Justin (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thanks! Third &amp; Grove also wrote modules for Drupal-Magento that bring in product information into Drupal, along with a variety of other features (hopefully releasing soon...).</p> <p>In our recent projects with headless Hybris and headless Magento we haven&#039;t found a need for the Drupal Commerce components. We have found that Drupal itself is the most compelling unification layer. Our typical approach has been to keep in the commerce platform all the things commerce engines are good at (pricing, promotions, payments, etc) and to focus Drupal on what it&#039;s good at (content and engaging digital experiences). And herein lies the tension (we feel) with trying to use DC as the unification layer - DC is a commerce engine.</p> <p>1. Abstraction layer - Because of Drupal 7&#039;s (and even more Drupal 8&#039;s) robust Entity (and other) APIs we have not found a need to leverage what the Drupal Commerce (DC) modules provide. Components like products and promotions become regular Drupal entities, and checkout flows tend to be custom so they are just Drupal page building. It&#039;s possible a Drupal Commerce component focused exclusively on checkout might be useful, at least as a starting point that can be customized.</p> <p>2. Merchant optimized tools - Many of these tools are content driven so they are interacting with the website through the lens of content, not commerce platform components. Because the work of commerce is pushed to the commerce platform Drupal Commerce&#039;s components are less focused on the glass, and thus at less at play here. A good example is content personalization, which includes products because once they are in Drupal they are regular Drupal nodes. One potential area where DC may be able to play an important role is in price personalization.</p> <p>3. Different channels - Say for example you have a headless Magento store that is powering commerce experiences on a website (Drupal) and in a mobile app (iOS). In our typical approach other channels would be going to Magento, not Drupal, in order to calculate discounts, get prices, and process payment. If the app needed some of the marketing content around products (that typically would be stored in Drupal) they would go right to Drupal for that (which has great support for this use case). In my opinion going through Drupal to talk to the commerce engine wouldn&#039;t be ideal from a performance, complexity, or level of implementation effort perspective. </p> <p>Granted most of our clients are enterprise-scale, but in our projects we have had more success with a strict delineation between content information and commerce data. Our clients tend to organize their teams in this way as well - there tends to be a content team and a separate ecommerce/fulfillment team, so each only has to be trained and login into one system.</p> </div> </div> <small><a href="/comment/130336#comment-130336">November 14, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130336&amp;1=default&amp;2=en&amp;3=" token="fb2be8c3"></drupal-render-placeholder></small> </div> </div></div><a id="comment-130321"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://www.zyxware.com">Anoop John (not verified)</a>:</strong> <br /> <div class="content"> <div><p>It would be good to see some strong case studies of Drupal + Magento as marketing collaterals for pushing the integration into the market. It would also be good to see a bit of analysis on what would be the best fits for the different scenarios for ecommerce merchants. Maybe a decision tree for different business use cases for business decision makers in ecommerce space.</p> </div> </div> <small><a href="/comment/130321#comment-130321">November 14, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130321&amp;1=default&amp;2=en&amp;3=" token="58e2a636"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130331"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.thirdandgrove.com/">Justin (not verified)</a>:</strong> <br /> <div class="content"> <div><p>I agree! So much so that this in the works ;) Third &amp; Grove will be releasing information along these lines in three weeks. I will update here when we do.</p> </div> </div> <small><a href="/comment/130331#comment-130331">November 14, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130331&amp;1=default&amp;2=en&amp;3=" token="272b3da5"></drupal-render-placeholder></small> </div> </div><a id="comment-130556"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>Robert Douglass from Platform.sh (formerly Commerce Guys) didn't like the integration strategy that I shared in this blog post. He strongly believes Drupal benefits from a native commerce solution like <a href="https://www.drupal.org/project/commerce">Drupal Commerce</a>. In response, <a href="https://medium.com/@rob_86775/0-the-case-for-drupal-and-commerce-f10852850e1a#.qythb35kh">he wrote 8 blog posts</a> to make the case for Drupal Commerce. I read through the blog posts and extracted the 4 main reasons why he believes the world should care more about Drupal Commerce. I'm including them below along with my thoughts.</p> <p><strong>Reason 1: the world need a true Open Source ecommerce solution. Not a solution that is proprietary (e.g. Hybris or Demandware) or has a dual-licensing model (e.g. Magento).</strong></p> <p>While Open Source idealism is important to many in the Drupal community, it is not a primary driver to convince customers, digital agencies, system integrators or industry analysts about Drupal Commerce. If we want more organizations to use Drupal Commerce and more organizations to invest in Drupal Commerce, we should focus on how Drupal Commerce is (or can be) a significantly better solution for their needs.</p> <p><strong>Reason 2: Drupal has already solved user management, authentication, content modeling, creation, editing, and rendering, rules engines, rich asset management, and multichannel publishing are all solved problems. This makes building a Drupal-native commerce solution much easier than building a commerce platform from scratch.</strong></p> <p>The effort required to build a commerce platform doesn't really concern customers or organizations who are building commerce websites with Drupal. It would have been much more useful to look at this from the customer's point of view; be it their merchants or the IT organization implementing and managing the commerce website.</p> <p>A more convincing approach could have been to weigh the advantages of a monolithic approach (e.g. a consistent and unified user experience for merchants) against the advantages of a decoupled approach (e.g. the shopping experience and commerce backend usually have different upgrade and innovation cycles, different teams and different hosting requirements). </p> <p>While a monolithic architecture like Drupal Commerce avoids duplication of functionality and can more easily leverage Drupal's strong content management capabilities, it might not be preferred. Most organizations will favor a decoupled commerce architecture over a unified merchant experience. The often complex demands of a commerce backend favor a decoupled architecture. </p> <p>Now, one day this might be achieved with two Drupal instances; one Drupal instance using Drupal Commerce that acts as the commerce backend and a second Drupal instance that provides the shopping experience, connected through web services APIs. In such a setup, having two Drupal systems talk to one another might offer real practical advantages (e.g. same technology stack, easier integration, etc). This should be something to strive for. </p> <p><strong>Reason 3: Drupal will never become the premiere tool for making specialized, vertically targeted distributions without Drupal Commerce.</strong></p> <p>I don't understand this argument. First, it assumes that a commercial SaaS platform is the only way to make Drupal distributions successful. Second, there exist many solutions that can be used to add billing capabilities to a SaaS platform. The billing system most likely doesn't require deep integration with the Drupal distribution.</p> <p><strong>Reason 4: Drupal needs to have native commerce solution in other to be a good multi-site platform for organizations like J&amp;J.</strong> </p> <p>I don't understand why a monolithic approach is a requirement for Drupal to be a good multi-site platform. Universal Music, for example, has successfully standardized on a Drupal-Magento stack for hundreds of their artist websites. Almost all of Acquia's customers that manage hundreds of Drupal sites, use Drupal alongside of adjacent technologies, including commerce platforms, marketing automation platforms, enterprise search, customer relationship management software, and more. Why would commerce be different?</p> <p><strong>Conclusion</strong></p> <p>If we want more organizations to adopt Drupal Commerce or contribute meaningfully to Drupal Commerce's development, we have to provide them a very compelling reason to -- one that provides them an unfair advantage compared to alternative technologies. I wish Robert helped all of us in the Drupal community understand Drupal Commerce's unique advantage in the market; one that catches the attention of customers, digital agencies, system integrators and industry analysts. I hope we all keep working towards that or that we get better at articulating it.</p> </div> </div> <small><a href="/comment/130556#comment-130556">November 30, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130556&amp;1=default&amp;2=en&amp;3=" token="8c888af7"></drupal-render-placeholder></small> </div> <a id="comment-130561"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://fluxus.io">Django Beatty (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Not sure I&#039;d agree with the positioning of Drupal Commerce at the low end, particularly given that we used it to re-platform from a huge ATG install across Royal Mail Group (using the separate instances integrated via services approach as you mention in your reply to Robert). </p> <p>The other key use case for Drupal Commerce was Eurostar, which required deep integration with content along with personalisation and segmentation which we couldn&#039;t find in any non-bespoke system. This was similar to an airline booking system (if more complex) and the checkout flow needed to adjust depending on various contexts (eg upsell tickets to a festival in your destination at the time you are traveling, part pay with various types of points, fewer steps when bookings are in high demand, A/B checkout flows). </p> <p>Both of these examples are going back a very long way and doubtless the product landscape has improved (although I&#039;d imagine finding Hybris devs is still a challenge and ATG still clunky and prohibitively expensive even for enterprise), but I&#039;d hope that Drupal Commerce as a solution hasn&#039;t gone backwards with the advent of Drupal 8. I would position Commerce as for where you precisely don&#039;t want a separate &#039;web shop&#039; (for which there are many solutions such as Magento etc.), but instead want a seamless context-driven experience between content and commerce. My expectation has always been that Drupal 8 and Commerce 2 would cement that and allow easier &#039;omni-channel&#039; use via native services.</p> </div> </div> <small><a href="/comment/130561#comment-130561">November 30, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130561&amp;1=default&amp;2=en&amp;3=" token="d0d2f324"></drupal-render-placeholder></small> </div> <h2>Add new comment</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=3816&amp;2=comment_node_story&amp;3=comment_node_story" token="ea1c615f"></drupal-render-placeholder> </section> <ul class="links inline"><li class="comment-add"><a href="/content-and-commerce-a-big-opportunity-for-drupal#comment-form" title="Share your thoughts and opinions." hreflang="und">Add new comment</a></li></ul> Thu, 10 Nov 2016 15:08:20 +0000 Dries 3816 at http://buytaert.net A plan for media management in Drupal 8 http://buytaert.net/a-plan-for-media-management-in-drupal-8 <span>A plan for media management in Drupal 8</span> <span><span>Dries</span></span> <span>Tue, 11/08/2016 - 10:23</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> </div> </div> <div> <div>Industry</div> <div> <div><a href="/tag/entertainment" hreflang="en">Entertainment</a></div> <div><a href="/tag/publishing" hreflang="en">Publishing</a></div> </div> </div> <div><p>Today, when you install Drupal 8.2, the out-of-the-box media handling is very basic. For example, you can upload and insert images in posts using a WYSIWYG editor, but there is no way to reuse files across posts, there is no built-in media manager, no support for "remote media" such as YouTube videos or tweets, etc. While all of these media features can be added using contributed modules, it is not ideal.</p> <p>This was validated by my "State of Drupal 2016 survey" which 2,900 people participated in; the top two requested features for the content creator persona are richer image and media integration and <a href="https://en.wikipedia.org/wiki/Digital_asset_management">digital asset management</a> (see <a href="http://buytaert.net/state-of-drupal-presentation-may-2016">slide 44 of my DrupalCon New Orleans presentation</a>).</p> <p>This led me to propose a "media initiative" for Drupal 8 at DrupalCon New Orleans. Since then a dedicated group of people worked on <a href="https://www.drupal.org/node/2786785">a plan for the Drupal 8 media initiative</a>. I'm happy to share that we now have good alignment for that initiative. We want to provide extensible base functionality for media handling in core that supports the reuse of media assets, media browsing, and remote media, and that can be cleanly extended by contributed modules for various additional functionality and integrations. That is a mouthful so in this blog post, I'll discuss the problem we're trying to solve and how we hope to address that in Drupal 8.</p> <h3>Problem statement</h3> <p>While Drupal core provides basic media capabilities, contributed modules have to be used to meet the media management requirements of most websites. These contributed modules are powerful — look at Drupal's massive adoption in the media and entertainment market — but they are also not without some challenges. </p> <p>First, it is hard for end-users to figure out what combination of modules to use. Even after the right modules are selected, the installation and configuration of various modules can be daunting. Fortunately, there are a number of Drupal distributions that select and configure various contributed modules to offer better out-of-the-box experience for media handling. Acquia maintains <a href="https://www.drupal.org/project/lightning">the Lightning distribution</a> as a general purpose set of components including media best practices. Hubert Burda Media <a href="http://buytaert.net/thunder-a-drupal-distribution-for-publishers">built the Thunder distribution</a> and offers publishers strong media management capabilities. MD Systems <a href="http://www.md-systems.ch/en/blog/md-systems/2016/08/09/md-systems-introduced-np8-big-apple">created the NP8 distribution</a> for news publishers which also bundles strong media features. While <a href="http://buytaert.net/drupal-distributions">I'm a big believer in Drupal distributions</a>, the vast majority of Drupal sites are not built with one of these distributions. Incorporating some of these media best practices in core would make them available to all end-users.</p> <p>Second, the current situation is not ideal for module developers either. Competing solutions and architectures exist for how to store media data and how to display a library of the available media assets. The lack of standardization means that developers who build and maintain media-related modules must decide which of the competing approaches to integrate with, or spend time and effort integrating with all of them.</p> <h3>The current plan</h3> <p>In a way, Drupal's media management today is comparable to the <a href="http://buytaert.net/multilingual-support-in-drupal-8">state of multilingual in Drupal 7</a>; it took 22 or more contributed modules to make Drupal 7 truly multilingual and some of those provided conflicting solutions. Multilingual in Drupal 7 was challenging for both end-users and developers. We fixed that in Drupal 8 by adding a base layer of services in Drupal 8 core, while contributed modules still cover the more complex scenarios. That is exactly what we hope to do with media in a future version of Drupal 8.</p> <p>The <a href="https://www.drupal.org/node/2786785">plan for the Drupal 8 media initiative</a> is to provide extensible base functionality for media handling in core that supports the reuse of media assets, media browsing, and remote media, and that can be cleanly extended by contributed modules for various additional functionality and integrations.</p> <p>In order to do so, we're introducing a media entity type which supports plugins for various media types. We're currently aiming to support images and YouTube videos in core, while contributed modules will continue to provide more, like audio, Facebook, Twitter, etc. To facilitate media reuse, WYSIWYG image embedding will be rebuilt using media entities and a media library will be included to allow selecting from pre-existing media.</p> <p>We consider this functionality to be the <a href="https://en.wikipedia.org/wiki/Minimum_viable_product">minimum viable product</a> for media in Drupal 8 core. The objective is to provide a simple media solution to make Drupal 8 easy to use out of the box for basic use cases. This would help users of sites large and small.</p> <figure class="figure"> <div class="img" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/cache/drupal/media-library-prototype-2016-742x1114.jpg" style="display:block" alt="Media library prototype"/> </div> <figcaption style="font-style: italic; color: #777;">A work-in-progress prototype of the proposed media library.</figcaption> </figure> <h3>Expected timeline and call for help</h3> <p>We believe this could be achieved in a relatively short time — to be included in Drupal 8.3 or Drupal 8.4 as <a href="http://buytaert.net/the-transformation-of-drupal-8-for-continuous-innovation">experimental modules</a>. To help make this happen, we are looking for organizations to help fund two dedicated code sprints. The existing contributors are doing an amazing job but dedicated in-person sprints would go a long way to make the plans actually happen. If you are willing to help fund this project, let me know! Looking to help with the implementation itself? The media team meets at 2pm UTC every Wednesday. I also recommend you follow <a href="https://twitter.com/drupalmedia">@drupalmedia</a> for updates.</p> <p><em>I tried to make a list of all people and organizations to thank for their work on the media initiative but couldn't. The Drupal 8 initiative borrows heavily from years of hard work and learnings on media related modules from many people and organizations. In addition, there are many people actively working on various aspects of the Drupal 8 media initiative. Special thanks to everyone who has contributed now and in the past. Also thank you to <a href="https://www.drupal.org/u/g%C3%A1bor-hojtsy">Gábor Hojtsy</a>, <a href="https://www.drupal.org/u/effulgentsia">Alex Bronstein</a> and <a href="https://www.drupal.org/u/slashrsm">Janez Urevc</a> for their contributions to this blog post.</em></p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-130156"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.drupal.org/u/anruether">Andreas (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thanks for the update, Dries! I am following the discussion around the Media Initiative on d.o and I have one question: Will the Media entity you mention correspond to the Media entity we now have through contrib? In other words, do I have to worry about the Media library I am building up right now in Lightning, because Media handling is improved and eventually changed in core in half a year or a year? Do I have to worry about compatibility?</p> <p>I would be happy to hear your opinion on this one.</p> <p>Best,<br /> Andreas</p> </div> </div> <small><a href="/comment/130156#comment-130156">November 08, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130156&amp;1=default&amp;2=en&amp;3=" token="f21da122"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130161"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Rich Allen (not verified)</span>:</strong> <br /> <div class="content"> <div><p>I second this question. I&#039;d love some information on a migration path, and if there will be a preferred contribu module which will make the migration easier.</p> </div> </div> <small><a href="/comment/130161#comment-130161">November 08, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130161&amp;1=default&amp;2=en&amp;3=" token="ae47d8f1"></drupal-render-placeholder></small> </div> <a id="comment-130166"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://hojtsy.hu/">Gábor Hojtsy (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Andreas, the plan linked in the post outlines the sub-issues, especially the 8.3 plan at <a href="https://www.drupal.org/node/2825215">https://www.drupal.org/node/2825215</a> which links to <a href="https://www.drupal.org/node/2801277">https://www.drupal.org/node/2801277</a> which is the issue to figure out how to move Media Entity contrib module into core. We are not making this up again, but we may not have all of Media Entity contrib&#039;s functionality in core at the end. Please join the discussion on that issue to get involved.</p> </div> </div> <small><a href="/comment/130166#comment-130166">November 08, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130166&amp;1=default&amp;2=en&amp;3=" token="72470d97"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130176"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.drupal.org/u/anruether">Andreas (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thanks Gábor for pointing to the relevant issues. For non-developers it&#039;s sometimes hard to understand which will be the consequences of decisions made on a technical layer. That&#039;s why I posted my question here. </p> <p>While not all functionality will move into core, it will most likely continue living in contrib. That sounds as if it will be safe to build on Media Entities now, if there is no heavy customization involved.</p> </div> </div> <small><a href="/comment/130176#comment-130176">November 09, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130176&amp;1=default&amp;2=en&amp;3=" token="0d8e9604"></drupal-render-placeholder></small> </div> </div><a id="comment-130236"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.drupal.org/u/balsama">Adam Balsam (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Hi Andreas. We (the maintainers of Lightning) are committed to an update path from our current media entities to whatever ends up in core - and we&#039;re working with the those involved in the media initiative.</p> <p>Tangentially related, the same holds true for migrating to core&#039;s Content Moderation from our current implementation of Workbench Moderation once that becomes stable.</p> </div> </div> <small><a href="/comment/130236#comment-130236">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130236&amp;1=default&amp;2=en&amp;3=" token="9252e3a6"></drupal-render-placeholder></small> </div> </div><a id="comment-130207"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.easable.uk">Paul Driver (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Like others, I am getting ready to start using Drupal 8 and with media being a client expectation it is helpful to know that this is coming along soon. Thank you clarifying that Media Entity module is the way to go in the meantime.</p> </div> </div> <small><a href="/comment/130207#comment-130207">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130207&amp;1=default&amp;2=en&amp;3=" token="b19e675f"></drupal-render-placeholder></small> </div> <a id="comment-130211"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Alain (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Thanks for the article. We are struggling to implement a robust and complete file management for large public websites at the moment. You are now calling for a sprint effort, but are the requirements already clear and complete? I&#039;d be happy to help for this...</p> <p>Thanks</p> </div> </div> <small><a href="/comment/130211#comment-130211">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130211&amp;1=default&amp;2=en&amp;3=" token="b1c101e6"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130231"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://hojtsy.hu/">Gábor Hojtsy (not verified)</a>:</strong> <br /> <div class="content"> <div><p>The plan for 8.3 is posted at <a href="https://www.drupal.org/node/2825215">https://www.drupal.org/node/2825215</a>, and the sub-issues being used for planning the exact details. The high level goals are agreed on as documented in this post as well, the details are still being figured out. We are not using a waterfall type approach where we would have detailed requirements first before doing any implementation, approaching this in an agile way instead.</p> </div> </div> <small><a href="/comment/130231#comment-130231">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130231&amp;1=default&amp;2=en&amp;3=" token="4e5236c0"></drupal-render-placeholder></small> </div> </div><a id="comment-130216"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Gregg Short (not verified)</span>:</strong> <br /> <div class="content"> <div><p>What about including PDF files in the base core library handling? There are a lot of PDF files that need wrangling. Just make these easy ...</p> </div> </div> <small><a href="/comment/130216#comment-130216">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130216&amp;1=default&amp;2=en&amp;3=" token="6dc1d480"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130226"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>The current plan is to handle PDF files through a contributed module. For the MVP we're focused on image support as that is the most important use case. It's good to add YouTube support to core as part of the MVP, as it is probably the number two use case _and_ it's healthy to have one remote media example. Let's revisit adding support for PDF files after we completed the MVP.</p> </div> </div> <small><a href="/comment/130226#comment-130226">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130226&amp;1=default&amp;2=en&amp;3=" token="ed9b7835"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130341"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>knibals (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Hi Dries! Why YouTube support to core? Why not Dailymotion? Or some other provider?</p> <p>I mean, should we tie Drupal to a particular company? Be it Google. I would respectfully suggest being as abstract as possible for Media management (PDF, Images, Audio and other &quot;local&quot; documents). And leave remote media management pluggagle, but in contrib modules.</p> <p>Thx for listening!<br /> POF</p> </div> </div> <small><a href="/comment/130341#comment-130341">November 16, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130341&amp;1=default&amp;2=en&amp;3=" token="8326f91d"></drupal-render-placeholder></small> </div> </div></div><a id="comment-130221"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://www.karlkaufmann.com">Karl Kaufmann (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thanks for bringing this to the forefront. Like Rich Allen and others above post, I make heavy use of Media in Drupal 7, and am very interested in the migration path.</p> <p>I&#039;d love to help in any way I can, but most of my strengths are in design and front-end. Since development time is very valuable, how about doing something similar to what was done with the Rules module--crowdfunding development?</p> <p>Not all developers, and organizations who employ them may have the resources to give toward community projects, so crowdfunding could help to move it along.</p> </div> </div> <small><a href="/comment/130221#comment-130221">November 10, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130221&amp;1=default&amp;2=en&amp;3=" token="319bad53"></drupal-render-placeholder></small> </div> <a id="comment-130246"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>AFowle (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Embedding a single image in a node is one very important use. It could be done by uploading inline or selecting from a media library. </p> <p>There are scores of requests all over the web for a gallery feature in Drupal which you do not seem to be addressing. It needs a bit more dressing up than browsing a media library, but I would have thought there was much in common in the implementation. Would it be possible to implement a simple library from the outset? </p> <p>I like the implementation of D6 with the gallery2 project - both sadly unsupported now, so adding urgency to my request. D7 seems to have come and gone without a decent gallery solution that is easy to use. The D6/G2 combination offered:</p> <ol> <li>Hierarchical galleries (I want one per member, with sub-galleries)</li> <li>Flexible permissions</li> <li>Bulk uploading</li> <li>Space quotas per user</li> <li>Ease of use for non technical end users (bit of a pig for webnaster to configure sometimes though)</li> </ol> <p>I don't have the skills to contribute code to something like that, but I would add to a chipin or similar. </p> </div> </div> <small><a href="/comment/130246#comment-130246">November 11, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130246&amp;1=default&amp;2=en&amp;3=" token="365f271e"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-130261"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://hojtsy.hu/">Gábor Hojtsy (not verified)</a>:</strong> <br /> <div class="content"> <div><p>There are several of those things that would indeed be good to implement out of the box, whether its Facebook or Twitter post embedding or audio file support or galleries. What we are looking at is how we can improve the core system significantly with some of the common things that *all* of these will need anyway first. Once we delivered that successfully, we should definitely look at next steps and priorities. If we are trying to solve everything at once, that would likely not result in any progress for Drupal users for much longer, so we chose to make smaller steps available to users sooner and then continue to work on it based on feedback and further priorities.</p> </div> </div> <small><a href="/comment/130261#comment-130261">November 11, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=130261&amp;1=default&amp;2=en&amp;3=" token="15ccc55e"></drupal-render-placeholder></small> </div> </div> </section> Tue, 08 Nov 2016 09:23:35 +0000 Dries 3811 at http://buytaert.net Nasdaq using Drupal 8 for new Investor Relations websites http://buytaert.net/nasdaq-using-drupal-8-for-new-investor-relations-websites <span>Nasdaq using Drupal 8 for new Investor Relations websites</span> <span><span>Dries</span></span> <span>Wed, 10/19/2016 - 16:59</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> <div><a href="/tag/acquia" hreflang="en">Acquia</a></div> </div> </div> <div> <div>Industry</div> <div> <div><a href="/tag/fortune-500" hreflang="en">Fortune 500</a></div> </div> </div> <div><figure class="figure"> <div class="img" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/cache/drupal/nasdaq-using-drupal-742x1114.jpg" style="display:block" alt="Nasdaq using drupal"/> </div> </figure> <p>I wanted to share the exciting news that <a href="http://business.nasdaq.com/intel/cs.html">Nasdaq Corporate Solutions</a> has selected <a href="http://acquia.com">Acquia</a> and Drupal 8 as the basis for its next generation Investor Relations Website Platform. About 3,000 of the largest companies in the world use Nasdaq's Corporate Solutions for their investor relations websites. This includes 78 of the Nasdaq 100 Index companies and 63% of the Fortune 500 companies.</p> <p>What is an IR website? It's a website where public companies share their most sensitive and critical news and information with their shareholders, institutional investors, the media and analysts. This includes everything from financial results to regulatory filings, press releases, and other company news. Examples of IR websites include <a href="http://investor.starbucks.com">http://investor.starbucks.com</a>, <a href="http://investor.apple.com">http://investor.apple.com</a> and <a href="http://ir.exxonmobil.com">http://ir.exxonmobil.com</a> -- all three companies are listed on Nasdaq.</p> <p>All IR websites are subject to strict compliance standards, and security and reliability are very important. Nasdaq's use of Drupal 8 is a fantastic testament for <a href="http://drupal.org">Drupal</a> and Open Source. It will raise awareness about Drupal across financial institutions worldwide.</p> <p>In their <a href="http://www.nasdaqomx.com/newsroom/pressreleases/pressrelease?messageId=1497526">announcement</a>, Nasdaq explained that all the publicly listed companies on Nasdaq are eligible to upgrade their sites to the next-gen model "beginning in 2017 using a variety of redesign options, all of which leverage Acquia and the Drupal 8 open source enterprise web content management (WCM) system."</p> <p>It's exciting that 3,000 of the largest companies in the world, like Starbucks, Apple, Amazon, Google and ExxonMobil, are now eligible to start using Drupal 8 for some of their most critical websites. If you want to learn more, consider attending <a href="http://engage.acquia.com">Acquia Engage</a> in a few weeks, as Nasdaq's CIO, <a href="http://business.nasdaq.com/discover/nasdaq-leadership/brad-peterson">Brad Peterson</a>, will be presenting.</p> <iframe width="853" height="480" src="https://www.youtube.com/embed/s2HTiiNBuzo?rel=0" frameborder="0" allowfullscreen></iframe></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-129866"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Kevin (not verified)</span>:</strong> <br /> <div class="content"> <div><p>What was it written in before?</p> </div> </div> <small><a href="/comment/129866#comment-129866">October 20, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129866&amp;1=default&amp;2=en&amp;3=" token="6203f236"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129881"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>I don't know, but you can look at some of the existing investors sites.</p> </div> </div> <small><a href="/comment/129881#comment-129881">October 20, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129881&amp;1=default&amp;2=en&amp;3=" token="2d69a861"></drupal-render-placeholder></small> </div> </div><a id="comment-129891"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Joel Farris (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Wow, this is super cool news! Nice!</p> </div> </div> <small><a href="/comment/129891#comment-129891">October 20, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129891&amp;1=default&amp;2=en&amp;3=" token="52a033f2"></drupal-render-placeholder></small> </div> </section> Wed, 19 Oct 2016 14:59:15 +0000 Dries 3801 at http://buytaert.net Personalization takes flight with the new Acquia Lift http://buytaert.net/personalization-takes-flight-with-the-new-acquia-lift <span>Personalization takes flight with the new Acquia Lift</span> <span><span>Dries</span></span> <span>Tue, 10/18/2016 - 01:16</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> <div><a href="/tag/acquia" hreflang="en">Acquia</a></div> <div><a href="/tag/acquia-lift" hreflang="en">Acquia Lift</a></div> </div> </div> <div><p>Last week, we launched a new version of Acquia Lift, our personalization tool. Acquia Lift learns about your visitors' interests, preferences and context and uses that information to personalize and contextualize their experience. After more than a year of hard work, Acquia Lift has many new and powerful capabilities. In this post, I want to highlight some of the biggest improvements.</p> <h3>Intuitive user experience</h3> <p>To begin, Acquia Lift's new user interface is based on the <a href="http://buytaert.net/turning-drupal-outside-in">outside-in principle</a>. In the case of Acquia Lift, this means that the user interface primarily takes the form of a sidebar that can slide out from the edge of the page when needed. From there, users can drag and drop content into the page and get an instant preview of how the content would look. From the sidebar, you can also switch between different user segments to preview the site for different users. Personalization rules can be configured as A/B tests, and all rules affecting a certain area of a page can easily be visualized and prioritized in context. The new user interface is a lot more intuitive.</p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/lift-tray-2016.gif" style="display:block" alt=""/> </div> </figure> <h3>Unifying content and customer data</h3> <p>Having a complete view of the customer is one of the core ideas of personalization. This means being able to capture visitor profiles and behavioral data, as well as implicit interests across all channels. Acquia Lift also makes it possible to segment and target audiences in real time based on their behaviors and actions. For example, Acquia Lift can learn that someone is more interested in "tennis" than "soccer" and will use that information to serve more tennis news.</p> <p>It is equally important to have a complete view of the content and experiences that you can deliver to those customers. The latest version of Acquia Lift can aggregate content from any source. This means that the Acquia Lift tray shows you content from all your sites and not just the site you're on. You can drag content from an ecommerce platform into a Drupal site and vice versa. The rendering of the content can be done inside Drupal or directly from the content's source (in this case the ecommerce platform). A central view of all your organization's content enables marketers to streamline the distribution process and deliver the most relevant content to their customers, regardless of where that content was stored originally.</p> <p>Content can also be displayed in any number of ways. Just as content in Drupal can have different "display modes" (i.e. short form, long form, hero banner, sidebar image, etc), content in Acquia Lift can also be selected for the right display format in addition to the right audience. In fact, when you connect a Drupal site to Acquia Lift, you can simply configure which "entities" should be indexed inside of Acquia Lift and which "display modes" should be available, allowing you to reuse all of your existing content and configurations. Without this capability, marketers are forced to duplicate the same piece of content in different platforms and in several different formats for each use. Building a consistent experience across all channels in a personalized way then becomes incredibly difficult to manage. The new capabilities of Acquia Lift remedy this pain point.</p> <h3>The best for Drupal, and beyond</h3> <p>We've always focused on making Acquia Lift the best personalization solution for Drupal, but we realize that customers have other technology in place. The latest version of Acquia Lift can be installed on any Drupal or non-Drupal website through a simple JavaScript tag (much like the way you might install Google Analytics). So whether it's a legacy system, a JavaScript application, a decoupled Drupal build with custom front end, or a non-Drupal commerce site, they can all be personalized and connected with Acquia Lift.</p> <p>In addition, we've also taken an API-first approach. The new version of Acquia Lift comes with an open API, which can be used for tracking events, retrieving user segments in real time, and showing decisions and content inside of any application. Developers can now use this capability to extend beyond the Lift UI and integrate behavioral tracking and personalization with experiences beyond the web, such as mobile applications or email.</p> <p>I believe <a href="http://buytaert.net/from-content-management-to-digital-experience-management">personalization and contextualization are becoming critical building blocks</a> in the future of the web. Earlier this year I wrote that personalization is one of the most important trends in <a href="http://buytaert.net/cross-channel-user-experiences-with-drupal">how digital experiences are being built today and will be built in the future</a>. Tools like Acquia Lift allow organizations to better understand their customer's context and preferences so they can continue to deliver the best digital experiences. With the latest release of Acquia Lift, we've taken everything we've learned in personalization over the past several years to build a tool that is both flexible and easy to use. I'm excited to see the new Acquia Lift in the hands of our customers and partners.</p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-129846"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Mohamed (not verified)</span>:</strong> <br /> <div class="content"> <div><p>I believe this is a paid service from Acquia, but I really had hard time finding pricing on Acquia home page. Can you please let me know and give us more info on terms of pricing? I am mainly interested in content presonalization / recommendation engine for a news site. Maybe, you can create a service for content publishers only.</p> </div> </div> <small><a href="/comment/129846#comment-129846">October 19, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129846&amp;1=default&amp;2=en&amp;3=" token="9d90c510"></drupal-render-placeholder></small> </div> <a id="comment-129856"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://robshouse.net">Robert Douglass (not verified)</a>:</strong> <br /> <div class="content"> <div><p>&gt;&gt; You can drag content from an ecommerce platform into a Drupal site and vice versa. </p> <p>It&#039;s curious that you make this distinction. Drupal has been an ecommerce platform for the past 12 years.</p> </div> </div> <small><a href="/comment/129856#comment-129856">October 19, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129856&amp;1=default&amp;2=en&amp;3=" token="e2595e83"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129861"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>Of course Drupal can be used as a commerce platform. In this case, I meant a non-Drupal commerce platform like Magento, Demandware, etc.</p> </div> </div> <small><a href="/comment/129861#comment-129861">October 19, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129861&amp;1=default&amp;2=en&amp;3=" token="be032750"></drupal-render-placeholder></small> </div> </div> </section> Mon, 17 Oct 2016 23:16:05 +0000 Dries 3796 at http://buytaert.net State of Drupal presentation (September 2016) http://buytaert.net/state-of-drupal-presentation-september-2016 <span>State of Drupal presentation (September 2016)</span> <span><span>Dries</span></span> <span>Fri, 10/07/2016 - 14:33</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupalcon" hreflang="en">DrupalCon</a></div> <div><a href="/tag/state-of-drupal" hreflang="en">State of Drupal</a></div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> </div> </div> <div><p>DrupalCon Dublin marked my 28th DrupalCon and #Driesnote presentation. You can <a href="https://youtu.be/eQLzrlMeySU">watch a recording of my keynote</a> (starting at 23:55) or <a href="http://buytaert.net/files/state-of-drupal-september-2016.pdf">download a copy of my slides here</a> (185.4 MB).</p> <p>The first half of the presentation I provided a technical update on Drupal 8. I showcased some of the big changes in Drupal 8.2 such as the <a href="https://youtu.be/n53WD0odm7Q">settings tray</a>, <a href="https://youtu.be/n53WD0odm7Q">REST API improvements</a>, <a href="https://youtu.be/3KDff8iX2x0">migration tool improvements</a>, and <a href="https://youtu.be/Osbegr_d_GY">easier to use block placement</a>. I also talked about <a href="http://buytaert.net/the-transformation-of-drupal-8-for-continuous-innovation">how we've transformed Drupal 8 for continuous innovation</a>. I'm super excited about our improved development process and release cycle, as it helps us ship innovative updates to Drupal 8 faster and with a much easier upgrade path.</p> <p>The second half of the talk focused on "The why" of Drupal, and asked an important question for all of us to think about: <a href="http://buytaert.net/drupal-collective-purpose">what is Drupal's collective purpose</a>? In addition to me talking about my own purpose, my team interviewed Drupal people around the world about their passion and purpose.</p> <iframe width="640" height="360" src="https://www.youtube.com/embed/eQLzrlMeySU" frameborder="0" allowfullscreen></iframe> <iframe src="//www.slideshare.net/slideshow/embed_code/key/eqJ5oTE8S1ccpW" width="640" height="485"></iframe><br /> <p>I featured a lot of interviews with Drupalists. If you're interested in viewing their individual videos, they're now available on my YouTube channel: <ul> <li><a href="https://youtu.be/bILP7TDVR-A">Vijaya</a></li> <li><a href="https://youtu.be/mzMi_CGQyF0">Franck</a></li> <li><a href="https://youtu.be/Hd17MtuInwY">Suchi</a></li> <li><a href="https://youtu.be/zrEQD_aUVQM">Drupal Apprenticeship Program</a></li> <li><a href="https://youtu.be/vKJyMFzZ_-w">Vladimir</a></li> <li><a href="https://youtu.be/5w9Zxk-cJ1o">Help for Oklahoma</a></li> <li><a href="https://youtu.be/VcXqNQQbiqM">Zsófi</a></li> <li><a href="https://youtu.be/chL91KcyDkQ">Drew</a></li> <li><a href="https://youtu.be/3qa7oPRXGIQ">Ronan</a></li> </ul></p> <figure class="figure"> <div class="img" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/cache/drupalcon-dublin-2016/keynote-4-742x1114.jpg" style="display:block" alt="Keynote"/> </div> <figcaption style="font-style: italic; color: #777;">&copy; <a href="https://www.flickr.com/photos/68158920@N08/albums/72157674446600695">Paul Johnson</a></figcaption> </figure> <p><em>Special thanks to <a href="https://twitter.com/burnashburn">Ash</a> for the amazing design work on my slides and helping with the interviews, and <a href="http://twitter.com/pdjohnson">Paul Johnson</a> for the nice photo of me listening to Zsófi.</em></p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-129731"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Lee Doughty (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Hi Dries,</p> <p>I want to start my own blog and love the layout and simplicity of your blog theme, I would be grateful if you could let me know if this theme is commercially available or even free to download.</p> <p>Hope you can help - regards Lee.</p> </div> </div> <small><a href="/comment/129731#comment-129731">October 14, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129731&amp;1=default&amp;2=en&amp;3=" token="dda9b51e"></drupal-render-placeholder></small> </div> </section> Fri, 07 Oct 2016 12:33:55 +0000 Dries 3791 at http://buytaert.net Drupal's collective purpose http://buytaert.net/drupal-collective-purpose <span>Drupal&#039;s collective purpose</span> <span><span>Dries</span></span> <span>Mon, 10/03/2016 - 16:46</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> </div> </div> <div><figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-reflecting-on-journey.jpg" style="display:block" alt="Purpose reflecting on journey"/> </div> </figure> <p>When I was <a href="http://buytaert.net/traveling-through-tuscany">on vacation in Italy</a> this summer, I had no internet, which gave me a lot of time to think. Some of that time was spent reflecting on why I do what I do. I have been working on Drupal for over 15 years and on Acquia for almost 10 years. The question of what gives me meaning and purpose has changed drastically over that time.</p> <h3>Evolving purpose</h3> <p>I started Drupal because I wanted to build a website for myself and a few friends. In the early days of Drupal, I was obsessed with the code and architecture of Drupal.</p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-2016-blog-post.jpg" style="display:block" alt="Purpose blog post"/> </div> </figure> <p>As <a href="http://buytaert.net/ockhams-razor-principle-of-content-management-systems">I wrote in 2006</a>: <em>"I focused completely and utterly on creating fewer and fewer lines of more elegant code."</em>. I wanted Drupal to be pure. I wanted the code to be perfect. For Drupal to be architected in the right way, I had to rewrite it multiple times and strip away anything that wasn't necessary – I couldn't imagine <a href="http://buytaert.net/backward-compatibility">preserving backwards compatibility</a> as it meant we had to drag along a lot of historical baggage. My mission in the early days was to keep the platform fast, clean and on the leading edge of technology.</p> <p>As time passed and Drupal started growing, my role evolved. More people became involved with Drupal, and I thought more about scaling the community, including our tools, processes and culture. I started to focus on building the Drupal Association, promoting Drupal, handling trademark issues, and last but not least, setting the overall direction of the project. In the process, I started to worry less about achieving that perfect vision and more about the health of the community and collaborating on a shared vision.</p> <p>While I miss programming, <a href="http://buytaert.net/on-the-hard-choices-we-make-every-day">I have come to accept that I can't do everything</a>. Every day when I wake up, I decide where I want to focus my energy. My guiding principle at this time in my life is to optimize for impact. That means enabling others versus doing much programming myself.</p> <h3>Meaningful moments: part I</h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-moments-part-1.jpg" style="display:block" alt="Purpose moments part"/> </div> </figure> <p>While in Italy, I decided to make a list of the moments in Drupal's history that stand out as particularly meaningful or purposeful. I started to discover some patterns in these moments, and ended up sorting them into two groups. Here is the first set: <ul> <li>When people find Drupal, and it gives them a better career path and ultimately changes their life. I got goosebumps when almost 3,000 people stood up at DrupalCon San Francisco when I asked "Please stand up if Drupal changed your life". I often talk to people that went on to make a full-time living with Drupal – or even start a Drupal business – to provide better lives for their families. Some of these stories, such as <a href="https://youtu.be/bILP7TDVR-A">Vijaya Chandran Mani's</a>, are deeply impactful.</li> <li>Seeing how Drupal is used for aid relief, like in the aftermath of the <a href="https://youtu.be/5w9Zxk-cJ1o">2013 tornado in Moore, Oklahoma</a>. Members of the Drupal community worked throughout the night to create a website for victims to help each other.</li> <li>Seeing how Drupal has made a meaningful impact on the Open Web movement. Over the last 10 years, millions of people have created Drupal sites that express their creative freedom and individuality. In recent years, I've become <a href="http://buytaert.net/winning-back-the-open-web">concerned about the Open Web's future</a> and have spoken out on how the Drupal community is uniquely positioned to <a href="http://buytaert.net/can-we-save-the-open-web">help preserve the open web</a>. I believe it's an important mission that we should all embrace, so the original integrity and freedom of the Open Web remains intact for our children and grandchildren.</li> </ul></p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-radiating-circles.jpg" style="display:block" alt="Purpose radiating circles"/> </div> </figure> <p>All of these moments suggest that my purpose is self-transcendent – I get meaning when my work matters more to others than it does to me. Organized into radiating circles, the impact on each of these groups gives me purpose: individual Drupalists, the Drupal community, Drupal end users, and the open web. This is why I've become so passionate about things like usability, internationalization and accessibility over the years.</p> <p>I know it's not just me; my team interviewed many other people that have the same feelings of finding meaning when their work results in life-changing outcomes. One great example is <a href="https://youtu.be/mzMi_CGQyF0">"Franck" Seferiba Salif Soulama</a>, who hopes that training more young people in Drupal can lift people from Burkina Faso, Africa out of poverty. He wants to provide them job opportunities so they don't have to leave their country. Other examples are <a href="https://youtu.be/chL91KcyDkQ">Drew Gorton</a> or <a href="https://youtu.be/3qa7oPRXGIQ">Ronan Dowling</a>. There are many people like Franck, Drew or Ronan around the world that have a positive <a href="https://youtu.be/84nXwc57-_M">domino effect</a> on others.</p> <h3>Meaningful moments: part II</h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-moments-part-2.jpg" style="display:block" alt="Purpose moments part"/> </div> </figure> <p>The second group of moments I wrote down weren't necessarily self-transcendent, but still gave me purpose. Here are a few examples: <ul> <li>Fundraising after the <a href="http://buytaert.net/state-of-drupal-presentation-march-2009">great server meltdown</a>. In 2005, we had to raise money to buy new infrastructure for Drupal.org. We nearly had to shut down Drupal.org and could have lost everything. While it was a difficult time, this moment was especially meaningful as it helped us come together as a community.</li> <li>Having to ask individuals to leave the project or change their behavior because their values weren't aligned with the project. While providing critique or removing someone from the project has never been never easy, I'm proud of the times we stand up for our values.</li> <li>Getting Drupal 8 over the finish line after 4.5 years of hard work. At times, many people doubted our progress, questioned whether we were making the right decisions, and even left our project. While the development process wasn't always fun in the moment, when we did release parties around the world, <a href="https://youtu.be/vKJyMFzZ_-w">we all felt a real sense of accomplishment</a>. In the long run, we built something that will keep Drupal relevant for many years to come.</li> </ul></p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-not-just-positive.jpg" style="display:block" alt="Purpose not just positive"/> </div> </figure> <p>Many of us find meaning when the hard and uncomfortable work results in life-changing outcomes for others. Not only does this type of work provide purpose, some people believe it is the recipe for success. For example, <a href="https://youtu.be/tx2ZqqAsNHQ">Angela Lee Duckworth's TED talk on grit</a> applies directly to the work that is done by <a href="http://buytaert.net/applaud-the-drupal-maintainers">Drupal's maintainers</a>.</p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-applaud-the-maintainers.jpg" style="display:block" alt="Purpose applaud the maintainers"/> </div> </figure> <h3>How do we scale purpose?</h3> <p>Hearing all of these inspirational stories makes me think: How we can attract more people to the project, but do so in a way that ensures we share our core values (like <a href="https://youtu.be/Hd17MtuInwY">giving back</a>)? While there are no straightforward answers to this question, there are many organizations that are doing great things in this area.</p> <p>One example is the <a href="http://www.drupalcap.org">Drupal Campus Ambassador Program</a> which hopes to appoint ambassadors in every university in India to introduce more students to Drupal and help them with their job search. While at <a href="http://buytaert.net/the-rise-of-drupal-in-india">Drupalcon India earlier this year</a>, I met Rakesh James, who has personally trained 600 people on Drupal!</p> <p>Another example is the <a href="https://youtu.be/zrEQD_aUVQM">Drupal apprenticeship program in the UK</a>, which focuses on recruiting new talent to the Drupal community. Participants get an extensive Drupal bootcamp to help them with their job search. Many of these apprentices are disadvantaged young people who have great talent and aptitude, but might be lacking the traditional route or access to a meaningful career path.</p> <p>I'd love to take programs like these global – they instill our values, culture and a sense of purpose to many new people. If you know of similar initiatives, or have ideas to share, please do so in the comments section.</p> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/purpose-sets-drupal-apart.jpg" style="display:block" alt="Purpose sets drupal apart"/> </div> </figure> <p>Based on my own introspection, and hearing from amazing Drupalists from around the world, I truly believe that Drupal is fueled by a collective sense of purpose that sets us apart from other open source software communities and organizations. We need to keep this purpose in mind when we make decisions, especially when the going gets tough. What is your sense of purpose? And how can we scale it around the world?</p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-129536"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.drupal.org/u/chris-luckhardt">Chris Luckhardt (not verified)</a>:</strong> <br /> <div class="content"> <div><p>I love the imagery throughout this post. The choice of imagery for Drupal&#039;s maintainers raises some interesting metaphors.</p> </div> </div> <small><a href="/comment/129536#comment-129536">October 03, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129536&amp;1=default&amp;2=en&amp;3=" token="d35b76b2"></drupal-render-placeholder></small> </div> <a id="comment-129541"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Mark Hanna (not verified)</span>:</strong> <br /> <div class="content"> <div><p>The concept you describe, &quot;scaling purpose&quot; resonates with me, its right on. I&#039;ve done some work in the learning sphere, using Drupal to build online learning systems. In the middle of building a project for a client, it struck me that what we were building was a &quot;purpose automation system&quot; ... To teach is to give purpose. Automating teaching/learning is to automate the creation of purpose.</p> <p>Here&#039;s an idea, how about a Drupal Learning System, that is build on Drupal, with open source content technologies, to teach Drupal to anyone. How about the content be &quot;open source&quot; or community sponsored/created? This may be an interesting paradigm, can the community come together to freely teach itself and attract newcomers? Drupal University anyone? </p> <p>If you haven&#039;t heard of H5P then check it out, it&#039;s wicked cool: <a href="https://www.drupal.org/project/h5p">https://www.drupal.org/project/h5p</a></p> </div> </div> <small><a href="/comment/129541#comment-129541">October 04, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129541&amp;1=default&amp;2=en&amp;3=" token="ab56676c"></drupal-render-placeholder></small> </div> <a id="comment-129551"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>I love what you wrote, Mark: <em>"To teach is to give purpose. Automating teaching/learning is to automate the creation of purpose."</em>. I'm currently at an airport waiting for my flight to board but I'll make sure to check out H5P once I'm in a more comfortable place with better internet.</p> </div> </div> <small><a href="/comment/129551#comment-129551">October 04, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129551&amp;1=default&amp;2=en&amp;3=" token="d49ffcff"></drupal-render-placeholder></small> </div> <a id="comment-129561"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.davidthorne.net">David Thorne (not verified)</a>:</strong> <br /> <div class="content"> <div><p>I&#039;m so glad that you&#039;ve published this blog article, so I can show other people a textual realisation of what was shown on the screen at DrupalCon. Before the keynote, I was uncertain on whether I even wanted to stay in web development, let alone just with Drupal, but having paid for DrupalCon (my 3rd) I was going to go, and make the best of things. Best decision I ever made. Your keynote, and seeing and interacting with so many people on the Monday and Tuesday changed everything for me, in such a positive way; it has completely reinspired me to get reinvolved (And more involved than before) in the community. Exactly the right thing at the right time. </p> <p>Thank you once again for everything you&#039;ve done with Drupal, and in helping to build and contribute to our great community.</p> </div> </div> <small><a href="/comment/129561#comment-129561">October 04, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129561&amp;1=default&amp;2=en&amp;3=" token="54c5504a"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129566"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>Thanks for your comment, David. Your comment made me smile big! :-)</p> </div> </div> <small><a href="/comment/129566#comment-129566">October 04, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129566&amp;1=default&amp;2=en&amp;3=" token="88c5852c"></drupal-render-placeholder></small> </div> </div> </section> Mon, 03 Oct 2016 14:46:58 +0000 Dries 3786 at http://buytaert.net Acquia a leader in 2016 Gartner Magic Quadrant for Web Content Management http://buytaert.net/acquia-a-leader-in-2016-gartner-magic-quadrant-for-web-content-management <span>Acquia a leader in 2016 Gartner Magic Quadrant for Web Content Management</span> <span><span>Dries</span></span> <span>Fri, 09/30/2016 - 20:43</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> <div><a href="/tag/acquia" hreflang="en">Acquia</a></div> <div><a href="/tag/gartner" hreflang="en">Gartner</a></div> </div> </div> <div><p>This week Acquia was named a leader in the <a href="https://www.acquia.com/resources/whitepapers/acquia-named-leader-2016-gartner-magic-quadrant-web-content-management">Gartner Magic Quadrant for Web Content Management</a>. We're quite excited about it at <a href="http://acquia.com">Acquia</a> as it's the third year in a row that we received this recognition from <a href="http://gartner.com">Gartner</a>. </p> <p>Organizations planning large WCM deployments rely on reports such as the Gartner Magic Quadrant for Web Content Management to give them a comprehensive view of the competitive landscape. Acquia's strong placement will cause many organizations to give Drupal a closer look for their content management projects. Acquia is the only open source company included among the six leaders, and as <a href="http://www.cmswire.com/digital-experience/gartner-boots-opentext-sdl-hp-from-its-wcm-leaders-quadrant">CMSWire's Dom Nicastro reported</a>, "Acquia made the biggest positive move" of all the solutions ranked in Gartner's report.</p> <p>What I found especially interesting in this year's report was their observation that the WCM market is beginning to split in two subcategories: the first subcategory treats the web as an ever more important channel for marketing and communications; the second subcategory is focused on more profound digital transformations, where WCM is a strategic technology to <a href="http://buytaert.net/business-model-innovation-beats-technical-innovation">create new business models</a> and <a href="http://buytaert.net/cross-channel-user-experiences-with-drupal">build new digital experiences</a>.</p> <p>Drupal is used for both. <a href="http://www.johnsonsbaby.com">Johnson &amp; Johnson</a>, <a href="http://www.millercoors.com">MillerCoors</a> and <a href="http://www.motorola.com">Motorola</a> are examples of brands that are creating digital experiences to support their marketing and communications. Look to the <a href="http://buytaert.net/city-of-boston-launches-boston-gov-on-drupal">City of Boston</a>'s work to reimagine citizen engagement, or the innovation at <a href="http://buytaert.net/thunder-a-drupal-distribution-for-publishers">Hubert Burda Media</a> to transform the publishing industry for the next digital age as examples of the latter.</p> </div> <section class="clearfix" id="comments"> </section> Fri, 30 Sep 2016 18:43:00 +0000 Dries 3781 at http://buytaert.net The transformation of Drupal 8 for continuous innovation http://buytaert.net/the-transformation-of-drupal-8-for-continuous-innovation <span>The transformation of Drupal 8 for continuous innovation</span> <span><span>Dries</span></span> <span>Wed, 09/28/2016 - 10:46</span> <div> <div>Topic</div> <div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> </div> </div> <div><p>In the past, after every major release of Drupal, most innovation would shift to two areas: (1) contributed modules for the current release, and (2) core development work on the next major release of Drupal. This innovation model was the direct result of several long-standing policies, including <a href="http://buytaert.net/backward-compatibility">our culture of breaking backward compatibility</a> between major releases.</p> <p>In many ways, this approach served us really well. It put strong emphasis on big architectural changes, for a cleaner, more modern, and more flexible codebase. The downsides were lengthy release cycles, a costly upgrade path, and low incentive for core contributors (as it could take years for their contribution to be available in production). Drupal 8's development was a great example of this; the <a href="http://buytaert.net/why-the-big-architectural-changes-in-drupal-8">architectural changes in Drupal 8</a> really propelled Drupal's codebase to be more modern and flexible, but also came at the cost of four and a half years of development and a complex upgrade path.</p> <p>As Drupal grows — in lines of code, number of contributed modules, and market adoption — it becomes harder and harder to rely purely on backward compatibility breaks for innovation. As a result, we decided to evolve our philosophy starting after the release of Drupal 8.</p> <p>The only way to stay competitive is to have the best product and to help people adopt it more seamlessly. This means that we have to continue to be able to reinvent ourselves, but that we need to make the resulting changes less scary and easier to absorb. We decided that we wanted more frequent releases of Drupal, with new features, API additions, and an easy upgrade path.</p> <p>To achieve these goals, we adopted three new practices: <ol> <li><a href="http://semver.org/">Semantic versioning</a>: a <em>major.minor.patch</em> versioning scheme that allows us to add significant, backwards-compatible improvements in minor releases like Drupal 8.1.0 and 8.2.0.</li> <li><a href="https://www.drupal.org/core/release-cycle-overview">Scheduled releases</a>: new minor releases are timed twice a year for predictability. To ensure quality, each of these minor releases gets its own beta releases and release candidates with strict guidelines on allowed changes.</li> <li><a href="https://www.drupal.org/core/experimental">Experimental modules in core</a>: optional alpha-stability modules shipped with the core package, which allow us to distribute new functionality, gather feedback, and iterate faster on the modules' planned path to stability.</li> </ol></p> <p>Now that Drupal 8 has been released for about 10 months and Drupal 8.2 is scheduled to be released next week, we can look back at how this new process worked. Drupal 8.1 introduced two new experimental modules (the <a href="http://buytaert.net/bigpipe-no-longer-just-for-the-top-50-websites">BigPipe module</a> and a user interface for data migration), various API additions, and usability improvements like spell checking in CKEditor. Drupal 8.2 further stabilizes the migration system and introduces numerous experimental alpha features, including <a href="http://buytaert.net/drupal-8-2-now-with-more-outside-in">significant usability improvements</a> (i.e. <a href="https://www.youtube.com/watch?v=Osbegr_d_GY">block placement</a> and <a href="https://www.youtube.com/watch?v=yqmAvOA8MS0">block configuration</a>), date range support, and advanced content moderation — among a long list of other stable and experimental improvements.</p> <p>It's clear that these regular feature updates help us innovate faster — we can now add new capabilities to Drupal that previously would have required a new major version. With experimental modules, we can get features in users' hands early, get feedback quickly, and validate that we are implementing the right things. And with the scheduled release cycle, we can deliver these improvements more frequently and more predictably. In aggregate, this enables us to innovate continuously; we can bring more value to our users in less time in a sustainable manner, and we can engage more developers to contribute to core.</p> <p>It is exciting to see how Drupal 8 transformed our capabilities to continually innovate with core, and I'm looking forward to seeing what we accomplish next! It also raises questions about what this means for Drupal 9 — I'll cover that in a future blog post.</p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-129451"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://kristofer-tengstrom.se">Kristofer Tengström (not verified)</a>:</strong> <br /> <div class="content"> <div><p>I have always felt that the core team has made good technical decisions, and Drupal 8 is no exception. I really appreciate the focus on a robust and flexible core and although like many others I&#039;m cautious and at this point only build sites that require few contrib modules in D8, I&#039;m very excited for the future. I think in time more people will appreciate what you have done.</p> </div> </div> <small><a href="/comment/129451#comment-129451">September 29, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129451&amp;1=default&amp;2=en&amp;3=" token="bde6f79a"></drupal-render-placeholder></small> </div> </section> Wed, 28 Sep 2016 08:46:09 +0000 Dries 3776 at http://buytaert.net Can Drupal outdo native applications? http://buytaert.net/can-drupal-outdo-native-applications <span>Can Drupal outdo native applications?</span> <span><span>Dries</span></span> <span>Wed, 09/14/2016 - 20:54</span> <div> <div>Topic</div> <div> <div><a href="/tag/javascript" hreflang="en">JavaScript</a></div> <div><a href="/tag/drupal" hreflang="en">Drupal</a></div> <div><a href="/tag/outside-in" hreflang="en">Outside-in</a></div> </div> </div> <div><p>I've made no secret of my interest in <a href="http://buytaert.net/tag/open-web">the open web</a>, so it won't come as a surprise that I'd love to see more web applications and fewer native applications. Nonetheless, many argue that "<a href="https://contently.com/strategist/2016/08/09/future-internet-isnt-web">the future of the internet isn't the web</a>" and that it's only a matter of time before walled gardens like Facebook and Google — and the native applications which serve as their gatekeepers — overwhelm the web as we know it today: a public, inclusive, and decentralized common good.</p> <p>I'm not convinced. Native applications seem to be winning because they offer <a href="http://buytaert.net/winning-back-the-open-web">a better user experience</a>. So the question is: can open web applications, like those powered by <a href="http://drupal.org">Drupal</a>, ever match up to the user experience exemplified by native applications? In this blog post, I want to describe inversion of control, a technique now common in web applications and that could benefit Drupal's own user experience.</p> <h3>Native applications versus web applications</h3> <p>Using a native application — for the first time — is usually a high-friction, low-performance experience because you need to download, install, and open the application (Android's streamed apps notwithstanding). Once installed, native applications offer unique access to smartphone capabilities such as hardware APIs (e.g. microphone, GPS, fingerprint sensors, camera), events such as push notifications, and gestures such as swipes and pinch-and-zoom. Unfortunately, most of these don't have corresponding APIs for web applications.</p> <p>A web application, on the other hand, is a low-friction experience upon opening it for the first time. While native applications can require a large amount of time to download initially, web applications usually don't have to be installed and launched. Nevertheless, web applications do incur the constraint of low performance when there is significant code weight or dozens of assets that have to be downloaded from the server. As such, one of the unique challenges facing web applications today is how to emulate a native user experience without the drawbacks that come with a closed, opaque, and proprietary ecosystem.</p> <h3>Inversion of control</h3> <p>In the spirit of open source, the Drupal Association invited experts from the wider front-end community to speak at DrupalCon New Orleans, including from Ember and Angular. <a href="https://www.drupal.org/u/ef4">Ed Faulkner</a>, a member of the <a href="http://emberjs.com">Ember</a> core team and contributor to the <a href="http://buytaert.net/a-roadmap-for-making-drupal-more-api-first">API-first initiative</a>, delivered a <a href="https://www.youtube.com/watch?v=O12qBp1lWUc">fascinating presentation</a> about how Drupal and Ember working in tandem can enrich the user experience.</p> <p>One of Ember's primary objectives is to demonstrate how web applications can be indistinguishable from native applications. And one of the key ideas of JavaScript frameworks like Ember is <em>inversion of control</em>, in which the client side essentially "takes over" from the server side by driving requirements and initiating actions. In the traditional page delivery model, the server is in charge, and the end user has to wait for the next page to be delivered and rendered through a page refresh. With inversion of control, the client is in charge, which enables fluid transitions from one place in the web application to another, just like native applications.</p> <p>Before the advent of JavaScript and AJAX, distinct states in web applications could be defined only on the server side as individual pages and requested and transmitted via a round trip to the server, i.e. a full page refresh. Today, the client can retrieve application states asynchronously rather than depending on the server for a completely new page load. This improves perceived performance. I discuss the history of this trend in more detail in <a href="http://buytaert.net/a-history-of-javascript-across-the-stack">this blog post</a>.</p> <p>Through inversion of control, JavaScript frameworks like Ember provide much more than seamless interactions and perceived performance enhancements; they also offer client-side storage and offline functionality when the client has no access to the server. As a result, inversion of control opens a door to other features requiring the empowerment of the client beyond just client-driven interactions. In fact, because the JavaScript code is run on a client such as a smartphone rather than on the server, it would be well-positioned to access other hardware APIs, like <a href="https://w3c.github.io/web-nfc">near-field communication</a>, as web APIs become available.</p> <h3>Inversion of control in end user experiences</h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/inversion-of-control-animation.gif" style="display:block" alt=""/> </div> <figcaption style="font-style: italic; color: #777;">When a user clicks a teaser image on the homepage of an Ember-enhanced Drupal.com, the page seamlessly transitions into the full content page for that teaser, with the teaser image as a reference point, even though the URL changes.</figcaption> </figure> <p>In response to our <a href="http://buytaert.net/selecting-a-client-side-framework-for-drupal">recent evaluation</a> of JavaScript frameworks and their compatibility with Drupal, Ed applied the inversion of control principle to <a href="https://www.drupal.com">Drupal.com</a> using Ember. Ed's goal was to enhance Drupal.com's end user experience with Ember to make it more application-like, while also preserving Drupal's editorial and rendering capabilities as much as possible.</p> <p>Ed's changes are not in production on Drupal.com, but in his demo, clicking a teaser image causes it to "explode" to become the hero image of the destination page. Pairing Ember with Drupal in this way allows a user to visually and mentally transition from a piece of teaser content to its corresponding page via an animated transition between pages — all without a page refresh. The animation is very impressive and the animated GIF above doesn't do it full justice. While this transition across pages is similar to behavior found in native mobile applications, it's not currently possible out of the box in Drupal without extensive client-side control.</p> <p>Rather than the progressively decoupled approach, which embeds JavaScript-driven components into a Drupal-rendered page, Ed's implementation inverts control by allowing Ember to render what is emitted by Drupal. Ember maintains control over how URLs are loaded in the browser by controlling URLs under its responsibility; take a look at <a href="https://www.youtube.com/watch?v=O12qBp1lWUc">Ed's DrupalCon presentation</a> to better understand how Drupal and Ember interact in this model.</p> <p>These impressive interactions are possible using the Ember plugin <a href="https://github.com/ember-animation/liquid-fire">Liquid Fire</a>. Fewer than 20 lines of code were needed to build the animations in Ed's demo, much like how SDKs for native mobile applications provide easy-to-implement animations out of the box. Of course, Ember isn't the only tool capable of this kind of functionality. The <a href="https://www.drupal.org/project/refreshless">RefreshLess module</a> for Drupal by <a href="https://www.drupal.org/u/wim-leers">Wim Leers</a> (Acquia) also uses client-side control to enable navigating across pages with minimal server requests. Unfortunately, RefreshLess can't tap into Liquid Fire or other Ember plugins.</p> <h3>Inversion of control in editorial experiences</h3> <figure class="figure"> <div class="img no-resize" style="border: 1px solid #ccc; display: inline-block"> <img src="http://buytaert.net/sites/buytaert.net/files/images/blog/inversion-of-control-editor.gif" style="display:block" alt=""/> </div> <figcaption style="font-style: italic; color: #777;">In CardStack Editor, an editorial interface with transitions and animations is superimposed onto the content page in a manner similar to outside-in, and the editor benefits from an in-context, in-preview experience that updates in real time.</figcaption> </figure> <p>We can apply this principle of inversion of control not only to the end user experience but also to editorial experiences. The last demos in Ed's presentation depict <a href="https://github.com/ef4/cardstack-editor">CardStack Editor</a>, a fully decoupled Ember application that uses inversion of control to overlay an administrative interface to edit Drupal content, much like in-place editing.</p> <p>CardStack Editor communicates with Drupal's web services in order to retrieve and manipulate content to be edited, and in this example Drupal serves solely as a central content repository. This is why the <a href="http://buytaert.net/a-roadmap-for-making-drupal-more-api-first">API-first initiative</a> is so important; it enables developers to use JavaScript frameworks to build application-like experiences on top of and backed by Drupal. And with the help of SDKs like <a href="https://github.com/acquia/waterwheel-js">Waterwheel.js</a> (a native JavaScript library for interacting with Drupal's REST API), Drupal can become a preferred choice for JavaScript developers.</p> <h3>Inversion of control as the rule or exception?</h3> <p>Those of you following the <a href="http://buytaert.net/drupal-8-2-now-with-more-outside-in">outside-in work</a> might have noticed some striking similarities between outside-in and the work Ed has been doing: both use inversion of control. The primary purpose of our outside-in interfaces is to provide for an in-context editing experience in which state changes take effect live before your eyes; hence the need for inversion of control.</p> <p>Thinking about the future, we have to answer the following question: does Drupal want inversion of control to be the rule or the exception? We don't have to answer that question today or tomorrow, but at some point we should.</p> <p>If the answer to that question is "the rule", we should consider <a href="http://buytaert.net/selecting-a-client-side-framework-for-drupal">embracing a JavaScript framework like Ember</a>. The constellation of tools we have in jQuery, Backbone, and the Drupal AJAX framework makes using inversion of control much harder to implement than it could be. With a JavaScript framework like Ember as a standard, implementation could accelerate by becoming considerably easier. That said, there are <a href="https://dev.acquia.com/blog/the-risks-and-rewards-of-fully-decoupling-drupal">many other factors to consider</a>, including the costs of developing and hosting two codebases in different languages.</p> <p>In the longer term, client-side frameworks like Ember will allow us to build web applications which compete with and even exceed native applications with regard to perceived performance, built-in interactions, and a better developer experience. But these frameworks will also enrich interactions between web applications and device hardware, potentially allowing them to react to pinch-and-zoom, issue native push notifications, and even interact with lower-level devices.</p> <p>In the meantime, I maintain my recommendation of (1) <a href="http://buytaert.net/the-future-of-decoupled-drupal">progressive decoupling</a> as a means to begin exploring inversion of control and (2) a continued focus on the <a href="http://buytaert.net/a-roadmap-for-making-drupal-more-api-first">API-first initiative</a> to enable application-like experiences to be developed on Drupal.</p> <h3>Conclusion</h3> <p>I'm hopeful Drupal can exemplify how the <a href="http://buytaert.net/winning-back-the-open-web">open web will ultimately succeed</a> over native applications and walled gardens. Through the API-first initiative, Drupal will provide the underpinnings for web and native applications. But is it enough?</p> <p>Inversion of control is an important principle that we can apply to Drupal to improve how we power our user interactions and build robust experiences for end users and editors that rival native applications. Doing so will enable us to enhance our user experience long into the future in ways that we may not even be able to think of now. I encourage the community to experiment with these ideas around inversion of control and consider how we can apply them to Drupal.</p> <p><em>Special thanks to <a href="https://www.drupal.org/u/prestonso">Preston So</a> for contributions to this blog post and to <a href="https://www.drupal.org/u/webchick">Angie Byron</a>, <a href="https://www.drupal.org/u/wim-leers">Wim Leers</a>, <a href="https://www.drupal.org/u/tkoleary">Kevin O'Leary</a>, <a href="https://www.drupal.org/u/drpal">Matt Grill</a>, and <a href="https://www.drupal.org/u/tedbow">Ted Bowman</a> for their feedback during its writing.</em></p></div> <section class="clearfix" id="comments"> <h2>Comments</h2> <a id="comment-128961"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Anon (not verified)</span>:</strong> <br /> <div class="content"> <div><p>What about Progressive Web Apps?<br /> <a href="https://developers.google.com/web/progressive-web-apps/">https://developers.google.com/web/progressive-web-apps/</a></p> </div> </div> <small><a href="/comment/128961#comment-128961">September 14, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=128961&amp;1=default&amp;2=en&amp;3=" token="eacbc0e9"></drupal-render-placeholder></small> </div> <a id="comment-128976"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://www.getopensocial.com">Taco (not verified)</a>:</strong> <br /> <div class="content"> <div><p>This presentation at DrupalCon New Orleans was great. First time I heard a crowd explode into applause during a DC talk :)</p> <p>We have an intern working the next 5 months on progressive web app for our Open Social distro. Main goals will be push notifications, add to home screen and offline capabilities. As always we will share the practical results with the Drupal community!</p> </div> </div> <small><a href="/comment/128976#comment-128976">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=128976&amp;1=default&amp;2=en&amp;3=" token="49028e1c"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129056"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>What technology stack are you planning to use? Keep us posted on what you learned and thanks for you contributions.</p> </div> </div> <small><a href="/comment/129056#comment-129056">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129056&amp;1=default&amp;2=en&amp;3=" token="1f730929"></drupal-render-placeholder></small> </div> </div><a id="comment-128981"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://www.easable.uk">Paul Driver (not verified)</a>:</strong> <br /> <div class="content"> <div><p>These are exciting ideas and I would be great to see some of the ember demos for real.</p> <p>Maybe at <a href="http://demo.drupal.com">http://demo.drupal.com</a></p> </div> </div> <small><a href="/comment/128981#comment-128981">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=128981&amp;1=default&amp;2=en&amp;3=" token="79a14fd8"></drupal-render-placeholder></small> </div> <a id="comment-128986"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://andrejgaluf.com">Andrej Galuf (not verified)</a>:</strong> <br /> <div class="content"> <div><p>I think the second paragraph nails the whole thing perfectly: Native applications seem to be winning because they offer a better user experience on the devices they&#039;re ment to be used on. Ethan Marcotte coined the term &quot;Responsive Web Design&quot; in 2011, yet in 2016, RWD is still a novelty in many places, something that&#039;s sold as a special extra on top of &quot;a website&quot;. How, then, can open web fight off feature (and input) rich apps?</p> <p>If you ask me, Rich experience with Inversion of control (be it Ember or otherwise) should be a basic standard. Nothing less should be accepted and nothing less should be offered. Not the day after tomorrow, but today. Yesterday, even.</p> </div> </div> <small><a href="/comment/128986#comment-128986">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=128986&amp;1=default&amp;2=en&amp;3=" token="a5a19abe"></drupal-render-placeholder></small> </div> <a id="comment-128991"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://kristofer-tengstrom.se/en">Kristofer Tengström (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Sounds great but now that Angular 2 uses the MIT license instead of Apache it seems like a superior choice over Ember.</p> </div> </div> <small><a href="/comment/128991#comment-128991">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=128991&amp;1=default&amp;2=en&amp;3=" token="0668d44b"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-128996"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>anon (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Completely different methodology. Most developers don&#039;t seem to prefer how Angular 2 works, those doing Angular 1 development aren&#039;t very rosey on it either.</p> </div> </div> <small><a href="/comment/128996#comment-128996">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=128996&amp;1=default&amp;2=en&amp;3=" token="da68012d"></drupal-render-placeholder></small> </div> </div><a id="comment-129001"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>anon (not verified)</span>:</strong> <br /> <div class="content"> <div><p>I am on the fence about officially adopting any external framework into core seeing how we already pack in jQuery and Backbone. Backbone was the most popular framework at the time, and the dev cycle / decision to use it / put in core took so long that by the time Drupal 8 was released, virtually no one talked about doing Backbone development in a long time and almost a year later (since 8.x release) no one writes about it at all, even in the Drupal world.</p> <p>Can that same guarantee be made for the &#039;next&#039; thing to add to core? Or would effort have to occur to convert out and remove Backbone specific code? The ember demos and the talk at Drupalcon New Orleans was impressive, but I fear that it gets added 12-24 months from now and Ember has fallen out of favor with devs the same way Backbone had. Every front end dev out there seems very &quot;React&quot; crazy, even though it doesn&#039;t do all the things Ember does.</p> <p>These are just my reservations.</p> <p>But the overall point is, Drupal needs something. It needs the first class API, and the slick, user-friendly AND dev friendly interface on top. Drupal 9 will be too late. Nearly every known CMS in the marketplace, free or proprietary, are racing toward this goal.</p> </div> </div> <small><a href="/comment/129001#comment-129001">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129001&amp;1=default&amp;2=en&amp;3=" token="98ed2fd1"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129051"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>This is a valid concern. For simplicity's sake, let's say we have two options: (1) shipping core with Backbone or (2) shipping core with Ember, Angular or React? Both options could be suboptimal. What option would be the least bad from a developer's point of view?</p> </div> </div> <small><a href="/comment/129051#comment-129051">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129051&amp;1=default&amp;2=en&amp;3=" token="c373dc4f"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129251"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Bruno Mateus (not verified)</span>:</strong> <br /> <div class="content"> <div><p>I understand your point-of-view, but maybe there are other choices. </p> <p>Why a full commitment with one single framework? In the end, many of the new frameworks solve 90% of the same problems - but with different strategies, semantics and methods. Maybe there could be a way of exposing an universal, standardised API that could interface Drupal with the &quot;external world&quot; (read &quot;not drupal&quot;), bridging to any framework we choose with the Drupal backend.</p> <p>It could turn Drupal even more flexible, allowing more choice and future-proof to the developers. No-one knows the js &quot;flavour of tomorrow&quot; - they change on a monthly basis - and to become locked in a specific &quot;flavour&quot; may not be the best move. Besides, there&#039;s always someone that won&#039;t like the chosen &quot;flavour&quot;, and won&#039;t be keen on learning that specifically.</p> <p>I&#039;ve personally become a fan of decoupling Drupal, as I can use different frameworks for different types of work, using REST and web services. It&#039;s not for every project, there&#039;s problems to address and a lot of work to be done, but also wins to be reaped.</p> <p>Nonetheless, yours is a very much needed discussion.</p> </div> </div> <small><a href="/comment/129251#comment-129251">September 22, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129251&amp;1=default&amp;2=en&amp;3=" token="1181ca85"></drupal-render-placeholder></small> </div> </div></div><a id="comment-129011"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="https://drupal.org/u/prestonso">Preston So (not verified)</a>:</strong> <br /> <div class="content"> <div><p>I&#039;ve created a BoF at DrupalCon Dublin about inversion of control and how Drupal can concretely benefit from this paradigm in the short, medium, and long term. If you&#039;re interested in discussing these issues, please join us! <a href="https://events.drupal.org/dublin2016/bofs/inversion-control-and-drupals-front-end-future">https://events.drupal.org/dublin2016/bofs/inversion-control-and-drupals…</a></p> </div> </div> <small><a href="/comment/129011#comment-129011">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129011&amp;1=default&amp;2=en&amp;3=" token="e724b442"></drupal-render-placeholder></small> </div> <a id="comment-129016"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Andy Hails (not verified)</span>:</strong> <br /> <div class="content"> <div><p>This is really interesting stuff. I am a big fan of the decoupled approach and the power of Drupal to potentially utilise the latest frontend technologies. It could be ember, react or whatever - Drupal could be the engine behind whatever vehicle we choose.</p> <p>This has nothing to do really with the article so not sure of this is the place to raise it but as I was reading about the ember demo, I was intrigued by an idea: what would the Drupal Editor UX be like if we removed the &quot;edit&quot; page for nodes (or at least Removed it as default). In place editing would be the only method for users creating and updating content. Switching between view modes to see how your content would look in certain scenarios (this would also encourage component based theming). Even have a mode to see what your mode would look like when exposed as JSON through a rest service - editable even.</p> <p>My question is, with such good frontend tools now providing slick and stable UX is there still a use for the node/%/edit page?</p> </div> </div> <small><a href="/comment/129016#comment-129016">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129016&amp;1=default&amp;2=en&amp;3=" token="3b246124"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129046"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>I might be misunderstanding your proposal, but I believe there might always be a need or preference to keep the traditional edit page. In a world where Drupal is a content repository that outputs content to different devices in different formats, in-place editing is not always an option. For example, Vodafone uses Drupal to power in-store kiosks. These kiosks are effectively TVs and don't support in-place editing.</p> </div> </div> <small><a href="/comment/129046#comment-129046">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129046&amp;1=default&amp;2=en&amp;3=" token="60ba92ba"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129071"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Andy Hails (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Sure of course, that&#039;s one of the most powerful parts of Drupal - moving towards a device agnostic approach. The Vodafone example is a good example for this. This is all &quot;blue sky&quot; thinking so take what I say with a &quot;pinch of salt&quot; and probably for another forum!</p> <p>I&#039;m thinking about this in the context of the outside in Drupal. Yes certainly for the Vodafone example the edit page seems like the best approach (you wouldn&#039;t imagine an editor editing JSON) but for other, let&#039;s say &quot;more traditional&quot; web layouts the &quot;edit&quot; page screen could be seen as archaic. Right now we present users with two paths - edit and quick edit. Why? The later, for me, seems to hinder the outside in approach. Why give the user so many options if they don&#039;t necessarily need it?</p> </div> </div> <small><a href="/comment/129071#comment-129071">September 16, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129071&amp;1=default&amp;2=en&amp;3=" token="3ce0eb69"></drupal-render-placeholder></small> </div> </div></div><a id="comment-129026"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://advomatic.com">dalin (not verified)</a>:</strong> <br /> <div class="content"> <div><p>This stuff looks nice and fancy, but the problem I see is that there&#039;s really two tiers of Drupal websites being created right now:<br /> - Fully decoupled sites (those with big budgets, maybe 5% of all new sites)<br /> - Traditional fully coupled sites (the 90% majority)<br /> - And then a couple who are straddling the line.</p> <p>I don&#039;t have anything to back up these numbers, but I&#039;m confident in the rough ratios. </p> <p>In order to pursue a fully decoupled approach you need a big team(s): back-end devs, site builders, front-end framework developers, plain-ol&#039; HTML/CSS front-end devs, devops, and lots of PM to manage multiple teams. All this can only be done with big dollars. This is somewhat related to the &quot;Drupal is for ambitious web projects&quot; discussion, though it&#039;s perfectly possible to make an ambitious fully-coupled web project with a team of 1. </p> <p>This separation concerns me. I&#039;d only support a front-end framework in core if there was a significant focus on bringing in that 90%. Drupal 8 has only had marginal, or even negative progress in making things better for lower-level developers. So we&#039;d be fighting against history to make this happen. </p> <p>I also second others&#039; concerns about bundling a front-end framework that becomes obsolete in 2-3yrs.</p> </div> </div> <small><a href="/comment/129026#comment-129026">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129026&amp;1=default&amp;2=en&amp;3=" token="bb7ecd91"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129041"></a> <div data-comment-user-id="1" class="comment clearfix comment-by-node-author"> <strong><span>Dries</span>:</strong> <br /> <div class="content"> <div><p>Dalin, I share your concern about keeping Drupal accessible but I don't think your comparison is fair. You only need a large team when there is a lot of development to do. Today, most fully decoupled applications are custom built from scratch, and therefore require larger teams. If Drupal were to ship with a decoupled front-end and/or back-end, you might not need to do a lot of development -- let alone custom built something from scratch. While things might get a bit more complex, it might still be completely feasible to build a site with a team of 1.</p> </div> </div> <small><a href="/comment/129041#comment-129041">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129041&amp;1=default&amp;2=en&amp;3=" token="bcba47dc"></drupal-render-placeholder></small> </div> </div><a id="comment-129031"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>Marco Galimberti (not verified)</span>:</strong> <br /> <div class="content"> <div><p>Some (chaotic) thoughts on that:<br /> I think that the difference between native and web applications it’s just a fine line, it depends on the point of view… everything on the web can be executed locally if something gives the proper layout to show data, and REST services in core solve (or will solve) a big part of the problem.<br /> The ExtJS framework has some nice example (<a href="http://examples.sencha.com/extjs/6.2.0/examples/">http://examples.sencha.com/extjs/6.2.0/examples/</a>) that shows complex layouts embedding data with JSON calls (via REST services). Latest versions of this framework works on a MVVM model (<a href="https://www.sencha.com/blog/ext-js-5-mvc-mvvm-and-more/">https://www.sencha.com/blog/ext-js-5-mvc-mvvm-and-more/</a>) and it’s possible to define a data structure to get needed data. I think that this framework it’s very heavy (lot of files and code have to be loaded the first time and performances are not very good) and the license model changes (almost) every major versions, but it shows that the difference between native and web application it’s really a fine line (see the desktop example)…<br /> So, if it’s possible to render data in such a way, what are the other components involved in the process to make a web application a native one?<br /> I think that browsers are the key… Mozilla’s XULRunner is a package of components to bootstrap XUL/XPCOM applications based on javascript code (among other), get data on the server (even if the javascript framework doesn’t support data models) and access OS libraries (via XPCOM) to use OS features not included in browsers. Some example such as xulapp-starterkit (<a href="https://github.com/racklin/xulapp-starterkit">https://github.com/racklin/xulapp-starterkit</a>) shows how to do it.<br /> Some other examples are NW.js (<a href="http://nwjs.io/">http://nwjs.io/</a>) and Electron (<a href="http://electron.atom.io/">http://electron.atom.io/</a>).<br /> Other interesting projects which embed this technology in a bigger context are Chromium and Firefox OS which include Rich Client Platforms (RCP) in a dedicated OS, but this exceeds this post.<br /> To have a Drupal dedicated client on the phone with these technologies we just have to configure a website, download JS and CSS of the website and check periodically for file changes (e.g. with a checksum) if we want to shows the server’s layout, or develop some scripts to generate the data model on the client side (that should be provided by the server).<br /> Done! :-) ...we now have a dedicated Drupal client compiled for every Operating System. I hope this is helpful.<br /> Marco</p> </div> </div> <small><a href="/comment/129031#comment-129031">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129031&amp;1=default&amp;2=en&amp;3=" token="18b78364"></drupal-render-placeholder></small> </div> <a id="comment-129036"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>zhilevan (not verified)</span>:</strong> <br /> <div class="content"> <div><p>So what about angular or React?<br /> there are many method and technologies that we can integrate drupal with them, as example decoupled method introduced and used by lullabot team &quot;<a href="https://www.lullabot.com/news/announcing-the-new-lullabotcom&amp;quot">https://www.lullabot.com/news/announcing-the-new-lullabotcom&amp;quot</a>; ,<br /> the situation is complicated , what is the best way ?<br /> it seems Reactjs kill anuglar <a href="http://en.arguman.org/react-is-killing-angular">http://en.arguman.org/react-is-killing-angular</a> , but which one is really better comes in drupal core?</p> <p>it seems react is the winner of client sides javascript frameworks.as a drupal developer I scare of future drupal,</p> </div> </div> <small><a href="/comment/129036#comment-129036">September 15, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129036&amp;1=default&amp;2=en&amp;3=" token="c4b75602"></drupal-render-placeholder></small> </div> <div class="indented"><a id="comment-129086"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><span>anon (not verified)</span>:</strong> <br /> <div class="content"> <div><p>You cannot declare react &quot;the winner&quot; with no backup or comparisons.</p> </div> </div> <small><a href="/comment/129086#comment-129086">September 16, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129086&amp;1=default&amp;2=en&amp;3=" token="0c432aad"></drupal-render-placeholder></small> </div> </div><a id="comment-129116"></a> <div data-comment-user-id="0" class="comment clearfix"> <strong><a rel="nofollow" href="http://tuag.ca">Michael Keara (not verified)</a>:</strong> <br /> <div class="content"> <div><p>Thank you Dries, this is an interesting post about an important topic. Inversion of Control is a key part of an Outside-In approach to creating and managing web sites. It&#039;s important to keep in mind that an Outside-In UX does not only apply to managing content (as most examples seem to focus on) but also the *site-builder* user experience. </p> <p>Site-builder tasks can benefit significantly from an Inversion of Control UX strategy. To really see this we need to keep in mind that any solid UX design is based on a clear definition of task sets that exist to achieve specific goals. (In my UX design background I refer to these task sets as &#039;Roles&#039; but the Drupal community uses that term to refer to sets of permissions. A given logged-in user with a fixed set of permissions can switch Roles repeatedly as they take on different goals - e.g. modify content, change a layout, build a View, etc. The real value behind a task-oriented definition of Roles is the direct relationship between a Role and the UI tools required to get that task done. I think it&#039;s safe to say that simplicity of UX is tied to having the right UI tools at the right time - no more, no less.)</p> <p>The risk of approaching UX design that is based on Inversion of Control is that, without a solid, task-based UX strategy, the resulting product could be limited to a set of disparate, unrelated tricks rather than a fully capable user interface system.</p> <p>In the days of the Spark initiative (when the &#039;outside-in&#039; concept was first emerging in the Drupal community) I put together an envisioning video to explore how this approach could be applied beyond content editing tasks and make an impact on the site-bulder UX itself. Looking at the examples given here I see significant similarities so I want to invite anyone interested in Outside-In to take a look at that video again. It has three parts:<br /> 1: a look at the overall problem and a quick look at the Spark approach<br /> 2: a &#039;right-brain&#039; exploration of how Outside-In could apply to site-building<br /> 3: a schematic look at the structure of an Outside-In site-building system based on the types of context (dynamic, static, relationship) that underly Panels, Page Management and Layout.</p> <p>I believe the concepts in that video still apply, perhaps more than ever, and this could be useful to breaking down the challenges and help establish a strategic approach to an Outside-In / Inversion of Control UI system. It&#039;s a 15 minute video so grab a coffee, relax and enjoy! </p> <p>You can view it here: <a href="https://www.youtube.com/watch?v=T2U_AyM5ePM">https://www.youtube.com/watch?v=T2U_AyM5ePM</a></p> </div> </div> <small><a href="/comment/129116#comment-129116">September 19, 2016</a></small> <small><drupal-render-placeholder callback="comment.lazy_builders:renderLinks" arguments="0=129116&amp;1=default&amp;2=en&amp;3=" token="525d6a41"></drupal-render-placeholder></small> </div> </section> Wed, 14 Sep 2016 18:54:21 +0000 Dries 3766 at http://buytaert.net