Home Статьи От нуля до развертывания: как я создал статический веб-сайт с нуля с помощью Netlify Gatsby

От нуля до развертывания: как я создал статический веб-сайт с нуля с помощью Netlify Gatsby

by admin

После первого года работы фронтенд-веб-разработчиком у меня появилась идея создать свой личный сайт. Это была бы платформа для демонстрации моей работы, обмена контентом и творческого выхода вне работы. Здесь я расскажу вам о своем опыте создания сайта с нуля до развертывания.

Покупка домена: Google Domains

Я начал с нуля, купив домен. Есть много вариантов. Я выбрал Google Domains, так как у меня уже была учетная запись, и мне не нужно было открывать другую только для этого. Это стоит 12 долларов в год (стандартная цена) и было чертовски быстро настроено. (К вашему сведению, вы также можете купить домен через Netlify.)

Прошло 3 месяца, когда мой домен был пуст. Я был слишком увлечен многими деталями запуска сайта. Сделав шаг назад, я понял, что мой сайт никто даже не увидит, пока я не решу заняться его активным продвижением. Как только я освободился от давления, я заставил себя положить что-то там, чтобы заполнить пустоту. Сняв тяжелый груз с плеч, я решил повеселиться и сделать что-то простое и веселое.

Первые шаги

При создании веб-сайта нужно учитывать многое: дизайн, пользовательский интерфейс/UX, доступность, SEO, аналитику и многое другое. Думать и планировать все сразу может быть ошеломляюще.

Чтобы было менее пугающе, я решил разбить его на этапы. Первый этап заключался в том, чтобы создать простую страницу «скоро» и развернуть ее. Затем, как только это было запущено, я мог работать за кулисами над проектированием, разработкой и совершенствованием сайта.

«Сделано лучше, чем идеально». — Шерил Сэндберг

Создание внешнего интерфейса: Gatsby.js

Впервые я узнал о Гэтсби в ReactNext конференцию, которую я посетил, и с тех пор мне было любопытно использовать ее. Альтернативой, которую я рассматривал, был Hugo, еще один очень популярный генератор статических сайтов, написанный на Go.

Gatsby.js также привлек меня, так как он основан на React.js, который мы используем в нашем стеке на Lemonade. Он также включает GraphQL, что я и собирался попробовать. Я за эффективность, поэтому мне любопытно, как GraphQL помогает более эффективно извлекать данные и позволяет интерфейсу меньше зависеть от логики сервера.

Когда пришло время выбирать шаблон, или «стартер», как их называет Гэтсби, я понял, что хочу что-то простое. Просмотрев популярные стартеры, я выбрал gatsby-starter-default за gatsby-starter-netlify-cms.

Почему? Я не хотел, чтобы сайт был прежде всего блогом. Со стартером Netlify у меня было бы много дополнительных зависимостей, в которых я не предвидел необходимости.

Первая итерация сайта представляет собой простую страницу-заполнитель «скоро» с акцентом на simple. Я черпал вдохновение из CodePen, создал свой собственный компонент React и добавил несколько пользовательских шрифтов и значков. Вот и все.

Чтобы отредактировать заголовок заголовка по умолчанию, меня аккуратно заставили (?) погрузиться в GraphQL. Вот уменьшенная версия того, как выглядит мой заголовок:

Вот основные выводы:

  • StaticQuery имеет 2 реквизита: query и render
  • SiteTitleQuery это имя операции. Думайте об этом как об имени функции. Это полезно для целей отладки и ведения журнала, позволяя вам легко искать конкретный запрос в вашей кодовой базе.
  • Одно из основных преимуществ StaticQuery за page query заключается в том, что он позволяет вам настроить запрос GraphQL в компоненте, где он используется (в отличие от передачи его в качестве опоры).
  • Я отредактировал свой заголовок в gatsby-config.js файл, в котором хранятся параметры конфигурации сайта. Это объясняет, где site in data.site.siteMetadata.title происходит от.

Хостинг: Netlify

С таким количеством доступных инструментов трудно понять, что подходит для масштаба проекта. Важными критериями для меня были:

  • Бесплатный хостинг для пользовательского домена
  • Простота в использовании
  • Возможность обслуживания динамического (а не только статического) контента
  • Встроенная защита HTTPS

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

  • Возможность просмотра предварительной версии перед развертыванием в рабочей среде.
  • Готовый функционал A/B-тестирования

Они как бы портят тебя таким образом, я был впечатлен.

Как только я достиг того, что вы видели выше, я решил, что он готов к развертыванию. Поскольку я не использовал Netlify в качестве провайдера DNS, мне пришлось настроить «пользовательский домен». я следовал за их tutorial, и через несколько минут он был настроен.

Мне оставалось только развернуться. Для этого есть несколько вариантов:

  • Continuous Deployment

Свяжите свою учетную запись Github (или другую), и Netlify автоматически создаст и развернет для вас, когда вы отправите свою новейшую версию. Вы также можете ограничить их доступ к Github только вашими общедоступными репозиториями.

1*RYT57lUC9wFjVJ_XNQQTOA
Выбор развертывания через «непрерывное развертывание»
  • Manual

Если вы решите не связывать свою учетную запись или, как и я, просто хотите попробовать это в первый раз, вы можете легко перетащить свой проект, чтобы запустить развертывание.

1*FuBIrBdIs23X5u5YY_XqOg
Выбор развертывания вручную с помощью перетаскивания

Я проверил это вручную для первого развертывания. Через 2 минуты (?) Сайт заработал.

1*vct7rqIr0jzonIqV3GU26g
Четкие и описательные журналы развертывания

Проверьте это → edenadler.com

ретроспективный

Для этого базового POC я рад, что не пытался делать причудливые вещи с GraphQL и не был слишком амбициозен с дизайном и исполнением сайта. Вы можете даже заметить такие вещи, как значок значка, которые все еще присутствуют в шаблоне Гэтсби. Я действительно хотел сделать самый минимум. Готово, а не идеально.

Создаете ли вы свой личный сайт, работаете над побочным проектом или пишете сообщение в блоге, не стремитесь к совершенству. Поставьте перед собой реалистичную, осязаемую цель и приступайте к работе. Если ваш проект предполагает опробование новых технологий, не пробуйте их все сразу. Разбейте проект на более мелкие задачи, которые вы можете выполнить за
день или даже вечер. Самое главное, получайте от этого удовольствие.

Мои следующие этапы

  • Наймите дизайнера и реализуйте проекты
  • Планируйте и добавляйте контент
  • Поэкспериментируйте с интеграцией GraphQL
  • … еще много идей?

Спасибо, что прочитали ✨ Если у вас есть вопросы, не стесняйтесь комментировать здесь или связаться со мной по Instagram

ВАМ ТАКЖЕ МОЖЕТ ПОНРАВИТЬСЯ

ОСТАВИТЬ КОММЕНТАРИЙ