Бизнес

Когда Gatsby заменит WordPress: интервью с Михаилом Новиковым

Gatsby — не просто генератор статических сайтов. Это амбициозный проект, создатели которого замахнулись на долю WordPress на рынке CMS. Вокруг Gatsby сейчас шум и хайп в блогосфере и соцсетях, поэтому мы решили не отставать. Пообщались с Михаилом Новиковым, Staff Software Engineer, Core Team Gatsby.

Дмитрий Дементий: Михаил, добрый день. Расскажите, пожалуйста, о себе: кто вы, чем занимаетесь?

Михаил Новиков: Приветствую читателей. Меня зовут Михаил Новиков, работаю в Gatsby. Развиваю здесь opensource-проекты, занимаюсь GraphQL. Живу в Хельсинки, организовываю конференции React Finland и GraphQL Finland. Управлял стартапом Reindex, но сейчас сконцентрировался на работе в Gatsby.

Михаил Новиков, software engineer

Михаил Новиков, Staff Software Engineer, Core Team Gatsby


Д.Д.: Расскажите, пожалуйста, о Gatsby в двух словах.

М.Н.: Gatsby — фреймворк, написанный на React. Это генератор статических сайтов, с помощью которого можно создавать полноценные веб-приложения.

Gatsby выделяется очень высокой скоростью загрузки страниц. Фреймворк использует предварительную загрузку: когда пользователь открывает главную страницу, браузер в фоновом режиме подгружает данные, необходимые для отрисовки других страниц сайта, на которые есть ссылки с главной.

Сайт на Gatsby представляет собой React-приложение, поэтому загружаются только данные о разнице между страницами, а не страница целиком. При переходе обновляется виртуальный DOM, посетитель наслаждается высокой скоростью загрузки. Протестировать Gatsby можно на демо-сайте.

Д.Д.: Gatsby — генератор статических сайтов, написанный на React. Зачем понадобился ещё один генератор, если есть Jekyll, Hugo и другие неплохие инструменты?

М.Н.: Во-первых, до Gatsby не было генератора сайтов на React. Сейчас Gatsby пользуется популярностью в React-сообществе, этот генератор активно используют фронтенд-разработчики.

Во-вторых, Gatsby создаёт полноценные приложения. Все сайты, созданные с помощью Gatsby, поддерживают функциональность PWA из коробки. То есть владельцу сайта ничего не надо делать — его ресурс уже является прогрессивным веб-приложением со всеми преимуществами этой технологии. Также Gatsby поддерживает эффективную подгрузку страниц и картинок и другие функции, которые улучшают perfomance сайта.

Д.Д.: Gatsby сейчас активно развивается, вижу вокруг него информационную активность и даже хайп. В чём особенность этого инструмента?

М.Н.: Да, действительно, сейчас многие разработчики и представители CMS хотят работать с Gatsby. Поэтому вокруг инструмента началась информационная активность.

Наверное, главная особенность Gatsby — высокая скорость загрузки страниц. Это привлекает разработчиков и рядовых пользователей. Более того, высокая скорость доступна из коробки, то есть разработчикам не нужно делать лишнюю работу, как-то ускорять сайты.

Ещё одна особенность — Gatsby с помощью готовых плагинов умеет собирать данные из разных источников. Это могут быть CMS или файловые системы. Благодаря GraphQL Gatsby может одновременно работать с несколькими источниками, и это не влияет на perfomance сайта.

Д.Д.: Gatsby поддерживает PWA «из коробки». То есть созданный с помощью Gatsby сайт по умолчанию является прогрессивным веб-приложением. Можете рассказать об этом? Какие преимущества получают владельцы сайтов и посетители благодаря PWA?

М.Н.: PWA или прогрессивные приложения в первую очередь интересны благодаря офлайн-режиму. То есть сайты, поддерживающие функциональность PWA, работают даже без подключения к интернету. Это может быть важным для проектов, у которых мобильная аудитория. Например, путешественники в самолётах могут потреблять контент без подключения к сети.

Также PWA умеют устанавливаться на мобильные девайсы: смартфоны и планшеты. Это повышает вовлечённость аудитории, то есть даёт дополнительные преимущества владельцам сайтов. По функциональности PWA пока уступают нативным приложениям, но эту технологию активно продвигает Google.

Д.Д.: Gatsby работает с GraphQL. Расскажите пожалуйста, какие преимущества это обеспечивает?

М.Н.: GraphQL обеспечивает интерфейс для получения данных из разных источников. Благодаря этому Gatsby удобно использовать с разными источниками данных, в том числе с так называемыми headless CMS. То есть работать с контентом можно в Contentful или в том же WordPress, а рендеринг обеспечивает Gatsby.

Д.Д.: Gatsby — проект с открытым исходным кодом. Это бизнес-проект или всё-таки некоммерческий проект? Если бизнес-проект, то можете рассказать о бизнес-модели?

М.Н.: Да, ядро Gatsby — opensource-проект, так будет всегда. Gatsby Inc — коммерческая организация. Мы предоставляем сервисы для тех, кто использует Gatsby. Например, Gatsby Preview — инструмент для контент-менеджеров.

Д.Д.: Читал, что Кайл Мэтьюз, основатель Gatsby, однажды назвал Gatsby убийцей WordPress. Это серьёзное заявление или шутка? Gatsby правда хочет «откусить» долю рынка у WordPress и стать топовым инструментом для создания сайтов? На WP работает треть сайтов в интернете и две третьих сайтов на CMS.

М.Н.: Конечно, пока это скорее шутка. Но у команды Gatsby действительно серьёзные амбиции, и мы хотим стать популярными. Ставим высокие цели, и если получится стать такими же популярными, как WordPress, будем рады.

Д.Д.: WordPress одновременно простой и функциональный. Чтобы разобраться с ним, не нужны какие-то специальные знания и сверхспособности. В то же время это универсальный движок, на котором можно сделать всё — от личного блога до корпоративного сайта или интернет-магазина.

Gatsby всё-таки не для всех. Не каждый рядовой пользователь захочет устанавливать Node.js, разбираться с Markdown’ом. Не все понимают, что это за surge.sh и GitHub Pages, на которых можно задеплоить сайт на Gatsby за 1 минуту. То есть чтобы Gatsby серьёзно претендовал на долю рынка WP, ему надо стать таким же простым. Можете прокомментировать мои рассуждения?

М.Н.: Действительно, пока Gatsby — инструмент для программистов. Но мы стараемся стать ближе к рядовым пользователям.

Первый шаг — хотим стать удобными для контент-менеджеров. Создать инструменты, которые пользователь без бэкграунда в программировании сможет использовать для публикации и управления контентом. Для этого мы выпустили Gatsby Preview, который позволяет видеть изменения на сайте, когда контент-менеджер редактирует публикации в CMS.

Второй шаг — мы двигаемся в сторону большей доступности для рядового пользователя. Хотим, чтобы он без технических знаний мог создать сайт на Gatsby.

Д.Д.: Чем Gatsby лучше бойлерплейта Create React App? Зачем человеку пользоваться генератором сайтов на React вместо React?

М.Н.: Create React App предоставляет отличную основу для создания приложения на React, но если нужны какие-то продвинутые фичи, это всё надо делать самому. Gatsby предоставляет многое по умолчанию, например, высокую производительность из коробки. Мы постоянно работаем над поддержкой в браузерах, добавляем новые фичи. То есть с Gatsby вы сразу получаете функциональный сайт, а с Create React App только среду для создания сайта.

Д.Д.: На сайте Gatsby есть большой каталог тем или шаблонных сборок. Здесь есть сайты-портфолио, блоги, корпоративные сайты и так далее. Эти темы делает сообщество. Как Gatsby контролирует безопасность и качество этих сборок?

М.Н.: Некоторые темы делает сообщество, некоторые делаем мы сами. Пока у нас нету зафиксированных стандартов и механизмов контроля, поэтому ориентируемся на обратную связь. Жалоб на темы, созданные сообществом, не было.

Д.Д.: Представьте, что к вам обратился знакомый юрист, художник или строитель. Он хочет сделать себе самостоятельно небольшой сайт-визитку и спрашивает вас, каким инструментом воспользоваться. Вы бы порекомендовали человеку разобраться с Gatsby, или всё-таки отправили бы его работать с более простыми инструментами?

М.Н.: Если этот человек хочет или планирует изучать программирование, порекомендую ему Gatsby. Если он не планирует развиваться в этом направлении, пока им будет удобнее работать с более простыми инструментами.

Д.Д.: Как индексируются в поисковиках сайты на Gatsby?

М.Н.: Сайты отлично индексируются. Gatsby генерирует статичный сайт, браузер и поисковый робот видят HTML. Поэтому с индексацией нет никаких проблем.

Д.Д.: Когда я впервые сделал тестовый блог на Gatsby и показал его знакомым, даже далёкие от веб-разработки люди заметили невероятную скорость загрузки страниц. Это одно из основных преимуществ Gatsby. А для каких проектов это важнее всего? Возможно, стоит рекомендовать генератор тем, чья аудитория пользуется смартфонами и мобильным интернетом?

М.Н.: Ключевая идея Gatsby — скорость загрузки страниц. Она важна для любых проектов. Кстати, скорость загрузки — один из факторов ранжирования сайтов в поисковых системах.

Д.Д.: Gatsby написан на React и пользуется популярностью в сообществе React. А насколько интересен этот инструмент специалистам, которые изучают PHP или Python? Им удобнее пользоваться фреймворками, написанными на «родных» языках, или всё-таки Gatsby подходит всем?

М.Н.: Мы сейчас активно работаем с сообществом WordPress, многие разработчики сотрудничают с нами. Это же касается и представителей других известных движков. Те же PHP или Python-разработчики могут использовать Gatsby для фронтенда, а бэкенд делать на привычных языках или фреймворках.

Д.Д.: Чего пока не хватает Gatsby? Есть ли какой-то пробел или пробелы, которые команда пока не закрыла? Что нужно, чтобы Gatsby выстрелил, и нём узнали так же, как о WordPress?

М.Н.: В данный момент нам не хватает удобства использования для простых пользователей. Эту проблему решит платформа, на которой каждый желающий сможет сконфигурировать свой сайт без специальных знаний. То есть мы развиваемся в сторону простых пользователей и хотим, чтобы Gatsby использовали не только программисты.

Д.Д.: Я видел, что Gatsby активно нанимает специалистов. Возможно, это заинтересует кого-то из наших выпускников или продвинутых студентов. Подскажите пожалуйста, кого вы ищете, какие требования предъявляете к кандидатам?

М.Н.: Да, мы активно нанимаем людей. Не требуем опыта работы с Gatsby. Нам важнее опыт работы с opensource-проектами. Прямо сейчас нужны специалисты в области accessibility, GraphQL, JavaScript, Node.js, React.

Д.Д.: Как работает команда Gatsby? Это распределённый коллектив? Как вы общаетесь друг с другом, как планируете рабочие задачи?

М.Н.: Да, это распределённый коллектив. У нас работают специалисты из США и Европы. Общаемся с помощью Skype, регулярно синхронизируемся. Раз в месяц проводим общий созвон. Три раза в год встречаемся лично, компания оплачивает перелёты и проживание.

Д.Д.: «Хекслет» — образовательная платформа, поэтому нашим читателям будет интересно получить рекомендации от опытного разработчика. Поделитесь пожалуйста советами, лайфхаками, своим видением: как стать крутым специалистом и попасть в крутой проект, такой, как Gatsby?

М.Н.: У каждого свой путь в разработку, каждый учится по-своему. Поэтому здесь сложно дать универсальный рецепт. Лично я рано пришёл в React и GraphQL, стал известным в сообществе. Много общался, посещал конференции. Это сыграло роль в моём развитии и карьере.

Д.Д.: Спасибо за интересный разговор!

М.Н.: Удачи читателям!

Дмитрий Дементий 04 сентября 2019
Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →