{"id":14277,"url":"\/distributions\/14277\/click?bit=1&hash=17ce698c744183890278e5e72fb5473eaa8dd0a28fac1d357bd91d8537b18c22","title":"\u041e\u0446\u0438\u0444\u0440\u043e\u0432\u0430\u0442\u044c \u043b\u0438\u0442\u0440\u044b \u0431\u0435\u043d\u0437\u0438\u043d\u0430 \u0438\u043b\u0438 \u0437\u043e\u043b\u043e\u0442\u044b\u0435 \u0443\u043a\u0440\u0430\u0448\u0435\u043d\u0438\u044f","buttonText":"\u041a\u0430\u043a?","imageUuid":"771ad34a-9f50-5b0b-bc84-204d36a20025"}

Открыть веб-студию в Ярославле и не разориться. День первый

Всем привет! Меня зовут Настя и я работаю в юридической конторке.Но — у меня есть страсть, которая кипит во мне уже много лет — это код. Да — тот самый код, где переменные, массивы, функции, циклы и многое другое. Когда-то давно я написала свой первый "Привет мир" и с тех пор не могу остановиться. Пробовала разные языки, разные технологии, даже Паскаль. Но, все изменилось, когда я освоила PHP и ворвалась в мир разработки как фрилансер.

Фрилансер я до сегодняшнего дня. Совсем на днях меня окончательно задолбали вопросом: "Ты такая молодец, а до их пор работаешь на дядю. Когда откроешь своё?"

И я наконец решилась. С нуля, без мам, пап и кредитов открыть полноценную веб-студию в городе Ярославль. И в своем блоге на VC я буду подробно рассказывать, как я иду к своей цели.

Первый цикл статей, которые я буду постить, будут относиться к разработке сайта. Далее я буду искать офис, сотрудников, регистрировать ООО и вообще — проходить все те испытания, которые предстоят каждому будущему предпринимателю.

Начало. Сапожник без сапог.

Какая же веб-студия без своего крутого сайта? Вот и я так подумала. И поэтому первое, что сделала — зарегистрировала домен 7oz.ru ну и создала группу ВК. Наверное, это самое банальное что можно было сделать =)

Этим постом я открываю огромную серию, поэтому — буду рада любой критике и советам.

День первый. Начало разработки сайта

Я буду строить сайт на CMS InstantCms 2. Она привлекает своими возможностями, открытостью и легкой масштабируемостью.

Разработка будет вестись сразу на моём домене — htpps://7oz.ru, чтобы наблюдатели сами могли наблюдать, как я собираю сайт.

Приступим?

Самое первое что я сделала — это установила движок на хостинг. В процессе установки движка немного схитрила. Я заранее изменила у родного шаблона Modern название, заменила все языковые константы на новые, а шаблон админ-панели заставила наследоваться от нового шаблона. Такое решение позволит в будущем безболезненно обновлять версионность системы и без проблем добавлять новый функционал. Новый шаблон кстати назвала 7OZ — банально и просто)

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

Пишем свой контроллер

Я заранее решила, что весь сайт я будем разделять на блоки, практически не используя родные блоки системы. Так я смогу более гибко подходить к настройкам и опциям, не боясь потерять их в будущем после обновлений системы.

Создала контроллер с системным именем OZ (опять все банально) и пока не стала с ним изголяться — добавила в него лишь один языковой файл и папку для будущих блоков. Ниже показана структура шаблона

Структура проекта

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

Начнем с логотипа. В InstantCms есть возможность давать различные опции для настройки всего шаблона. В файле опций удалим все, что связывало нас со старым шаблоном Modern и напишем свои опции. Пока их будет немного — но в будущем я буду их расширять.

Вот такие настройки у меня получились:

Сразу проверим работу опций и загрузим логотип. Все работает отлично.

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

Вот так выглядят эти опции в коде:

Так как я хочу, чтобы будущий сайт был быстрым - то я воспользовалась родным компонентом InstantCms под названием «Загрузка изображений». В нем я создала новый пресет специально для логотипа и выставила в настройках конвертацию в формат webp.

Ну а теперь приступаем к первому блоку

Первый блок (далее я буду называть его виджет) будет иметь системное имя header. Внутри папки с виджетом создаем еще одну папку с названием header и кладем туда два файла - options.form.php и widget.php

Внутри options.form.php будем писать опции нашего виджета, а внутри widget.php - объявлять переменные, функции и подключать другие контроллеры.

Также внутри папки с шаблоном по пути templates/7oz/controllers/oz/widgets также создадим папку с названием нашего виджета и назовем его точно также - header. Внутри создадим еще один файл - header.tpl.php

Так как я использую библиотеку bootstrap, то сразу разметим header.tpl.php, чтобы уже начинать заполнять его реальным кодом.

Но - перед этим нужно загрузить файлы виджета в систему и записать его в базу данных. Будем использовать встроенную в InstantCms возможность динамической установки пакетов дополнений при помощи прямого запроса в базу данных:

Пишем настройки для виджета

Теперь, когда виджет установлен в систему и я вижу его внутри админки, можно начинать писать его опции, и формировать шаблон Header при помощи значений из этих опций.

Помните, мы уже заранее написали настройки внутри опций шаблона, где мы загружали логотип? Давайте сразу в шаблоне Header выведем логотип и посмотрим, что получается:

Все настройки из шаблона доступны через переменную $this, что позволяет нам использовать эти настройки повсеместно. Это круто. Смотрим, что на сайте:

Отлично! Логотип выводится. Следующим нашим шагом будет создание навигации. В данном случае мы не будем использовать встроенные возможности системы для формирования навигации, а пропишем структуру меню жестко в шаблон. Почему так - объясним в следующих статьях.

Наш сайт после внесения меню в шаблон становится уже таким:

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

1) Логотип

2) Навигация

3) Кнопки соцсетей

4) Форма авторизации

5) Кнопка действия

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

После того как мы написали опции, внутри настроек виджета это стало выглядеть так:

А вот тот код, который выводит эти настройки:

Ну а вот так стал выглядеть сайт. Работу опции я проверила - все проходит отлично, авторизация работает.

Не будем тянуть время и сразу напишем кнопку действия. Выведем её правее кнопки авторизации.

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

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

Все работает отлично. Настройки кнопки отрабатывают корректно, и пока её внешний вид меня полностью удовлетворяет.

Осталась последнее - написать настройки для добавления кнопок социальных сетей. С ними будет немного сложнее - так как настройки должны быть такими, чтобы мы могли добавить в блок какие-угодно пункты или удалить их в любое время. К счастью, в InstantCms есть встроенное поле FieldGroup которое позволяет динамически создавать элементы. Вот им то мы и воспользуемся.

Создадим в форме виджета настройки, включающие добавление иконок и пропишем простые настройки внутри группы полей - ссылку и выбор иконки:

Внутри виджета эти настройки стали выглядеть так:

Зеленая кнопка «Добавить» длбавляет в форму поля для создания новой иконки. Максимальный респект разработчикам InstantCms за столь мощный инструмент! Им мы кстати будем активно пользоваться в будущем, когда будем формировать наш шаблон.

Я пока добавила только одну иконку - вконтакте. Да, пока у меня всего одна соцсеть, в которой один пользователь - я =)

И вот так это стало выглядеть на сайте:

На этом почти все. Осталось добавить нужные классы Bootstrap, стилизовать мобильную версию и еще по мелочи.

На этом первый день разработки подходит к концу, завтра я буду писать блок «Hero», в котором буду делать анимацию и ещё что-то, чего я еще пока не придумала.

Буду благодарная за критику, советы и вообще пожелания по работе) Прошу сильно не пинать - первый пост, первый опыт и все такое. Все что получается в ходе разработки можно смотреть на реальном сайте - https://7oz.ru

0
66 комментариев
Написать комментарий...
uxvoin

Имея Webflow, Readymag, Tilda, Framer делать сайт на php...
Сейчас на западе сайты все на webflow собирают. Студии этого достаточно более чем.

Ответить
Развернуть ветку
Жгучий Лук

Где это все на западе сайты на saas клепают? Промо сайты или для Awwwards да, webflow юзают, но уже часто на js ( react/nuxt ) + gsap .
Wordpress как корп.сектора был так и есть, реже уже woocommerce, но % просадки не большой.

Ответить
Развернуть ветку
8 комментариев
Свирепый Одуванчик

Соберёшь мне на тильда сервис для бронирования и покупки мест в концертных залах? С покупкой онлайн, интерактивным выбором места и возможностью вернуть билет онлайн? Наверняка ваша супер тильда это умеет.

Ответить
Развернуть ветку
1 комментарий
Юрий

«Все» это сколько? Отвечу за вас - 0,46%. На первом месте WP, 58%, затем - Wix (10,6%), Shopify (8%).

Ответить
Развернуть ветку
1 комментарий
Иннокентий Фефилов

Это не создание агентства, а имитация. Можно быть агентством без названия, сайта, ооо и даже постоянных сотрудников.

Ответить
Развернуть ветку
Bo.G

"Мы превращаем идеи в сайты, которые захватывают дух и покоряют сердца. Наша страсть к дизайну и технологиям позволяет нам создавать уникальные и запоминающиеся проекты, которые выделяются на фоне остальных. Присоединяйтесь к нашей команде и позвольте нам помочь вашему бизнесу выделиться из толпы!"

Боже. Да вы для начала сделайте хоть что-нибудь, потом представьте это публике для критики (конструктивной и не очень), потом сделайте выводы и реально оцените уровень своих навыков и умений прежде чем писать такие самохвалебные заголовки.
пока что ваши 2 "сайта" оставляют лишь видимость работы и составляют о вас мнение, как о профанах-школьниках, решивших написать "свой игровой движок", но застрявших на этапе установки какого-нибудь фотошопа.

Люди. Будьте адекватны!

Ответить
Развернуть ветку
DD

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

Ответить
Развернуть ветку
Вениамин Дублин

Хорошая статья, в целом, но вы начали с одной темы, а раскрыли другую. Подробнее о том (на примере данной публикации), почему так не стоит делать - читайте в посте https://t.me/facepalmtxt/10

Ответить
Развернуть ветку
DD

Маркетолог от Бога

Ответить
Развернуть ветку
Pavel Pekanov

Сделать сайт и не выйти на панель. Прекрасно.

Ответить
Развернуть ветку
John Doe Jr.
Сделать сайт и не выйти на панель.

Не зря у всяких WordPress'ов и прочих PHP CMS есть такая штука как "Панель администратора"... 😎🤭

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Bo.G

а что за сайт-призрак https://76y.ru/ у вас в вк?
вы любите все белое? девственно чистое.

Ответить
Развернуть ветку
Настя 7OZ
Автор

Это был первый домен который планировался для работы, но в итоге был изменен. Спасибо, поправила

Ответить
Развернуть ветку
Sasha Step

Вообще то любой бизнес начинается с бизнес плана. Где то была статистика что 99% бизнесов после составления бизнес плана - не начинаются. Но зато экономятся деньги и нервы.

Можно и без бизнес плана, но тогда готовьтесь что окупаемость будет лет на 5 дольше, денег потратите впустую раз в 10 больше, вероятность не выжить 99% + много лет проработки у психолога.

Если хотите идти по второму пути. Первый шаг маркетинг. Анализ, рынка, конкруентов, ЦА. Заказывать не у кого не надо, надо сделать самой, инфы в инете полно. Знания которые вы получите помогут вам как фаундеру в будущем.

Конечно можно пропустить и это шаг, но тогда вероятность успеха, много ниже чем в казино, там шансы выше.

Свежих данных у меня нет но в 2021 году по ОКВЭД 62 было зарегистрировано чуть более 2000 компаний, закрылось более 4000. Сейчас картина думаю еще страшнее.

Это не про то что не надо начинать свое дело, это про то что сейчас такое время что прежде чем обораться, лучше все же снять штаны .

Удачи вам, нужны будут бесплатный советы, обращайтесь помогу чем смогу.

Ответить
Развернуть ветку
Roman BL

определитесь для начала - вы зотите бизнесом заниматься, сайты пилить или блог вести

Ответить
Развернуть ветку
Константин Сорокин

Мне уже дико видеть как кто-то тратит целый день на вывод логотипа и менюшки... На любом конструкторе за день целый лэндинг можно собрать и успеть продать кому-то сайт.

Не воспримите как обесценивание или мерянье чем-то. Сам когда-то начинал примерно также. Ну и про возможности кода по сравнению с конструкторами тоже в курсе.

Мой совет - сделайте один экран сайта, где будете принимать заявки. И все. Остальное время, которые вы бы могли потратить на разработку своего сайта (я думаю это будет не один день, учитывая темпы), потратьте на коммуникацию с клиентами.

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

Очень мало клиентов будет разбираться в вашем сайте, лазить по нему и разглядывать анимацию. И шанс что клиент впечатлится сайтом и закажет именно у вас только потому что у вас такой крутой сайт - 1 из 1.000.000. Такой сайт надо воспринимать как pet-проект и пилить его свободное время.

99% клиентов нужно решать их боль, их задачи. Ваш сайт их интересует с точки зрения "да, сайты умеет делать, есть свой сайт" вот и все, этого хватит. И простой лэндинг закроет на 50% эту потребность. Да, остальные 50% отвалятся, но скорее всего вы их и не потянули бы.

Вам сейчас важнее быстрые деньги и быстрые проекты, быстро тестировать гипотезы. Тем более у вас в даже в заголовке написано "как не разориться". Такой подход как раз позволит не разориться, а начать получать живые деньги.

Удачи!

Ответить
Развернуть ветку
Юрий

Настя, отличная статья для начинающих. Желаю успехов💪

Ответить
Развернуть ветку
Жгучий Лук

У вас уже есть пул постоянных клиентов которых вы можете описать в кейсах с решенными для их бизнеса задачами?

Ответить
Развернуть ветку
Настя 7OZ
Автор

Да, конечно

Ответить
Развернуть ветку
13 комментариев
John Doe Jr.
htpps://7oz.ru

1. hTTps, а не htPPs
2. 7oz — это 200 грамм по нашему? :)

Ответить
Развернуть ветку
Bo.G

это 4 писярика...

Ответить
Развернуть ветку
2 комментария
Владислав Шолеров

Дети, мечтаете быть космонавтами, потому что веб-разработчик это п-ц

Ответить
Развернуть ветку
Just Michael

Почему не Drupal, раз решили cms использовать? Под него и верстать веселей )

Ответить
Развернуть ветку
Настя 7OZ
Автор

Для того функционала который мне нужен, Drupal не подходит

Ответить
Развернуть ветку
Эмиль Тахмазов

Удачи, бывшая коллега!

Ответить
Развернуть ветку
Bo.G

оставьте дизайн в таком виде. просто меню на белом фоне.
и все. свежо

Ответить
Развернуть ветку
John Doe Jr.

И 404 не убирайте!!!

Ответить
Развернуть ветку
Сестра Таланта

Удачи! А такой вопрос: что с контентом будущих клиентских сайтов? Разработка - ок, я так понимаю, с этим проблем нет. А тексты, дизайн - есть команда для этого?

Ответить
Развернуть ветку
Настя 7OZ
Автор

Пока нет

Ответить
Развернуть ветку
Andrei M

Мда...

Ответить
Развернуть ветку
Джон Уик

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

Ответить
Развернуть ветку
Иннокентий Фефилов

Студии массово вымирают из-за Аспро и Тильды.

Остаются две категории:
1. Сложные решения.
2. Тильда с хорошим маркетингом.

Ответить
Развернуть ветку
Юрин Иван

Ох... Выбрали сложный бизнес. Мало кто его выдерживает вдолгую.
Пожалуй посоветую один канал с чатиком https://t.me/agencyboss
https://t.me/agencymanagement

Там обитают основатели агентств, люди с опытом. Советую полистать контент, поспрашивать людей. Надеюсь помогут выжить в этом бизнесе

Ответить
Развернуть ветку
Vladimir Alekseev

Это не Хабр - тут код мало кому интересен.

TL-DR для правильного поста "Открыть веб-студию в N и не разориться" выглядит так:
1. Руки из плеч
2. Пулл заказчиков
3. Пулл надежных разработчиков

Ответить
Развернуть ветку
Настя 7OZ
Автор

Поняла, код приводить более не буду

Ответить
Развернуть ветку
1 комментарий
Valentin Dombrovsky

Гм, логично было бы выходить в паблик с уже готовым сайтом, а не с пустой главной и ссылками на 404-е страницы. Кажется, Вы на написание статьи потратили время, которое могли бы потратить на сайт.

И да, тут не Хабр — не стоит перегружать статью техническими деталями. Местной аудитории интересен big biznis. :)

А в целом, удачи! Любой путь начинается с первого шага и никогда не знаешь, куда он заведёт. Но на этом пути будет как минимум нескучно. :D

Ах да, небольшой совет: сразу подумайте про продажи. Возможно, Вам как технарю не помешает партнёр, который будет «продавать». Сайт — это только начало — дальше вопрос в поиске заказчиков.

Ответить
Развернуть ветку
Настя 7OZ
Автор

Ссылки поправила. А то что сайт готовится - так задумано.

Ответить
Развернуть ветку
1 комментарий
Алинка любит апельсинки

Привет из Ярославля. Мне тоже нравится кодить, но больше всех нравится просить конкурентов. Пошли пить пиво )

Ответить
Развернуть ветку
63 комментария
Раскрывать всегда