Компания · Вакансии

Работа в INITдля тех, кто берётзадачу целиком.

Работа здесь устроена вокруг двух продуктов сразу: сайты на заказ и SaaS-платформа, где готовый сайт берут по подписке и правят сами. Открыты три направления — frontend, design и content. Ниже написано, что именно предстоит делать, как проходит наём, как устроена работа изнутри и как откликнуться.

3

открытых направления: frontend, design, content

2

продукта в одной команде: студия и платформа

Алматы

или удалённо — важны общие часы, а не адрес

Открытые вакансии

Кого мы ищем прямо сейчас

У каждой вакансии есть свой тест. Он не обязателен, но с пройденным тестом отклик смотрят первым: мы уже видим, как вы думаете, и разговор начинается не с «расскажите о себе».

08

Frontend-разработчик (React / Next.js)

Уровень
Middle
Направление
Фронтенд обоих продуктов
Формат работы
Алматы или удалённо
Занятость
Полная занятость

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

Подробнее

Что делать

  • Собирать секции конструктора: каждая — компонент со схемой контента, который потом редактирует владелец бизнеса без вашего участия
  • Доводить макет до кода так, чтобы он не рассыпался на чужом логотипе, длинном заголовке и пустом поле
  • Держать три локали в каждой строке: ru, kz и en приходят из данных, вбитый в JSX текст — это баг, а не мелочь
  • Разбираться, почему секция сломалась у конкретного клиента, — на его контенте, а не на демо-данных
  • Проверять результат на 360 пикселях и на живом сайте, а не только в Storybook

Что нужно

  • Пишете на React и TypeScript так, что типы описывают данные, а не затыкают компилятор
  • Понимаете, что делает серверный компонент в App Router и почему useState в нём не работает
  • Отличаете состояние, которое должно жить в URL, от состояния, которому место в компоненте
  • Читаете чужой код и правите его точечно, не переписывая модуль целиком
  • Верстаете сами: чтобы превратить макет из Figma в разметку, отдельный человек вам не нужен

Будет плюсом

  • Работали с многоязычным интерфейсом и знаете, где именно вёрстка ломается при переводе
  • Трогали Laravel или любой другой бэкенд — граница между админкой и фронтом перестанет быть загадкой
  • Писали компоненты, которые настраивает не разработчик, а пользователь

Инструменты

  • React
  • Next.js
  • TypeScript
  • Tailwind CSS
  • App Router
  • Storybook
Тест к вакансииК вакансии приложен тест «React: хуки и состояние» — десять ситуаций из практики: почему счётчик прибавляет один вместо двух, когда эффект перестаёт срабатывать и что ломается от key по индексу.

Верстальщик (HTML / CSS)

Уровень
Junior / Middle
Направление
Студия, сайты на заказ
Формат работы
Удалённо
Занятость
Полная занятость или проектно

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

Подробнее

Что делать

  • Верстать страницы клиентских сайтов по макету, включая состояния, которых в макете нет: пустое поле, длинное название, одна карточка вместо шести
  • Собирать секции конструктора так, чтобы владелец бизнеса менял в них текст и картинки и ничего не ломал
  • Проверять каждый экран на 360 пикселях раньше, чем на десктопе
  • Приводить типографику и отступы к токенам темы вместо магических чисел в стилях
  • Чинить вёрстку на живых сайтах, когда у клиента что-то поехало после его же правки

Что нужно

  • Свободно раскладываете макет на flexbox и grid и можете объяснить, почему выбрали именно это
  • Пишете семантическую разметку: заголовки по уровням, кнопка кнопкой, ссылка ссылкой
  • Знаете, что делает min-width: 0 во flex-элементе и почему длинное слово иногда рвёт колонку
  • Работаете в Figma как читатель: снять размеры, найти компонент, не сломать чужой файл
  • Понимаете, что адаптив — это поведение между брейкпоинтами, а не три отдельных макета

Будет плюсом

  • Верстали письма или что-то ещё с жёсткими ограничениями — это хорошо ставит руку
  • Знаете Tailwind и не считаете утилитарные классы личным оскорблением
  • Умеете сделать сдержанную анимацию на чистом CSS, не подключая библиотеку

Инструменты

  • HTML
  • CSS
  • Flexbox
  • CSS Grid
  • Tailwind CSS
  • Figma
Тест к вакансииК вакансии приложен тест «CSS: flexbox и grid» — восемь вопросов про оси и выравнивание, flex-grow и flex-shrink, fr, minmax и gap.

Backend-разработчик (PHP / Laravel)

Уровень
Middle / Senior
Направление
Платформа и CRM
Формат работы
Алматы или удалённо
Занятость
Полная занятость

Здесь два бэкенда в одном стеке: CRM студии с заявками, брифами и сделками — и мультитенантная платформа, где у каждого клиента своя база и свой домен. Больше всего времени уходит не на CRUD, а на вопрос «что будет со вторым тенантом»: почти каждая ошибка выглядит как «у одного работает, у другого нет». Админки собираются на Filament, так что форма — тоже PHP.

Подробнее

Что делать

  • Писать модули платформы — каталог секций, тарифы, подписки — так, чтобы новый тип подключался регистрацией, а не правкой ядра
  • Держать изоляцию тенантов: запрос, случайно достающий чужие данные, — это инцидент, а не мелкий баг
  • Собирать экраны админки на Filament: ресурсы, формы, таблицы, действия
  • Доводить заявку с сайта до карточки в CRM: валидация, источник, уведомление, повторное обращение того же человека
  • Писать миграции, которые можно откатить, и покрывать тестами то, что глазами не проверишь

Что нужно

  • Уверенно работаете с Eloquent: связи, N+1, скоупы, касты — и представляете, какой SQL получится на выходе
  • Пишете миграции с обратной стороной и не боитесь развернуть их на данных, которые уже есть
  • За плечами хотя бы пара лет боевого Laravel — не потому, что мы считаем годы, а потому, что миграцию на живых данных негде отрепетировать
  • Умеете добавить в чужой модуль точку расширения вместо ещё одного условия в ядре
  • Покрываете тестами то, что пишете: Pest или PHPUnit — без разницы

Будет плюсом

  • Работали с мультитенантностью или хотя бы понимаете, чем она отличается от колонки company_id
  • Собирали админки на Filament и знаете, где он заканчивается и начинается свой код
  • Есть опыт с Octane или другим долгоживущим воркером — состояние, протекающее между запросами, перестанет быть сюрпризом

Инструменты

  • PHP 8
  • Laravel
  • Filament
  • PostgreSQL
  • Pest
  • Docker
Тест к вакансииК вакансии приложен тест «Laravel: Eloquent и миграции» — десять вопросов с конкретным кодом: связи и их ключи, N+1 и with(), скоупы, fillable, касты, миграции и откат, мягкое удаление.

UI/UX-дизайнер

Уровень
Middle
Направление
Дизайн студии и платформы
Формат работы
Алматы, офис в центре
Занятость
Полная занятость

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

Подробнее

Что делать

  • Собирать темы для готовых сайтов каталога: палитра, типографика, отступы — как набор значений, а не как один макет
  • Рисовать новые секции конструктора вместе с их состояниями: пусто, один элемент, слишком длинный текст
  • Проверять тему на реальном контенте клиента, а не на аккуратно подобранных стоках
  • Отдавать макет в разработку без «додумай сам»: компоненты, автолейаут, названные слои
  • Пересобирать существующие экраны, когда становится видно, что человек в них теряется

Что нужно

  • Собираете интерфейсы на компонентах и автолейауте, а не двигаете прямоугольники руками
  • Можете объяснить решение словами: почему этот размер, этот контраст, этот порядок блоков
  • Держите контраст и кегль в пределах, при которых сайт читается с телефона на улице
  • Понимаете разницу между переменной темы и цветом, вбитым в слой, и работаете первым способом
  • Показываете мобильный вид сразу, а не как приложение к десктопной версии

Будет плюсом

  • Рисовали для конструктора или шаблонов — там, где контент меняет не дизайнер
  • Читаете вёрстку настолько, чтобы понимать, во что превратится ваш автолейаут
  • Работали с многоязычными интерфейсами: казахская строка длиннее русской, и это видно уже в макете

Инструменты

  • Figma
  • Auto Layout
  • Figma Variables
  • Дизайн-токены
  • Storybook
Тест к вакансииК вакансии приложен тест «Figma: компоненты и автолейаут» — десять ситуаций из рабочего файла: инстансы и переопределения, варианты, resizing, констрейнты, переменные и подготовка макета к передаче в разработку.

Контент-редактор

Уровень
Middle
Направление
Контент студии и платформы
Формат работы
Удалённо
Занятость
Проектно или полная занятость

Тексты для клиентских сайтов и для самой платформы — почти всегда сразу на трёх языках. Казахская версия здесь не формальность: сайт, где kz-страница существует, но написана по-русски, хуже, чем сайт без kz вовсе. Кроме абзацев на вас структура: какие секции нужны стоматологии, какие автосервису и в каком порядке человек их прочитает.

Подробнее

Что делать

  • Писать тексты для готовых сайтов каталога по нишам — клиника, салон, автосервис, магазин, — у каждой свой словарь
  • Разбирать бриф клиента и превращать его в структуру страницы, а не в один длинный текст «о компании»
  • Вести три языковые версии так, чтобы kz и en были написаны, а не прогнаны через переводчик
  • Резать чужой текст: убирать «динамично развивающуюся компанию» и оставлять то, что клиент действительно делает
  • Писать интерфейсные строки: подписи кнопок, тексты ошибок, пустые состояния — там, где длина важнее красоты

Что нужно

  • Пишете по-русски чисто и коротко, без канцелярита и без «раскройте свой потенциал»
  • Можете показать текст, который стоял на живом сайте, и объяснить, зачем в нём каждый абзац
  • Владеете казахским на уровне письменной работы — либо сразу говорите, что берёте только ru и en
  • Отличаете структуру страницы от её объёма и видите, какая секция здесь лишняя
  • Добываете фактуру: спрашиваете у клиента цифры и детали вместо того, чтобы их придумать

Будет плюсом

  • Есть опыт с SEO-текстами — но такими, которые читает человек, а не только робот
  • Писали для ниш из каталога: медицина, красота, авто, розница
  • Умеете редактировать чужой перевод, а не только писать с нуля

Инструменты

  • Главред
  • Figma
  • Markdown
  • Google Docs
  • Яндекс.Вордстат
Тест к вакансииК вакансии приложен тест «Редактура и информационный стиль» — десять разборов живых фраз: оценки вместо фактов, канцелярит, пассив, вводные обороты и синтаксический мусор.

SEO-специалист

Уровень
Middle
Направление
Платформа, техническая часть
Формат работы
Алматы или удалённо
Занятость
Полная занятость

Особенность в масштабе: оптимизировать нужно не один сайт, а секции, из которых собраны все 26 готовых сайта каталога. Ошибка в разметке одной секции уезжает сразу во все сайты, где она стоит, — и точно так же уезжает исправление. Сверху три языковые версии, у каждой свой адрес, так что hreflang здесь не теория.

Подробнее

Что делать

  • Проверять секции конструктора на разметку — заголовки по уровням, alt, микроразметка — до того, как секция попадёт в каталог
  • Держать техническую часть: карта сайта, канонические адреса, hreflang для ru / kz / en, редиректы
  • Разбираться, почему конкретный сайт клиента не индексируется, и доводить это до правки в коде, а не до отчёта
  • Собирать семантику для новых ниш каталога и отдавать её редактору как структуру страницы
  • Смотреть на скорость страниц как на SEO-задачу и приносить разработчикам конкретное место, а не общий балл

Что нужно

  • Читаете Search Console как рабочий инструмент: видите разницу между «не проиндексировано» и «исключено намеренно»
  • Понимаете, как устроен рендеринг на Next.js и почему часть контента может не дойти до индекса
  • Умеете настроить hreflang для трёх языков и объяснить, что сломается при ошибке
  • Работаете краулером — Screaming Frog или аналог — и находите проблему раньше, чем её найдёт клиент
  • Ставите задачу разработчику формулировкой «вот здесь такой тег, нужен такой», а не «нужно улучшить SEO»

Будет плюсом

  • Есть опыт с казахоязычной выдачей, а не только с русской
  • Работали с локальным SEO: карты, филиалы, отзывы
  • Правите разметку сами, если правка на пару строк

Инструменты

  • Google Search Console
  • Яндекс.Вебмастер
  • Screaming Frog
  • Ahrefs
  • Lighthouse
  • Next.js
Тест к вакансииК вакансии приложен тест «Техническое SEO» — двенадцать вопросов про краулинговый бюджет, canonical и дубли, коды редиректов, hreflang, пагинацию, JS-рендеринг, Core Web Vitals и логи сервера.

Менеджер проектов

Уровень
Middle
Направление
Студия, проекты на заказ
Формат работы
Алматы, с выездами к клиенту
Занятость
Полная занятость

Между клиентом и командой стоит один человек, и это вы: бриф, сроки, правки, приёмка. Проекты короткие и идут параллельно, поэтому основная работа — не диаграмма Ганта, а формулировка: превратить «хочу как у конкурента, только солиднее» в задачу, по которой дизайнер и разработчик сделают одно и то же. Сделки и заявки живут в нашей CRM, и порядок в ней тоже на вас.

Подробнее

Что делать

  • Собирать бриф так, чтобы в нём были ответы, а не пересказ вопросов: что за бизнес, кто его клиент, что считается результатом
  • Переводить правку клиента в задачу с проверяемым результатом — до того, как её увидит дизайнер
  • Держать сроки нескольких проектов сразу и предупреждать о срыве заранее, а не в день сдачи
  • Вести сделки в CRM так, чтобы статус карточки совпадал с реальностью, иначе доска бесполезна
  • Проводить приёмку: открыть готовый сайт с телефона и пройти его до конца самому, а не отправить клиенту ссылку

Что нужно

  • Пишете задачу, по которой два разных исполнителя сделают одно и то же
  • Спокойно говорите клиенту «нет» и «это будет стоить дороже» — с аргументом, а не с извинением
  • Держите несколько проектов одновременно и не путаете их правки между собой
  • Разбираетесь в вебе достаточно, чтобы без разработчика отличить двадцать минут от двух недель
  • Пишете по-русски так, что письмо клиенту не приходится переписывать после вас

Будет плюсом

  • Работали в студии или агентстве и видели проект, где клиент передумал на этапе вёрстки
  • Говорите по-казахски — части клиентов так удобнее
  • Настраивали CRM, а не только пользовались ей

Инструменты

  • CRM на Filament
  • Канбан заявок
  • Figma
  • Google Sheets
  • Telegram
Тест к вакансииК вакансии приложен тест «Постановка задач» — восемь вопросов о том, из чего состоит понятная задача: критерии приёмки, декомпозиция, приоритет и срок, ответственный за результат и чем баг отличается от доработки.

Специалист поддержки клиентов

Уровень
Junior
Направление
Поддержка платформы
Формат работы
Алматы или удалённо
Занятость
Полная занятость

К вам приходит владелец салона или магазина, который сам редактирует свой сайт в конструкторе и что-то там сломал — чаще всего не сломал, а не нашёл. Разговор идёт человеческим языком, и «пропала кнопка» нужно превратить в понятную причину, а не переслать разработчику как есть. Отдельная часть работы — замечать вопрос, который приходит третий раз: это уже не поддержка, а задача на интерфейс.

Подробнее

Что делать

  • Разбирать обращения клиентов платформы: воспроизвести проблему у себя в конструкторе прежде, чем звать разработчика
  • Проводить нового клиента по первым шагам: выбрать готовый сайт, поменять тексты и телефон, опубликовать
  • Заводить задачу на то, что действительно баг, — с шагами воспроизведения и адресом страницы, а не одним скриншотом
  • Собирать повторяющиеся вопросы в список и приносить его тем, кто делает интерфейс
  • Отвечать на том языке, на котором написал клиент, — часть пишет по-казахски

Что нужно

  • Пишете спокойно и понятно даже тогда, когда собеседник уже раздражён
  • Задаёте три уточняющих вопроса вместо одного «опишите подробнее»
  • Ориентируетесь в браузере: консоль, скриншот, режим инкогнито, проверка на телефоне
  • Доводите обращение до закрытия и возвращаетесь к клиенту сами, не дожидаясь напоминания
  • Говорите и пишете по-казахски и по-русски

Будет плюсом

  • Работали с конструкторами сайтов или CMS с любой стороны — хоть как пользователь
  • Знаете HTML настолько, чтобы посмотреть, что не так с картинкой или ссылкой
  • Есть опыт в поддержке, где ответ был не по скрипту

Инструменты

  • CRM на Filament
  • Канбан заявок
  • Конструктор INIT
  • DevTools браузера
  • Telegram
Тест к вакансииК вакансии приложен тест «Командная коммуникация» — восемь вопросов про переписку: что класть в асинхронное сообщение, как выглядит внятный статус задачи, когда проблему пора эскалировать и зачем договорённости записывают.
Направления

Три направления — и что за ними на самом деле стоит

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

Что уже построено

Вы приходите не на пустой лист

26

готовых тематических сайтов

Каталог платформы: стоматология, барбершоп, мебель и ещё двадцать три ниши

35

видов секций в конструкторе

Каждая — отдельный компонент со своей схемой контента

19

инструментов у AI-ассистента

Он правит контент в админке и всегда ждёт подтверждения человека

3

языка в каждом интерфейсе

Русский, казахский, английский — не переключатель, а три полные версии

Как проходит наём

Пять шагов, и после каждого вы знаете, где находитесь

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

01

Отклик через форму внизу страницы

Направление, две-три ссылки на работы и пара строк о том, что в них сделали именно вы. Резюме не обязательно; портфолио без пояснений почти бесполезно — по картинке не видно, где была ваша часть.

10 минут

Заявка на нашей рабочей доске

02

Мы разбираем работы

Смотрим не на количество проектов, а на одну-две вещи, доведённые до конца: как устроен код, что происходит с макетом на 360 пикселях, как выглядит текст на казахском.

до 3 рабочих дней

Ответ приходит всем — включая отказ

03

Разговор на 40–60 минут

Про контекст, а не викторина по алгоритмам: что делали, где было тяжело, что решили бы иначе. В этот же час мы показываем, как устроена работа изнутри, — чтобы вы увидели это до старта, а не после.

40–60 минут

Понимание, чем именно предстоит заниматься

04

Небольшая задача из реального бэклога

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

2–4 часа

Общий язык до старта, а не после

05

Формат и старт

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

1 неделя

Первая задача в работе

Как здесь устроено

Что вы получаете здесь — и чего здесь не будет

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

Есть

Проверяемые вещи, а не ценности со слайда

  • Прямой доступ к тому, кто принимает решение: согласование в один шаг
  • Задача целиком — от постановки до живого сайта, а не кусок чужой декомпозиции
  • Право переспорить постановку, если видно, что она приведёт не туда
  • Код-ревью и разбор макета вместо молчаливого мёрджа
  • Влияние на сам конструктор: секции и темы потом идут во все 26 тематических сайтов
  • Один общий созвон в неделю, остальное текстом

Чего здесь не будет

От этого мы отказались осознанно

  • Бесконечных согласований и микроменеджмента: решение принимается за один шаг
  • Готового ТЗ, спущенного сверху: постановку вы формируете вместе с тем, кто решает
  • Работы «в стол»: сделанное уходит на живые сайты клиентов, а не в архив
  • Статусных встреч ради статуса: один общий созвон в неделю, остальное текстом
  • Выдуманных тестовых про несуществующую компанию: задача берётся из реального бэклога
  • Молчания после отклика: ответ приходит всем, включая отказ

Из чего складывается неделя

Новая секция конструктораТри локали в одной строкеТокены темыПравка после клиентаКод-ревьюТекст на казахскомКаталог темКарточка заявкиПроверка на 360 пикселяхСкриншот на живом сайтеОтказ от лишнего экрана
Про самостоятельность

Каким будет экран, решаете вы: здесь никто не переписывает вашу работу за вашей спиной и не гоняет согласовывать шрифт в три круга.

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

Формат работы

Условия и то, с чем вы столкнётесь в первый месяц

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

Условия

Формат
Удалённо или АлматыАдрес не важен; важны несколько общих часов в дне
Занятость
Full-time или проектноПроектный вход — нормальный способ попробовать, если сейчас есть основная работа
Созвоны
Один общий в неделюОстальное текстом; статусные встречи ради статуса не проводим
Языки
ru / kz / enГоворим по-русски, продукт существует на трёх языках

С чем вы столкнётесь

Фронтенд
Next.js · React · TypeScriptApp Router и серверные компоненты
Бэкенд рядом
Laravel · FilamentПисать не обязательно, но границу между админкой и фронтом придётся понимать
Конструктор
35 видов секцийВаша секция станет ещё одним пунктом в этом списке
Заявки
Канбан-доскаКарточка называет страницу, с которой пришла, — это ваша обратная связь по интерфейсу
Ассистент в админке
19 инструментовПравит контент по просьбе владельца сайта и всегда ждёт подтверждения
Команда

Что здесь считается сильной стороной

Список короткий и конкретный: по нему видно, подходит вам это место, ещё до первого разговора.

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

Умение задать вопрос до того, как начали делать

Половина наших ошибок — это аккуратно сделанная не та вещь. Неудобный вопрос в первый день дешевле переделки на третьей неделе, и мы предпочитаем первое.

Итерации

Спокойное отношение к правкам

Клиент имеет право передумать. Правка — часть цикла, а не оценка вас; ценится тот, кто переделывает без драмы и без молчаливого саботажа.

Детали

Внимание к тому, что увидит чужой человек

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

Ответственность

Готовность довести до живого

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

Вопросы

О чём спрашивают перед откликом

Шесть вопросов, которые задают чаще всего, и прямые ответы на них. Вашего нет — задайте его прямо в форме.

Отклик

Напишите, чем занимались, и приложите ссылки

Форма ниже создаёт настоящую заявку: она попадает на ту же доску, где мы разбираем рабочие обращения, и её видит человек. В поле сообщения укажите направление — frontend, design или content — и две-три ссылки на работы.

  • Заявка попадает к человеку, а не в автоответчик
  • Разбор работ — до трёх рабочих дней; отказ тоже приходит
  • Подойдёт любой формат ссылки: репозиторий, Figma, Behance или PDF

Отправляя форму, вы соглашаетесь с политикой конфиденциальности.