Updated on 17 October 2017


[ This topic needs to be completed. ]

Translation occurs at several levels. In Drupal 8, everything is already in core and just needs to be enabled.
Start by enabling the Language module, then add at least another language.

  • Content entity translation: enable the Content Translation module.
  • Configuration entity translation (everything that lives in the YAML files) : enable the Configuration Translation module.
  • User interface translation (everything that is defined by the t function): enable the Interface Translation module.

The most probable use case is that you want to enable the 4 modules for a fully multilingual website.

A really valuable serie of blog posts is the translation tidbits serie from Gábor Hojtsy.
In a serie of 20 posts, he covers everything that you should know about the translation system

Here is the key link to configure your website: /admin/config/regional.

Get clean URL's based on patterns

Use the Pathauto module.

Redirect URL's

To fix 404 or to handle automatic URL renaming, use the Redirect module.

Choose between decimal or float

Choosing between float or decimal

When adding a new field, you could have to answer this question for numbers.
This is pretty well explained in this article Decimal, Float or Integer in Drupal Fields?

As a summary:

Float is definitely the most confusing of the number fields.
Here's our simple rule: if you don't know what a floating point number is, you don't need to use the Float field.

So, in most cases, just use Decimal.

Access control

Per entity access

The Content Access (still in development for Drupal 8) covers content access per content type with default values and the possibility to override them per content.

Also, have a look at the ACL and Group modules.

Per field access

The Field Permissions module

Comparison and Overview of Access Control modules

Private file system

This can be used for file and image fields and should be done prior to any content insertion for this field.

  1. Edit the sites/default/settings.php file, then uncomment and set this value, preferably outside of the docroot:
    $settings['file_private_path'] = '/path/to/site/private-files';
  2. Cache rebuild
    drush cr
  3. Go to Configuration > Media > File System (/admin/config/media/file-system) and check the "Private local files served by Drupal." radio at the bottom of the page.
    Drupal private file system
  4. Configure your field(s) per entity type (Node, User, ...) to use the private file system.
    Drupal entity field private image

Share configuration between environments

See also the development section about configuration management.

Send mails reliably

The easiest configuration is to use a transactional email solution like Mailgun (10,000 emails free every month), Sendgrid or Mandrill.
Then, configure it via the SMTP Authentication Support module.

Spam prevention

  • If your website is not based on user registration, uncheck the Configuration > Account settings > Who can register accounts?
  • Review if comments are open (they are by default on the Article content type).
  • Honeypot
  • reCAPTCHA (Mollom will be deprecated in April 2018).

Get backups

Use the Drupal Backup and Migrate module if your hosting provider does not cover this case.
It allows to make backups manually or on schedule.

Administration UI improvement

A list of modules to improve the authoring experience.

More projects about Author Experience (AX)

Search improvement

If the default search is not sufficient and you need features like facets, autocomplete, ... some modules are achieving this use case:

Add new comment

Restricted HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Only images hosted on this site may be used in <img> tags.
CAPTCHA This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.