Наша миссия в Cosmic JS — помогать командам создавать отличные веб-сайты и приложения, и нам нравится, когда разработчики показывают нам потрясающую работу, которую они проделали с помощью платформы. В этом духе мы представляем новую серию Spotlight, в которой мы сосредоточимся на конкретной команде или разработчике, который создает что-то классное с помощью Cosmic JS.

В этом обзоре мы сосредоточимся на Джоне Блумере, который недавно запустил веб-сайт Cosmic JS для своего бизнеса Tone Temple. Джон уделил немного времени, чтобы ответить на несколько вопросов о своем бизнесе, процессе разработки и некоторых своих любимых рок-звездах, не являющихся разработчиками. И мы полностью упустили из виду иронию в том, что его новый веб-сайт, демонстрирующий безголовые гитары, создан с использованием безголовой CMS.

Cosmic JS: Не могли бы вы немного рассказать о бизнесе ToneTemple?
Джон: Tone Temple — это австралийский магазин гитар с небольшим выбором эксклюзивных брендов, в которые мы искренне верим. У нас есть только уникальные и продукты высокого класса, такие как гитары Strandberg и специальные звукосниматели Evil Angel, и в ближайшие месяцы мы будем расширять ассортимент наших брендов. Наш бизнес основан на отличном обслуживании клиентов и глубоком знании и понимании нашей продукции.

У вас есть красивый новый веб-сайт, который, как вы упомянули, создан с использованием React и Redux. Можете ли вы рассказать о своем решении использовать эти технологии?
Я использую React и Redux для создания веб-приложений в течение последних 10 месяцев для 2 разных корпораций и наслаждаюсь возможностью создавать компоненты в ES6/7. и иметь простой способ сохранять и получать состояние приложения из централизованного хранилища. Мне также нравится, как легко тестировать компоненты React с помощью Expect и Enzyme.

Можете ли вы рассказать, почему вы решили использовать API для размещения своего контента вместо установленной CMS?
За последние 6 лет я создал много веб-сайтов на основе CMS для клиентов, используя Wordpress, поскольку я я хорошо разбираюсь в PHP, однако мне не удалось создать решения, которые хотели мои клиенты, без установки дополнительных плагинов для настраиваемых полей, SEO, кэширования и т. д. Когда я увидел Cosmic JS, я понял, что могу думать о том, какие именно данные я хочу сохранить вместо того, чтобы решать, какие уже сложные объекты шаблона мне пришлось расширить дополнительными полями. Удаление архитектуры, основанной на страницах и ресурсах, на которой построены традиционные CMS, действительно позволяет вам сосредоточиться на том, как организовать контент, чтобы сделать его доступным для редакторов контента и эффективно доставлять его для использования приложениями.

Можете ли вы немного рассказать о своем процессе разработки и управления контентом, а также о том, как Cosmic JS вписывается в него?
С Tone Temple архитектура данных была довольно простой, и я решил, что мне действительно нужны только 2 объекта, глобальные и бренды. Globals содержит такие элементы, как логотип сайта, текст нижнего колонтитула, а затем некоторые данные для домашней страницы, такие как основной контент и видео внизу страницы, которые используют новое поле Repeater. Бренды настроены с набором метаполей, которые позволяют мне загружать 2 изображения заголовка страницы бренда разного размера (я могу создать 3-е для мобильных устройств), дополнительные изображения заголовка для карусели главной страницы, которые связаны с флажком, чтобы указать, следует ли отображать на домашняя страница и, наконец, основной контент и еще одно поле Repeater для видео. Video Repeater имеет всего два поля: одно для названия видео, а другое для идентификатора YouTube. Затем я запускаю проигрыватель YouTube в оверлее по клику, используя собственный компонент React, который я создал. Cosmic JS позволяет мне очень легко добавлять новые бренды с возможностью сохранения в качестве черновика, если окончательный контент не совсем готов для показа на сайте.

Я извлекаю глобальные объекты и объекты брендов асинхронно при загрузке и заполняю хранилище Redux, что происходит очень быстро. Контент обычно отображается менее чем за секунду, а большие изображения для карусели домашней страницы отображаются к тому времени, когда вы достигаете 1,5 с. Я использую встроенную в Cosmic JS интеграцию с Imgix, чтобы легко создавать srcsets для изображений, чтобы я мог обслуживать изображения меньшего размера в зависимости от медиа-запросов, что помогает с загрузкой страницы. Imgix CDN гарантирует, что изображения возвращаются и отображаются очень быстро.

Какие технологии разработки приложений вы хотели бы использовать сейчас или в будущем?
Я очень рад возможности использования GraphQL и Relay в ближайшем будущем и, возможно, скоро начну это изучать. и обновите Tone Temple для использования.

Кто ваши любимые гитаристы? Вы сами музыкант?
Я действительно музыкант, я учился в Бирмингемской консерватории в Великобритании и получил степень бакалавра (с отличием). Я также управлял GuitarNoize.com в течение 9 лет, пока совсем недавно я не объединился с замечательным деловым партнером для запуска Tone Temple. У меня слишком много любимых гитаристов, чтобы перечислять, у меня очень разные музыкальные вкусы от блюза до металла. Джо Сатриани всегда был моим самым любимым гитаристом, но сейчас одним из моих любимых гитаристов и композиторов является Дэвид Максим Мичич.

Посетите веб-сайт Tone Temple, вы можете следить за Джоном в Twitter и узнать больше о его разработке на его странице GitHub.