Software
Cruiskeen Consulting: Drupal Hosting Survey
As a hosting company, we're interested in the hosting needs of the Drupal community. We are doing some infrastructure and software planning at the moment, and we thought it would be great to get some feedback from the Drupal community as a whole.
We are conducting this as an open source survey - that is, we're planning on making the results publicly available after the survey closes. We're planning on leaving the survey up through the end of October, so if you're interested in informing the decisions of hosting companies catering to Drupal, please come fill out the survey.
Dries Buytaert: Scaling Open Source communities
We truly live in miraculous times. Open Source is at the core of the largest organizations in the world. Open Source is changing lives in emerging countries. Open Source has changed the tide of governments around the world. And yet, Open Source can be really difficult. Open Source can be largely a thankless job. It is hard to find volunteers, it is hard to find organizations to donate time or money, it is hard to organize the community, it is hard to learn, it is hard to attract full-time contributors, and more. As the project lead for Drupal, one of the largest Open Source projects/communities in the world, I live these challenges every day. In this blog post, I will analyze the challenge with scaling Open Source communities and recommend a solution for how to build very large Open Source communities.
Open Source projects are public goodsIn economic terms, for something to be a "public good", it needs to match two criteria:
- non-excludability - it is impossible to prevent anyone from consuming that good, and
- non-rivalry - consumption of this good by anyone does not reduce the benefits available to others.
Examples of public goods include street lighting, national defense, public parks, basic education, the road system, etc. By that definition, Open Source software is also a "public good": we can't stop anyone from using Open Source software, and one person benefiting from Open Source software does not reduce the benefits available to others.
The realization that Open Source is a public good is a helpful one because there has been a lot of research about how to maintain and scale public goods.
Public goods and the free-rider problemThe biggest problem with public goods is the "free rider problem". A free rider is someone who uses a public good but who does not pay anything (or pay enough) towards its cost or production. If the maintainers of a public good do not address the free-rider problem it can lead to the non-production or under-production of a public good. This is generally known as the "Tragedy of the Commons".
In Open Source, a free-rider is someone who uses an Open Source software project without contributing to it. If too few people or organizations contribute to the project, the project can become unhealthy, and ultimately could cease to exist.
The free-rider problem is typical for public goods and does not usually arise with private businesses. For example, community-maintained software like Drupal may have many free riders but proprietary competitors like Adobe or Sitecore have no problem excluding those who will not pay a license fee.
To properly understand the free-rider problem and public good provision, we need to understand both self-interest theory and the theory of collective action. I'll discuss both theories and apply them to Open Source.
Self-interest theoryOpen Source contributors do amazing things. They contribute to fixing the hardest problems, they volunteer to help others, they share their expertise, and more. Actions like these are often described as altruistic, in contrast to the pursuit of self-interest. In reality, generosity is often driven by some level of self-interest: we provide values to others only on terms that benefit ourselves.
Many reasons exist why people contribute to Open Source projects; people contribute because they enjoy being part of a community of like-minded people, to hone their technical skills, to get recognition, to try and make a difference in the world, because they are paid to, or for different forms of "social capital". Often we contribute because by improving the world we are living in, we are making our world better too.
Modern economics suggest that both individuals and organizations tend to act in their own self-interest, bound by morals, ethics, the well-being of future generations and more. The theory of self-interest goes back to the writings of the old Greeks, is championed by early modern economists, and is still being adhered to by late-modern economists. It follows from the theory of self-interest that we'd see more individuals and organizations contribute if they received more benefits.
While contributing to Open Source clearly has benefits, it is not obvious if the benefits outweigh the cost. If we can increase the benefits, there is no doubt we can can attract more contributors.
Collective action theoryThe theory of self-interest also applies to groups of individuals. In his seminal work on collective action and public goods, economist Mancur Olson shows that the incentive for group action diminishes as group size increases. Large groups are less able to act in their common interest than small ones because (1) the complexity increases and (2) the benefits diminish.
We see this first hand in Open Source projects. As an Open Source project grows, aspects of the development, maintenance and operation have to be transferred from volunteers to paid workers. Linux is a good example. Without Red Hat, IBM and Dell employing full-time Linux contributors, Linux might not have the strong market share it has today.
The concept of major public goods growing out of volunteer and community-based models is not new to the world. The first trade routes were ancient trackways, which citizens later developed on their own into roads suited for wheeled vehicles in order to improve commerce. Transportation was improved for all citizens, driven by the commercial interest of some. Today, we certainly appreciate that full-time government workers maintain the roads. Ditto for the national defense system, basic education, etc.
The theory of collective action also implies that as an Open Source project grows, we need to evolve how we incent contributors or we won't be able to attract either part-time volunteers or full-time paid contributors.
Selective benefitsSolutions for the free-rider problem and collective action problem exist, and this is where Open Source can learn from public goods theory and research. The most common solution for the free-rider problem is taxation; the government mandates all citizens to help pay for the production of the public good. Taxpayers help pay for our basic education system, the road system and national defense for example. Other solutions are privatization, civic duty or legislation. These solutions don't apply to Open Source.
I believe the most promising solution for Open Source is known as "privileged groups". Privileged groups are those who receive "selective benefits". Selective benefits are benefits that can motivate participation because they are available only to those who participate. The study of collective action shows that public goods are still produced when a privileged group benefits more from the public good than it costs them to produce it.
In fact, prominent "privileged groups" examples exist in the Open Source community; Automattic is a privileged group in the WordPress community as it is in a unique position to make many millions of dollars from WordPress.com. Mozilla Corporation, the for-profit subsidiary of the Mozilla Foundation, is a privileged group as it is in a unique position to get paid millions of dollars by Google. As a result, both Automattic and Mozilla Corporation are willing to make significant engineering investments in WordPress and Mozilla, respectively. Millions of people in the world benefit from that every day.
Drupal is different from Automattic and Mozilla in that no single organization benefits uniquely from contributing. For example, my company Acquia currently employs the most full-time contributors to Drupal but does not receive any exclusive benefits in terms of monetizing Drupal. While Acquia does accrue some value from hiring the Drupal contributors that it does, this is something any company can do.
Better incentives for Drupal contributorsIt's my belief that we should embrace the concept of "privileged groups" and "selective benefits" in the Drupal community to help us grow and maintain the Drupal project. Furthermore, I believe we should provide "selective benefits" in a way that encourages fairness and equality, and doesn't primarily benefit any one particular organization.
From the theory of self-interest it follows that to get more paid core contributors we need to provide more and better benefits to organizations that are willing to let their employees contribute. Drupal agencies are looking for two things: customers and Drupal talent.
Many organizations would be eager to contribute more if, in return, they were able to attract more customers and/or Drupal talent. Hence, the "selective benefits" that we can provide them are things like:
- Organizational profile pages on drupal.org with badges or statistics that prominently showcase their contributions,
- Advertising on the drupal.org in exchange for fixing critical bugs in Drupal 8 (imagine we rewarded each company that helped fix a critical Drupal 8 bug 10,000 ad views on the front page of drupal.org),
- Better visibility on Drupal.org's job board for those trying to hire Drupal developers,
- The ability to sort the marketplace by contributions, rather than just alphabetically
- ...
I'm particularly excited about providing ads in exchange for contributing. Contributing to Drupal now becomes a marketing expense; the more you contribute, the more customers you can gain from drupal.org. We can even direct resources; award more ad views in exchange for fixing UX problems early in the development cycle, but award critical bugs and beta blockers later in the development cycle. With some relatively small changes to drupal.org, hiring a full-time core developer becomes a lot more interesting.
By matching the benefits to the needs of Drupal agencies, we candirect more resources towards Drupal development. I also believe this system to be fair; all companies can choose to contribute to Drupal 8 and earn advertising credits, and all participants are rewarded equally. We can turn Drupal.org into a platform that encourages and directs participation from a large number of organizations.
Systems like this are subject to gaming but I believe these challenges can be overcome. Any benefit is better than almost no benefit. In general, it will be interesting to see if fairness and heterogeneity will facilitate or impede contribution compared to Open Source projects like WordPress and Mozilla, where some hold unique benefits. I believe that if all participants benefit equally from their contributions, they have an incentive to match each other's contributions and it will facilitate the agreement and establishment of a contribution norm that fosters both cooperation and coordination, while minimizing gaming of the system. In contrast, when participants benefit very differently, like with WordPress and Mozilla, this decreases the willingness to cooperate, which, in turn, could have detrimental effects on contributions. While not necessarily the easiest path, I believe that making the system fair and heterogeneous is the "Drupal way" and that it will serve us in the long term.
ConclusionsThere are plenty of technical challenges ahead of us that we need to work on, fun ideas that we should experiment with, and more. With some relatively small changes, we could drastically change the benefits of contributing to Drupal. Better incentives mean more contributors, and more contributors mean that we can try more things and do things better and faster. It means we can scale Drupal development to new heights and with that, increase Open Source's impact on the world.
Drupal Watchdog: Baby Steps
FADE IN:
INTERIOR. RONNIE’S APARTMENT – EVENING
(RONNIE paces, on the phone.)
RONNIE: Jeremy, I have a bit of a problem. My Drupal guru-guy got two million dollars seed capital for his start-up and moved to Palo Alto. But I was thinking, maybe you should send me to DrupalCon Austin... Why? So I can experience the whole Drupal community-thing first-hand... Really?... Awesome!
DISSOLVE TO:
EXTERIOR. CONVENTION CENTER – ESTABLISHING SHOT – MORNING
(RONNIE enters the massive Neal Kocurek Memorial Austin Convention Center, along with hundreds of enthusiastic Drupalists.)
[TITLE: DRUPALCON. DAY ONE]
INT. CONVENTION CENTER, REGISTRATION AREA
(Ronnie approaches a heavily costumed gentleman and explains that he is interviewing attendees for an article in Drupal Watchdog. HILMAR HALLBJÖRNSSON, a Drupal developer from Iceland, readily agrees to be questioned. Ronnie sets his cellphone to Record.)
RONNIE: Hilmar, why the helmet and horns?
HILMAR: Three days before I came here, I saw Morten DK announcing a big Vikings party and claiming that Vikings came from Denmark.
RONNIE: Uh-huh.
HILMAR: Well, everyone with a little knowledge of Vikings knows there are as many genuine Vikings in Denmark as there are high mountains. Which is: none.
RONNIE: So...?
HILMAR: So I decided to show him who was the boss.
RONNIE: And you showed him?
HILMAR: He was defeated and knelt before me.
INT. CONVENTION CENTER – LATER
(Exiting Exhibit Hall, Ronnie keeps up with a scurrying man-on-a-mission: JASON MOSS, an applications developer for the University of North Carolina in Chapel Hill.)
JASON: This is my fourth DrupalCon and what makes it most favorable over the last three is that it’s in a warm place.
RONNIE: Uh-huh. But aside from the weather –
JASON: – I always get a lot of little tidbits and useful tips at Drupalcon. It’s what keeps me coming.
RONNIE: Did you hear Dries’s keynote speech?
Drupal core announcements: No Drupal 6 or Drupal 7 core release on Wednesday, October 1
The monthly Drupal core bug fix release window is scheduled for this Wednesday. However, due to DrupalCon and other scheduling conflicts, there will be no release on this date.
Upcoming release windows include:
- Wednesday, October 15 (security release window)
- Wednesday, November 5 (bug fix release window)
For more information on Drupal core release windows, see the documentation on release timing and security releases, and the discussion that led to this policy being implemented.
Web Wash: 3 Easy Ways to Create View Modes in Drupal 7
View modes allow site builders to display the same piece of content in various ways. Drupal ships with a bunch of them out of the box like Teaser, "Full content", RSS and much more. There is even one for the search result page called "Search result". However, the two most prominent are Teaser and "Full content".
The "Full content" view mode is the one used to display content on its "node/123" page. It's the one you'll customise the most. Teaser, on the other hand, is used to display a summarised or trimmed down version of an article.
You can create as many view modes as necessary. But like many things in Drupal, they can be created in a few ways. They can be implemented using code and with a module or two.
In this tutorial, you'll learn how to create view modes in three ways: using hook_entity_info_alter(), using Display Suite and Entity view modes.
Drupal Association News: Drupal.org Content Strategy: Announcing a Request for Proposals!
Earlier this year the Drupal Association began work on an initiative to launch a redesigned and improved Drupal.org in 2015. The first step of the plan was the Drupal.org user research, which was recently finished. Today we’d like to issue a Request for Proposals (RFP) for the content strategy for Drupal.org, next step of our redesign project.
We’d like to develop the strategy, which will guide ongoing content development work performed by Drupal Association staff and the Drupal community, and inform our ongoing branding and design efforts.
If you or your company is interested in potentially performing the content strategy work, please see the dates and instructions in the RFP document for more detail. Also, if you know of a person or company who would be awesome for this project, please encourage them to participate. Thank you!
Jackson River: Drupal Architecture: Using Custom View Modes and Entity Reference For Building Landing Pages
DrupalCon Amsterdam: DrupalCon Amsterdam Kicks Off!
It's time for DrupalCon Amsterdam! We're excited to welcome more than 2,000 developers, designers, IT professionals and business executives from all over the world to Drupal’s largest-ever event in Europe.
We're especially excited to celebrate the progress made toward a Drupal 8 release. All critical “beta blocker” issues have been fixed and a beta version of Drupal 8 is the next step. Drupal 8 is full of promising improvements for developers, site builders, themers, IT professionals and marketers, and we can't wait to get it ready for the world.
Watch DrupalCon LiveDrupalCon Amsterdam will open this morning with a keynote from Dries Buytaert at 9:00 CEST -- but if you aren't in Amsterdam, don't worry! You can catch a live stream of the keynote (and Prenote!) here, courtesy of Brightcove.
The keynote promises to be fantastic -- Dries will discuss Drupal 8, as well as new ideas for how project contributors can be recognized. The Wednesday keynote will be excellent, as author and activist Cory Doctorow will take the stage to talk about net neutrality, privacy, and security. Doctorow’s keynote will be followed by a book signing.
DrupalCon Amsterdam: Looking Back on Monday in Amsterdam
We’re kicking off DrupalCon Amsterdam this evening, and our day of training and summits has been a huge success. At registration, over 900 badges were picked up, and this evening, the exhibit hall's opening reception promises to be a great bash.
We had more than 150 attendees show up for training, while the community summit and business summit both drew over 115 attendees apiece. The rockstars in our community also built some fantastic DrupalCon apps:
- One Shoe built an app for
Android and iPhone - Lemberg also built an app for Android and iPhone.
Remember that the fun starts tomorrow bright and early! The prenote will kick off the day of sessions & more at 8 AM— we recommend showing up to the Prenote to get a great seat for Dries’ keynote. (Plus, it’s fun!)
We hope you have a great time here in Amsterdam, and we’re looking forward to seeing you tomorrow.
Blair Wadman: Drupalcon for Non-Attendees
Drupalcon Amsterdam kicks off on today and it looks like it is going to be a great event, especially with Drupal 8 Beta about to be released! Sadly, we can't all be there. But that doesn't mean we have to miss out entirely.
Tags: Drupal CommunityPlanet DrupalBaris Wanschers: Drupal Training Day, the largest Drupal training worldwide
On Friday September 26th, the largest Drupal training worldwide was held in Amsterdam. Over 250 students, teachers and professionals from Belgium and The Netherlands participated in a curriculum of 5 different tracks introducing them with Drupal.
Both Drupal agencies as well as client organisation have serious demand of Drupal talent. The Dutch Drupal Foundation aims to onboard new talent. Drupal is a popular open source content management framework used by Ikea, European governments and Lady Gaga.
Schools and professionals from Belgium and The Netherlands attended the free Drupal Training Day with over 250 people, and 50 more on the waiting list. The workshop was the first attempt by the Dutch Drupal Foundation to create awareness amongst young professionals and universities and to meet increased demand on Drupal in the market. The program included workshops aimed at code development, site building and content strategy as well as one single track for university stakeholders to get Drupal introduced into the curriculum.
The Training Day was carefully prepared by a team of volunteers and 35 trainers. Drupal Training Day was organised on Friday before DrupalCon, the largest Drupal event in the world, which is held in Amsterdam this week.
Credits to Imre Gmelig Meijling for writing this post.
Tags: Planet Drupal Drupal Training Day Community Students
InternetDevels: Meet our bloggers! 100 post!
Site building is a hell of a challenge. Like designing from scratch is easier… Or managing dozens of people devoted to the project. Or keeping a 2-floor office in order and cleanness. Gosh, every duty and specialization is a challenge! And we can only thank our teammates for keeping to high standards of their profession! But every professional comes to a point when it is needed not only to use skills in practise but also to share secrets of mastery with the community.
Read morePhase2: Introducing OpenPublic 1.0: The Next Era of Digital Government
Since 2011, OpenPublic has been transforming government by building government websites and applications which ensure security, mobility, and accessibility. Through our work with numerous government agencies, our teams have developed deep xperts at recognizing and responding to the specific technical challenges faced by public sector organizations.
But that doesn’t mean we couldn’t get better – and we did. As of today, we are proud to introduce the new and improved OpenPublic 1.0. It is the culmination of years of developing content management platforms for federal, state, and local government agencies. With each project, we gained a better understanding of these organizations’ digital needs. From the Department of Homeland Security, to Gerogia.gov, to the recent launch of San Mateo County’s multi-site platform, OpenPublic has evolved to the mature product it is today.
What’s New in OpenPublic 1.0?The 1.0 product version encapsulates all the most important OpenPublic functionality in a clean collection of Apps, simplifying the distribution’s powerful out-of-the-box capabilities. Not only does OpenPublic 1.0 break the mold by “appifying” what was once a wilderness of modules and complicated Drupal configuration, the newly released product is also fully compliant with the Federal Information Security Management Act (FISMA).
The conception of OpenPublic 1.0 was based on Phase2’s significant experience building government technology solutions. While working with San Mateo County, we developed the idea of using apps to make the distribution’s functionality simple to configure for site administrators. Instead of wading through Drupal’s confusing configuration settings and modules, admins can now turn features on and off without affecting other parts of the platform. Apps like the Services App, Media Room App, Security App, and Workflow App provide distinct segments of functionality specifically designed to complement agencies’ digital needs. In July, Experience Director Shawn Mole elaborated on our OpenPublic App strategy and its potential to transform content management for the public sector.
Open Technology and GovernmentLike all distributions maintained by Phase2, OpenPublic is built with open technology, with good reason. Government agencies strive to reduce unnecessary costs for their taxpayers, and avoid the recurring licensing fees of proprietary software is a major benefit to open source solutions. Bypassing proprietary vendor lock-ins allows government to leverage the sustainable innovation of an open community working collaboratively to create, improve, and extend functionality, in addition to utilizing the community’s best practices for development. And because open technology is in the public domain, any agency can download, test drive, and learn about potential content management systems before choosing a provider.
San Mateo County, which worked with Phase2 to implement OpenPublic for the county’s CMS, recognized the value of openness in government technology and opened their code to the GitHub community. We were ecstatic that one of our clients embraced the open practices which are not only inherent in our work but laid the foundation for the development of OpenPublic. By making the innovative technology that went into building San Mateo County’s platform available for wider use, San Mateo County contributed to the government’s objective to foster openness, lower costs, and enhance service delivery. The “Open San Mateo” project demonstrates the power of open source to improve not just one government agency, but hundreds simultaneously by making the code available to other governments.
OpenPublic Moving ForwardWe are hopeful that OpenPublic 1.0 will continue to advance more open government initiatives. In the meantime, Phase2 has several exciting projects in which we’ll show off some of the product’s enhanced features. Keep an eye open for the launch of the Department of the Interior (among others)!
Learn more about OpenPublic 1.0 at openpublicapp.com. For more information about Phase2’s services and how we can help build your site, email us at openpublic@phase2technology.com or comment below!
Wizzlern: Drupal 8 Entity Cheat Sheet
Mike Stiv - Drupal developer and consultant: What is the features module?
Some time ago, a client asked me about the features module. He wanted to know what the features module is about and how it can help him with his project.
Their set up was a pretty complex e-commerce application involving multiple content types and integration with 3rd party services. Yet, they were not using features and would manually replicate any changes from the developer's machine to the server. He was concerned about maintaining the site and how he could add some new functionality without breaking the existing configuration.
My recommendation was that they start using features. He had not idea what it was so I wrote him an email explaining. Read on my full reply.
Tags: featuresDrupal PlanetYesCT: Prepping for DrupalCon Amsterdam Sprints and Mentoring
Netstudio.gr Blog: 13 + 1 Critical Technology Elements for a Successful Eshop
As more and more e-shops are created, e-commerce competition increases, and so does the demand for shops professionally created to work online. It is estimated that more than 7,000 e-commerce sites operate across the Greek internet market, 1,300 of which are currently competing across Skroutz, the most popular price comparison engine in the Greek online retail market.
If we add up the hundreds of thousands of international internet shops favored by 35-40% of Greek consumers, we easily realize one thing: it takes cutting-edge knowhow in setting up an online store for it to stand a chance.
A modern e-shop thrives on new features and tools – and there are tens or hundreds to choose from. Having created dozens of e-commerce sites – some with a multimillion euro turnover – and closely monitored dozens of others, we pinpoint some critical backbones:
In the following guide we will not refer to any means of promotion, such as Google AdWords, Facebook Ads, etc., although many of these tips can help towards the successful promotion of your web-shop.
These guidelines can be of help whether you’re making your commercial website from scratch or later, when you’re upgrading or remodeling it.
So, here goes!
Would you like to get this guide in PDF format for easier reading?Enter your email address and we'll send it to you instantly: 1. Easy Management
In today’s competitive environment, you need to be able to regularly update your commercial website. Administration ease is, therefore, critical, in terms of order handling and content management.
If you need special instructions, or worse, the developer's intervention to update your eshop, you either dig deeper into your company’s pockets, or forget about updating altogether – both obviously undesirable.
What you actually need to target for is being able to perform the daily operations of your website after a few minutes’ management environment training.
Tip 1: Check the platform you are planning to use for your web-store. Check its usability and flexibility before you invest in it. Is this platform already used by successful e-shops? Tip 2: Ask us to present you the management environment we have developed on Drupal, a powerful open source content management platform. You will be impressed! 2. Fast loadingNowadays, fast loading is a must-have for any wannabe e-shop success. Not only does it help your online store’s Google ranking and reduce its Google AdWords costs, it is also now considered as a basic requirement by online shoppers. If your e-shop takes more than four seconds to load, you lose 25% of your visitors. An experiment conducted by Amazon has shown that for every extra one-tenth of a second a page took to load, there was a 0.7% decrease in Amazon’s sales! That’s a 7% drop in turnover for each second of loading delay!
Like on any website, the time required for an e-shop to load depends on the time the server takes to generate the page and start sending its data to the user, as well as on the amount of data that has to be sent to the user's browser for the page to run.
Thus, the final time is affected by how efficiently the eshop is programmed and what caching techniques are being used, by the power and the burden of the server, the server's physical distance from the user, the optimization of the graphics that are sent to the user and the compression of the text files (html, css, js) sent from the server.
Tools Measuring Page Load SpeedYou can measure how fast any website loads using the tools built in most browsers.
Additional tools you can use to track your website's speed problems are Google Page Speed and Yahoo YSlow, both available as addons for Firefox and Chrome.
For example, on Google Chrome either through the menu or pressing the Ctrl + Shift + I (for Windows) or Command + Alt + I (Mac), you can open the developer tools, and select the Network tab. There, on each page loading, you can check the exact load time.
If load time exceeds 2 seconds on a second visit (with the data having been cached in the browser) or is more than 7 seconds on a first visit (with the browser's cache empty), focusing on your website's acceleration, you are on the right path towards an increase in sales.
Tip 1: Before you choose a platform or a website developer for your e-shop, check out other e-shops based on the same platform or made by the same developer for loading speed. Tip 2: You can ask us to make your online store load faster. Go ahead and take advantage of our team’s website rally speed expertise. 3. Search Engine FriendlyYour e-shop should be easily read and indexed by the main search engines (call me Google). If that isn’t the case, you will be missing an important sales channel that would work for you for free.
Search-engine friendly involves a number of things you need to pin down, the most critical of which being:
- The URL structure, i.e. the structure of the web addresses for your product and product category pages. The URL form should look like this: myeshop.com/product-category/brand/product-name and myeshop.com/ product-category /product-subcategory rather myeshop.com/index.php?id=XXX.
- The URLs should be generated from the titles of products and categories. In case of non-Latin characters, they first need to be replaced by the corresponding Latin ones). However, both of these functions should be done automatically.
- Similarly, you should make sure that for every e-shop page, and especially for the home page, the correct title tag and meta description is automatically or manually provided. That will determine what will be shown both in the user’s browser tab, and on Google results. As regards the meta keywords, you do not need to bother, as these have been completely ignored by Google for years.
- In HTML language used to build your website’s product and other pages, the appropriate heading tags (h1, h2, h3, etc.) should be used based on the new HTML5 standards for titles and subtitles.
- Mechanisms should be laid down in order to prevent the creation of duplicate content, mainly by setting up automated redirects to the correct pages. For example, the e-shop will open with or without the "www" in the web address, but it should always redirect to one of the two versions.
- An automated mechanism monitoring your online store on a regular basis for any incorrect links will immediately let you know whenever a problem arises so you can fix it.
- Finally, an updated XML sitemap should be automatically generated on a daily basis which will be read by Google. This helps Google to read and index your website, as well as display diagnostic messages that will help you to improve your website and its Google visibility.
Nowadays, searching in e-shops, especially those with many products, should be both fast and smart. Actually, it should work:
- On misspellings, too.
- Both in singular and plural. For example, if the user types the word "knife", the searching results should also contain the word "knives".
- Faaaast!
- In short, as expected by the guys and girls next door/screen.
At Netstudio, for about 4 years, we have been developing the search and filtering system FindasticTM, which essentially is faceted search based on Solr Server. It features superfast and smart search filters, as well as a free search engine that fetches correct results impressively fast. For example, try searching at http://bemine.de for "red adidas watches up to 55 euro". Note how quickly the results show narrowing the results down to what you are looking for as you go on typing your search.
Similarly, use the search filters in any product category. Notice that filters not fetching any results are automatically disabled, so that you will never end up on a blank page without products, and while at it, take a look at the Google friendly urls.
FindasticTM is designed to work at an equally high speed, even with many thousands of products. For example, at http://bemine.de, it searches through 18,000 products.
A faceted search engine like FindasticΤΜ can add a major competitive advantage to your e-shop, considering that a lot of large-scale online shops lack some important search functions.
5. Thorough Analytics and ReportingAt your brick-and-mortar store, you watch how many customers come every day, how many of them are buying, what sales you make, and then you try to improve the results. Likewise in the online world it is important that you have a full and clear picture of the users’ behavior at your e-shop and above all, to know which marketing moves pay, which do not and to what extent, in order to maintain the most efficient ones and be able to improve them. There are many tools that help in this direction, yet Google Analytics is considered the website statistics service par excellence, a safe stepping stone for monitoring your eshop’s progress.
Google Analytics is freely offered by Google and its installation is very simple, although a mere installation is not enough for you to get the full picture.
Make sure that your website is properly set up and configured, so that, besides the default basic information, it also reports:
Sales and Ecommerce DataSo that you can see the number of orders, revenue, the average order value and sold products on each Google Analytics report. For instance, you’ll be able to see what turnover and number of orders you have per traffic source.
Search TrackingKeeping track of your users’ searches you can get valuable information on how they perceive your ebusiness, as well as on their needs and wants.
Event TrackingIn its simple installation form, Google Analytics tracks the pages visited by your website’s users. Tracking events, you can also monitor actions that you would miss, like downloading of important files, clicks on links that drive users out of your website, error pages, video views etc.
GoalsMake sure you have configured the desired goals (orders, contact form submissions, signins) in Google Analytics, in order to track the conversion rate for each of them. You can read more about conversion rates and conversion rate optimization here.
Conversion FunnelBy setting up the Conversion Funnel, you can track the progress of users and see at which stage of the buying process most visitors will leak away. There you can step in for potential improvements.
6. Easy CheckoutOne of the most critical parts of every e-shop is the checkout, namely the order completion process. This is where the primary goal of every e-shop, i.e. sales, is completed. Therefore, it is very important that this process be easy, clear and simple for the user.
Anything that will distract or confuse the potential buyer may prevent the sale.
It is not rare for an eshop to have a large abandonment rate at the checkout process (this can be as high as 90%!).
The main points you should consider at this point are the following:
- During checkout do not ask for information that is not really needed. The more information you request, the more you actually discourage users from filling them in. Ask for only what is absolutely necessary. For example, in BeMine.gr you will see that if the user chooses to receive the order from their nearest courier service, we do not even ask for their home address, but only for their zip code so we can present the nearest reception points.
- Provide as many payment methods as possible. Cash on delivery, PayPal, Credit Card, Bank Transfer are the most important.
- Remove anything unnecessary and distracting from checkout. Experiment with hiding the menu bar during checkout.
- Offer the option of guest checkout, i.e. the option of purchase completion without the user being required to sign in.
- During checkout display information that will increase the user's trust, such as the SSL seal, any certifications, the organizations you belong to etc.
The more your e-shop succeeds and the daily orders increase, the greater role procedure automation will play. The two most important points are linking to your ERP or invoicing program, and linking to the courier company you work with.
Linking to ERPLinking to ERP is feasible on many levels, the most important being:
- Linking orders. So that the orders coming in your e-shop will automatically be registered in the ERP, regarding both customer and order data details. That way, you avoid mistakes and, with the click of a button, you can issue the relative receipt or invoice.
- Linking products. With this interface, you register your products only once in ERP and your e-shop is automatically updated. New products, updates and deletions already registered are automatically entered into the e-shop, either at regular intervals or whenever you choose to do so.
- Syncing inventory and stock count. This interface is required if the e-shop's inventory is common with that of your brickandmortar store. Whenever a product is sold at the physical shop, it is automatically removed from the eshop's available products page. In this way, you can avoid the embarassment of being unable to satisfy an order that came for a product out of stock.
This interface saves you time and errors, as the order details entering your web-shop are converted into Voucher, which is affixed to the parcel, without you ever having to type the shipping details.
Implementing this interface, we have saved more than 75% of the e-shop owners’ time required for preparation of deliveries.
Furthermore, the customer is informed by SMS of the progress of their order online. That builds on your online store’s reliability big time.
You can watch a Video explaining the Courier service interface on this blog post.
8. Mobile Friendly (tablets and mobile phones)Over 25% of site users surf the net from tablets and mobile phones. For many sites tablet usage exceeds 40% with a strong upward trend.
You can see the percentage of visitors that have visited your website through mobile devices in the relative Google Analytics report (Audience > Mobile > Devices).
The technique that has prevailed over the last three years in response to these developments is that of responsive design. Responsive design is what Google recommends for websites nowadays. Through responsive design the website or eshop automatically adapts to the dimensions of the user’s screen. Either we deal with a big or a small screen, or with a mobile device in horizontal or vertical orientation, the website adjusts the presentation of its data, moving or eliminating some of them to fit to the user’s screen.
For instance, visit www.pharmaplus.gr from your computer and use your mouse to alter the width of your browser window. You will see how all the elements of the website are automatically adjusted.
9. Easy creation of deals & discount coupons“Deal” is a very catchy word. So, depending on the object of your e-shop, you may need to use it quite often.
Ask for your e-shop to provide an easy way to create discounts, offers, gift vouchers, discount coupons or whatever is used to bring results within your industry.
At Netstudio we help run a great deal of online stores which need to put up dozens of deals of all types on a daily basis. E.g., "With each product of X Category, you get a product of Y Category for free. Or "Only for the next 3 days you get two products at the price of one". Or "Buying two products, you get one more for free."
Ask us to study your product line and develop together an offer strategy and the mechanisms that will allow you to have full control over the offers and discounts you will be presenting on your e-store.
10. Blog (Content Marketing)By keeping an updated blog, you get to:
- Create targeted content search engines read thus leading visitors to your site.
- Develop an "expert" profile on your subject, making visitors to trust you more.
- Create a community of targeted audience that creates additional content on your website (enabling visitors’ comments).
- Reveal your personality so that guests will have one more reason to buy from you, as many of them will identify with you. That way you avoid the mere comparison of prices, especially if you sell standardized products or services.
- Get feedback from the market, and you can stay targeted on the needs of your audience.
We would advise you to have the blog be embedded on your website. Don’t have it in another domain or subdomain. It could be in a subfolder such as example.com/blog.
At Netstudio we chose to base the online stores we make on the Drupal platform. That way we can always enrich the blog with the necessary functions in the same skin and administration environment as the eshop’s:
- Article posting as easy as writing in a simple text editor.
- Easy integration of images, videos, PDF files.
- Sortable articles (tagging).
- Programmable publishing and unpublishing articles.
- Access to a number of authors with different rights, such as writing, approval, publishing, unpublishing etc.
- Display all or part of blog content to specific user groups.
- Visitors’ comments published automatically or after screening (moderation).
- Connection with Social Media for many and easy likes, shares, tweets, etc.
In most successful e-shops, email marketing is a basic channel of sales creation.
The cost/benefit ratio from sending informative emails (newsletters) is too important to ignore.
A complete email marketing service should comprise the following:
- The correct strategy respecting the moral code of newsletter dispatches. Whatever you do, do not engage in practices that could characterize you as a spammer.
- A collection mechanism that lists the subscribers according to their interests.
- A mechanism that will allow you to easily write and send emails.
- Automated removal from email lists of people who wish to unsubscribe.
- SPF Record and DKIM signing of sent emails, so that they will not end up in the recipients’ spam folders.
- A mechanism that will provide you with detailed statistics on how many people received your email, how many of them read it, how many clicked a link and which link(s) they clicked on.
- A mechanism that will allow you to experiment with different subject lines (A/B Testing).
- Linking to Google Analytics, to track resulting sales performance and number of transactions.
- Automated creation of user's lists with specific behavior in your e-shop for targeted email marketing. E.g. customers who bought only once, or customers who put items in the basket but did not complete the checkout, or customers who bought from a particular product category or a specific product.
Depending on your eshop’s product line, social media (Facebook, Twitter, LinkedIn, Google+, Pinterest, Instagram, YouTube, etc.) can be another important source of sales, but also a tool to enhance your brand.
Using social media may be the subject of another book by itself. However, setting up your eshop, make sure the backbones are in place:
- Make it easy for the users to like, share, tweet, pin, etc.
- Show the right image and title fit for each of the social media.
- Provide the followers with continuous updates for major events, e.g. new offers or new arrivals.
The e-shop’s results can be optimized and your business can become much more profitable, if you embed a culture of measurement, testing and continuous improvement.
The two main tools you can use are Usability Testing and Experiments (A/B Testing & Multivariate Testing).
Usability TestingBoth you and your website developer are so involved in what you do so that you cannot see what may possibly confuse the user. Just sit next to a friend and ask him to enter your e-shop and in a few minutes you will be able to see it through his or her eyes.
The standard usability testing process is very expensive and not every eshop can afford it. At Netstudio we have developed http://www.userfeel.com, a remote usability testing tool that allows you to see a video with users performing the desired actions on your website, at a cost of $39. Usually, 5 usability tests are enough to reveal quite a lot and may lead to significant improvements for your website.
A/B Testing & Multivariate TestingNo matter how sure you are about the changes and improvements that you want to make on your page, it is advisable to measure their actual impact. Quite often, changes we believe they will bring an increase in sales end up causing a decrease.
Actually, you can play it safe. With A/B Testing and Multivariate Testing, you can test different variations in different groups of visitors simultaneously, and see which variation works best.
Watch the video on page http://www.netstudio.gr/en/conversion-rate-optimization-case-studies where we describe how we increased the conversion rate of our customers’ websites and e-shops carrying out experiments on their websites.
Tip: You can use tools such as Optimizely, Convert or VWO to setup and perform your experiments. 13 + 1. Professional Design & PhotographyAll the above will yield more in the context of a professional design.
No matter how good products you have, or how well you describe them, either on site, on blog, on Facebook, or in a Newsletter, a smart skin will increase your prestige and rates. In other words, your website needs to look neat, and be easy to grasp and use.
Invest in:
- A professional design of your corporate identity (logo, letterhead, business cards, folders, etc.).
- Professional shooting of your merchandise, premises and team.
- Professional design of your website, Facebook page and Newsletter.
You can ask for our consultation on how best you can implement all the above, or make them work for your online business.
You can appreciate the quality of our services with a look at some case studies.
Bottom LineTo some, e-commerce seems like an easy solution that will bring customers from all over the world. To the down-to-earth, it’s more like a mountain of new skills and knowledge they need to conquer.
This guide aims to provide the basic guidelines for setting up a promising e-shop. It is not all there is to it, just the fundamentals.
Our advice is that, if you never had relative experience, you’d be better off hiring a consultant or an experienced e-shop development company. Their fees will be written off before you know it.
You can contact Netstudio and Yannis Karampelas via our contact form. We will be glad to hear your comments on this guide and give you everything you need as you are setting out for your online journey.
We wish you success!
TweetPixelite: Environment aware Drupal sites
As a course of developing for larger Drupal sites, you typically find yourself having multiple environments, one for development, one or more for staging or user acceptance testing, and another for production (and perhaps disaster recovery).
One thing that always comes up is making Drupal "environment" aware, so it knows how it should behave, what modules should be turned on (or off) and what servers it should be talking to for instance.
Environment moduleThe environment module allows you to define arbitrary environments (it also comes with some out of the box) in code. Example hook
/** * Implements hook_environment(). */ function HOOK_config_environment() { return array( 'prod' => array( 'label' => t('Production'), 'description' => t('Live sites are in full production and browsable on the web.'), 'allowed' => array( 'default' => TRUE, ), ), 'dev' => array( 'label' => t('Development'), 'description' => t('Developer machines.'), 'allowed' => array( 'default' => FALSE, ), ), 'staging' => array( 'label' => t('Staging'), 'description' => t('Bug fixes and testing are done here.'), 'allowed' => array( 'default' => FALSE, ), ), ); }You also may want to remove the default environments that come with the environment module
/** * Implements hook_environment_alter(). */ function HOOK_config_environment_alter(&$environments) { // Remove default environments. unset($environments['production']); unset($environments['development']); }Using this code, and some magic in settings.php, you can effectively tell Drupal which environment it is by switching on the HTTP_HOST. A stripped back example is:
// Include environment-specific config by parsing the URL. // To override this, set $environment in settings.php // BEFORE including this file. if (!isset($environment)) { if (strpos($_SERVER['SERVER_NAME'], '.demo.net.nz') !== FALSE) { $environment = 'staging'; } elseif (strpos($_SERVER['SERVER_NAME'], 'local') !== FALSE) { $environment = 'dev'; } else { // Default to production. $environment = 'prod'; } } // The environment module uses a lowercase variable. $conf['environment']['default'] = $environment; define('ENVIRONMENT', $environment); // Load the environment config file, followed by host-specific // over-rides (if any) in non-production environments. $conf_path = DRUPAL_ROOT . "/sites/default/"; require $conf_path . "settings.$environment.php";Note this also lets you include a separate PHP file called "settings.dev.php" for development, where variable overrides (using global $conf) can be done on a per-environment basis.
Environment switchingA natural extension of the environment module is to allow pulling a production database back to development, and then "switching" it into a development state. This switching is already a hook you can implement, allowing you to react on both the current and target environments.
An example of this is from the module's homepage:
/** * Implementation of hook_environment_switch(). */ function HOOK_environment_switch($target_env, $current_env) { // Declare each optional development-related module $devel_modules = array( 'context_ui', 'devel', 'devel_generate', 'devel_node_access', 'update', 'views_ui', ); switch ($target_env) { case 'production': module_disable($devel_modules); drupal_set_message('Disabled development modules'); return; case 'development': module_enable($devel_modules); drupal_set_message('Enabled development modules'); return; } }Other common things we do in our environment switch to development include:
Removing JS and CSS aggregation
variable_set('preprocess_css', 0); variable_set('preprocess_js', 0); drupal_set_message(t('Removed aggregation from CSS and JS.'));Changing the Apache Solr environment to point at localhost
if (module_exists('apachesolr')) { $solr_env = array( 'url' => 'http://127.0.0.1:8983/solr/dev', 'make_default' => TRUE, 'name' => 'DEV', 'env_id' => 'solr', 'service_class' => '', 'conf' => array( 'apachesolr_read_only' => '0', ), ); apachesolr_environment_save($solr_env); drupal_set_message(t('Set solr environment to @name at @url', array( '@name' => $solr_env['name'], '@url' => $solr_env['url'], ))); }Preventing API writes to production systems
variable_set('brightcove_api_write_enabled', 0); drupal_set_message(t('Stopped the Brightcove write API sync.'));Granting helpful debugging permissions to certain roles
if (module_exists('devel')) { $dev_perms = array( 'access devel information', 'switch users', ); user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, $dev_perms); user_role_grant_permissions(DRUPAL_AUTHENTICATED_RID, $dev_perms); }The list goes on here.
Environment indicator moduleNow that Drupal is environment aware, it is really helpful if Drupal can inform the user what environment they are currently looking at. Out of the box the environment module has no UI, so enter the module environment indicator to come save the day.
The new 7.x-2.x branch of environment indicator contains a lot of improvements over the 7.x-1.x branch, one of which is the integration with the core toolbar and shortcut modules.
To illustrate this, here is a screenshot of our toolbar in development (some links were stripped)
The module also alters the favicon to include a tiny letter and coloured background to match the colour you chose
This way you will never again forget which environment you are using, as the colours will be right there at the top of every page.
CommentsI am keen to hear how other people solve the issue of environment aware Drupal applications, and how this is communicated to the end users of the application. What other modules are out there? What experiences have you had?
Tags drupal drupalplanet environment hosting Source Environment Indicator Category TutorialDon't Panic: A blog about Drupal: First day of DrupalCon Amsterdam
My first day of DrupalCon Amsterdam comes to an end, and behind me are a visit to the wonderful sprint venue Berlage, which is located near the train station in the center of Amsterdam, and a loooong walk to Vondelpark (no, not Wunderkraut-sponsored Wunderpark, which many suggested). My global aim for this DrupalCon is to dive into the code of Drupal, becoming more custom to the code behind Drupal. Normally I classify me as a Drupal user, I use modules and tune them to make Drupal do the stuff I want Drupal to do. But I want to evolve, to learn something more than just using Drupal. So when my co-workers are going home on Thursday, I will stay for the sprints on Friday and Saturday to hopefully learn something about coding for Drupal.
My visit to Berlage was a small step in that direction, to see if I can help out and learn something. It turns out I came just when people were leaving to welcome the people coming to DrupalCamp Amsterdam by bike (!). I knew some of these people, so naturally I came along to Vondelpark to welcome the cyclists. A barbecue was firing up, beers were cooling and people were nice to talk to. I met a whole bunch of new people, and some old acquaintances as well (which was surprising since I don't consider myself a Drupal-globetrotter).
The local Drupal Community really showed off a good time, arranging this barbecue, and they also talked about what will happen during the following couple of days, which really looks promising. There are around 15 persons in the local community, and it seems they have done a good job! It's going to be nice seeing what will become of this.
Drupal Association News: Drupal.org User Research Results: User Personas
Back in May the Drupal Assocation with the help of the Drupal.org Content Working Group kicked off user research project for Drupal.org. Our goal was to understand who are our users, how do they use the website, what is their ideal user experience. We wanted to understand what are the main segments of our audience and define their priority so we could focus our development efforts. This user research is a first step on the path to a complete Drupal.org redesign. For the redesign to be successful, we wanted to have a complete picture of everyone who uses Drupal.org.
This user research was conducted with the help of Whitney Hess, user experience coach. We are thankful to Whitney for her time and experience she shared with us. It was a great pleasure working with her.
Now to the results we want to share.
The ProcessWe kicked of the project with a workshop during DrupalCon Amsterdam. Participants included members of the Drupal.org Working Groups (Content, Software and Infrastructure), members of the DSWG Leadership teams (Developer and Community Tools), and the Drupal Association staff members.
Findings from this first workshop you can find in the blog post.
Our next step was user interviews. During DrupalCon Austin and in the weeks following the event we’ve conducted 30 user interviews with various people: new to Drupal, long-term community members, ex-Drupalistas; developers, site builders, designers, content strategists, PMs, etc.; located in North and South America and Europe. Interviews were conducted by Whitney Hess, Joshua Mitchell, Roy Scholten and Tatiana Ugriumova (myself).
Once we had completed several interviews, Whitney and I started synthesizing them and developing personas.
In the middle of July, during our annual all-staff onsite week at the Drupal Association, we had the second workshop of this project. Drupal Association staff and Whitney Hess took a look at the work-in-progress personas and our original objectives, to make sure they still made sense and to prepare them for review by the working groups and board.
The ResultsObjectives for a new Drupal.org:
- Be the home of the Drupal community. Central source of relevant info/answers, collaboration, education and talent.
- Provide learnable, efficient tools to help coordinate the advancement of Drupal ecosystem.
- Encourage people to develop themselves, their Drupal proficiency, their careers & build human connections over time.
Based on the insights we learned in our research we decided to center our personas around competency in Drupal and the Drupal ecosystem.
We modified Dreyfus's model of skill acquisition as a basis for our persona structure. This model suggests 5 levels of competency, which for our purposes we call:
- Newcomer
- Learner
- Skilled
- Expert
- Master
For further clarity and focus, we determined primary and secondary personas. Primary personas are who we design for first. Each primary persona requires their own set of features and content, and the needs of a primary persona will not be met if we do not design for them explicitly. The needs of secondary personas can mostly be met by focusing on the primary personas. However, there are a few needs specific to them that we will need to accommodate for.
Based on the goal of growing the community and the usage of Drupal, we determined the primary personas to be: Learner and Skilled. Our secondary persona is Expert. Newcomer and Master are our tertiary personas.
This is a very short summary of the research results. More information and an actual personas can be found in the full report below.
Get the full Drupal.org User Personas report: Google Doc | Pdf
We'd like again to say thanks to Whitney for helping us during this process.
As I mentioned above, user research is the first step of a greater project. Our next step is content strategy work for Drupal.org. We'll be posting RFP for it shortly, watch this blog.