1 of 24

One Possible

Future of Drupal

Vasyl Yaremchuk

2 of 24

Vasyl Yaremchuk

Current position: CMS Department Manager

at (https://speedandfunction.com)

@vasilyyaremchuk

drupal.org/u/yaremchuk

Personal site: https://abzats.com

3 of 24

What platform

do you use for a personal site?

4 of 24

Let’s slightly discuss some possible options

  • A static HTML

  • SaaS platform (Wix, WebFlow, Squarespace)

  • CMS solutions (WordPress, Drupal, Joomla)

  • Static website generator (Hugo, Gatsby, Jakyll)�See also https://jamstack.org/generators/

5 of 24

The main items to select the platform from my point of view

  • It could be updated several times per year, not frequently that once per month

  • I don’t want to spent significant money for the hosting

  • I’m not sure that I have to spend several hours per month to keep CMS updated

  • I need to show my expertise in Drupal

6 of 24

Does it make sense to use Drupal?

Pros:

  • I have expertise in Drupal

  • Drupal has all required functionality out-of-the-box

Cons:

  • Drupal requires good hosting (Pantheon, AWS, Digital Ocean)
  • I need keep Drupal up to date (security updates)

7 of 24

Let’s imagine the ideal solution?

The site admin area exists only when you need to make changes on the site

It doesn't take hosting space and resources

It doesn't require it to be up to date to avoid vulnerabilities

Does it look impossible?

8 of 24

My personal site (abzats.com) made with Drupal

  • Lighthouse score:

9 of 24

But it’s just a static site on Netlify

10 of 24

Tome: A static site generator for Drupal 8/9

https://tome.fyi/

Tome Sync - Store your content and config as files in Git.

Tome Static - Generate static HTML from your Drupal site.

Tome Netlify - Deploy statics to the Netlify platform.

11 of 24

How it works in outline?

12 of 24

How it works for me?

  • Clone content and config files from repository.�$ git clone git@github.com:...
  • I prefer Lando with Drupal 9 recipe to run it locally.�$ lando start
  • I need to get 3rd party packages.�$ lando composer install
  • I need to install Drupal with my content and config settings from files.�$ lando drush tome:install
  • I need to login in admin.�$ lando drush uli

  • I’m handling with some content updates
  • I need to generate a static site, I do that in admin /admin/config/tome/static/generate
  • I need to deploy my update on Netlify, I do that in admin�/admin/config/tome/netlify/send
  • I need to export my changes in files�$lando drush tome:export
  • I need to push my changes in repository
  • I can get rid the admin�$ lando destroy�����

13 of 24

File structure

In repository:

�- /config

- /content

- /files

- /modules

- /scripts

- /themes

.gitignore

.lando.yml�composer.json�composer.lock�settings.php

Locally after composer install:

�- /config

- /content�- /drush

- /files

- /html

- /modules

- /scripts

- /themes

- /vendor

- /web

.gitignore

.lando.yml�composer.json�composer.lock�settings.php

14 of 24

What are profits of a such approach?

Security

Performance

Inexpensive hosting

Unlimited customisation abilities of Drupal

15 of 24

Is it possible to have the same values with a permanent Drupal admin?

Yes!

You can have your admin locally permanently.�You can have cheap hosting for your admin it could be EC2 micro instance.

You could use Pantheon.io dev site, that is free.�

Just protect it by Basic Authorisation and forget about vulnerabilities.�

16 of 24

How are we going to handle with

dynamic content?

The most usual dynamic content on personal sites:

  • Comments�We can use 3rd-party services, for example, Disqus
  • Contact form�We can use Netlify Forms (https://www.netlify.com/products/forms/)
  • Search�We can use Lunr Search (https://www.drupal.org/project/lunr)

17 of 24

Does it make sense only for

personal pages or marketing sites?

Let’s imagine an Internet Store:

Private

Infrastructure

Drupal

  • Drupal users (editors)
  • Products

Database

Front-end implementation

3rd party Storage or microservices

  • Store users
  • Orders

Manual

Order Processing

New Products

Cart and

Checkout

18 of 24

Alternative of Tome in a such architecture?

19 of 24

Do we really need Drupal?

Private

Infrastructure

Some custom

CRM/Admin Dashboard

Database

Front-end implementation

3rd party Storage or microservices

  • Store users
  • Orders

Manual

Order Processing

New Products

Cart and

Checkout

20 of 24

What are the reasons to use Drupal as a core of a such infrastructure?

  • We have expertise in Drupal

  • We have Tome ecosystem to handle with statics and some recipes for dynamic content like Lunr Search

  • We have a number of modules in Drupal ecosystem to get exactly that we need without significant effort

21 of 24

A custom “WIX” on Drupal

Saas

Platform

Drupal

  • Drupal users = platform users
  • Custom page builder (Paragraphs, Gutenberg, Layout Page builder)

Database

Individual static site

Individual static site

Individual static site

3rd party static hosting

22 of 24

One more bonus idea how we can use Tome

Tome Sync is the most powerful module in the ecosystem!

You can use it to prepare demo sites instead using installation profiles such as Umami profile.

To setup a demo site you just need:�$ git clone …�$ composer install�$ drush tome:install

23 of 24

I want to express my gratitude to

Samuel Mortenson�(the main contributor of Tome ecosystem)

https://www.drupal.org/u/samuelmortenson

24 of 24

Questions?

You can also ask any questions in drupal.slack.com @Vasyl

or use contact form on https://www.drupal.org/u/yaremchuk

or message me in Skype to vasilyyaremchuk