Frontend | Блог Ирины Леоновой | Up To Web


Channel's geo and language: Kazakhstan, Russian


Учусь фронтенд-разработке. В этом канале:
✅ Подробно рассказываю об обучении, делюсь ссылками и чек-листами.
✅ Публикую свои проекты и разборы кода

Здесь много практики, мотивации и честных рассказов о процессе.

🔗 Начало: https://t.me/up_to_web/6

Related channels

Channel's geo and language
Kazakhstan, Russian
Statistics
Posts filter


Лендинг SaaS-сервиса для оптимизации рекламных кампаний с помощью нейросетей. Интерфейс реализован на React, стилизация — через Tailwind CSS. Интерфейс разбит на независимые компоненты, что позволяет переиспользовать UI и упрощает поддержку и масштабирование проекта.

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

Все значения пересчитываются реактивно через state, а UI мгновенно обновляется. Чтобы пользователю было проще понять эффект, результат показывается не только цифрами. Также в калькулятор добавлена динамическая визуализация роста лидов. Когда пользователь меняет параметры:
· график обновляется
· значения пересчитываются
· пользователь видит влияние каждого параметра

Интересная проблема возникла при реализации калькулятора. При стандартной формуле:

clicks = budget / CPCleads = clicks × conversion rate

процент прироста почти не менялся. Из-за этого интерфейс выглядел "статичным", и пользователь мог решить, что калькулятор просто показывает заранее заданный результат. Поэтому формулу пришлось переработать, чтобы результат зависел от входных параметров. Таким образом лендинг превращается из статической страницы в интерактивный инструмент, который помогает пользователю оценить потенциальный эффект от сервиса. Для React-лендинга это нормальный результат.

Несколько небольших решений сильно улучшили пользовательский опыт:
✔ калькулятор находится ближе к началу
✔ значения можно менять интуитивно
✔ результат обновляется мгновенно
✔ интерфейс не перегружен параметрами

Главная цель —показать ценность продукта за 10–15 секунд.

Ссылка на сайт https://www.optiadsai.com/
Ссылка на ГитХаб https://github.com/irinaLeonova55/saas


Что общего между программированием и тренажерным залом?

Я хожу в зал уже больше трёх лет, а фронтенд учу чуть больше года. И за это время заметила, что у них много общего.

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

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

Проекты— это как тренировочные программы: они и качают навыки, и показывают, как далеко ты продвинулась.

И в спорте, и в программировании результат приносят регулярность и намерение.

А
вы занимаетесь спортом? Что помогает держать ритм?


Как фронтенд-разработка помогает бизнесу расти

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

Вот лишь часть того, как продуманная фронтенд-разработка помогает бизнесу расти:

1. Доверие через визуальную подачу. Чистый дизайн и визуальная логика формируют первое впечатление. Оно либо усиливает бренд, либо моментально отталкивает.

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

3. SEO через качество кода. Скорость загрузки, структура, корректные теги — всё это влияет на позиции в поиске и снижает стоимость привлечения трафика.

4. Корректная интеграция сервисов. Формы, чат-боты, CRM, аналитика — если фронтенд собран правильно, все отделы работают точнее, а маркетинг получает более чистые данные.

5. Клиентская безопасность. Защита от XSS, корректная работа с данными, безопасные запросы — важная часть ответственности фронтенда.

Хорошо спроектированный фронтенд — это не просто “красиво”. Это то, что помогает привлекать клиентов, удерживать их и улучшать бизнес-показатели.

Что бы вы добавили в этот список?


Мой сайт-портфолио готов!

🚀 Наконец могу показать результат работы последних 4 недель — мой сайт-портфолио!

В него буду добавлять все свои будущие проекты.

Впервые использовала SCSS совместно с React и реализовала несколько функций, которые давно хотела попробовать:

🌗 Переключение светлой и тёмной темы

🌍 Двухъязычность — русский / английский

✨ Анимации с помощью IntersectionObserver — плавное появление блоков при скролле и подсветка активных пунктов меню

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

Главное — я сделала всё сама, без туториалов, от структуры до дизайна.

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

🔗 Посмотреть можно здесь:
🇬🇧 Версия на английском
🇷🇺 Русская версия

🎯 Следующий шаг — наполнить портфолио первыми проектами и начать откликаться на вакансии фронтенд-разработчика.


Почему я выбрала React? 🚀

В 2025 году существует десятки фреймворков, но самые популярные — React, Vue и Angular. Почему же я остановила свой выбор именно на React?

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

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

На React работают Instagram, Netflix, Tesla, Starbucks и многие другие крупные компании. Мне нравится мысль, что я использую те же технологии, что и мировые гиганты.

Конечно, если хорошо знать JavaScript, можно добится успеха с любым фреймворком. Но я решила сделать ставку на React — чтобы прокачиваться именно в том, что мне интересно, и при этом оставаться востребованной на рынке.


Video is unavailable for watching
Show in Telegram
Пост 3.
Мое первое приложение на React “Today’s To-Do List”
Итак, это последний пост о моей первой работе на React. Мне хотелось сделать его простым, но в то же время удобным и полезным.

Что умеет приложение:
📅 Автоматическое обновление даты.
🪟 Открытие и закрытие модального окна.
➕ Добавление новой задачи.
✔️ Возможность вычеркивания выполненной задачи.
🗑️ Удаление задачи.
💾 Сохранение списка задач в браузере (данные не теряются даже после закрытия вкладки).
🧠 Фильтрация задач.

Посмотреть приложение можно здесь
Ссылка на код в GitHub


Дизайн и верстка “Today’s To-Do List”

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

Главным вызовом оказалась фильтрация задач по кнопкам «Все», «Надо сделать», «Выполнено». Сначала я пыталась решить её через классы, но условия постоянно путались. В итоге сделала фильтрацию прямо перед рендерингом списка с помощью filter(). Это оказалось проще, чище и, главное, работает идеально.

Вследующем посте покажу готовый результат и поделюсь ссылкой на код.


Прототип “Today’sTo-Do List”

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

Дальше будет дизайн и верстка, а потом покажу финальный результат.


Video is unavailable for watching
Show in Telegram
🧩 Новый мини-проект — FAQ-аккордеон

Реализовала интерактивный блок "Часто задаваемые вопросы", где по клику раскрываются ответы, иконка меняется, а текст появляется плавно.

✅ Сделано на чистом HTML, CSS и JavaScript
📱 Адаптив: mobile-first
🖼 Подключён кастомный шрифт, добавлена анимация, оптимизирована структура

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

🧠 Писала JS с нуля — без копипаста, зато с ошибками и их решением 😄

👀 Посмотреть код проекта

🔧 Следующий шаг — сделать этот же компонент на React.


🛠️ Живая разработка и немного тишины

Последние недели я погрузилась в практику: делаю проекты на JS и React, продумываю портфолио и тестирую, как удобнее всего учиться и расти в профессии.
Писать посты — тоже навык, и я его немного запустила 🙃

Но зато теперь у меня много инсайтов:
– как действительно усваивать React
– с чего начинать проекты, чтобы не тонуть в хаосе
– и как не застревать в туториалах навсегда

Если вам это тоже интересно — буду рада делиться опытом снова.


Где я сейчас?

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


Первая работа для портфолио.
Я верстаю сайт регистрации на мероприятие. Дизайн взяла с Frontend Mentor — одно из главных требований: проект должен выглядеть красиво и профессионально. HTML и CSS уже готовы (на скрине часть кода), впереди — работа над JavaScript.

Изучение React.
Купила курс на Udemy и активно погружаюсь в React. Раньше мне казалось, что JavaScript — это сложно, но React выводит обучение на новый уровень. После завершения курса получу сертификат — добавлю его в резюме.

Повторение JavaScript.
Каждый день уделяю 15–20 минут решению задач. Легкие задачи даются быстро, над сложными иногда приходится посидеть, но прогресс чувствуется.


🌤 Мое первое приложение на JavaScript — прогноз погоды
📱 Сделано с нуля, с адаптивной версткой и работой с API.
🧠 Самостоятельно разобралась с асинхронными функциями, добавила обработку ошибок, сделала поиск по городам и динамическую смену изображений в зависимости от погоды.

✅ Полный код доступен здесь:
🔗 GitHub — weather-mobile-app


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

У меня был затык конкретно на цикле for. Оказалось, я просто не до конца усвоила тему — и не закрепила это повторением.

Что я сделала? Сначала прошлась по 25 (!) самых базовых задач именно с этим циклом. Вот те, что стоит прям натренировать до автоматизма:
• перебрать массив
• найти сумму
• найти максимум
• развернуть строку или массив
• фильтровать элементы
• создавать новые массивы по условию
Когда это стало легко — перешла к задачам посложнее. И вот теперь, кажется, for у меня уже на подкорке :)

📌 Планирую делать так же с остальными темами:
по отдельности — каждый метод массива,
цикл while, do while,
работу со строками и т.д.


А вдруг у меня не получится освоить программирование?


Обязательно не получится. У меня что-то не получается примерно каждые полчаса. Но главное — разбираться, гуглить, пробовать снова и не сдаваться. В итоге все получится. 💪🚀


Можно ли написать приложение после 2 месяцев обучения без посторонней помощи?

Недавно я рассказывала, что сделала свое первое приложение с прогнозом погоды. Еще два месяца назад я не могла написать и двух строк кода на JavaScript, а теперь – готовый проект!

Но смогла ли я написать его полностью самостоятельно? Сейчас расскажу.

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

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

Что я сделала сама?
Дизайн в Figma – полностью мой.
Код для открытия окна поиска – написала сама, опираясь на похожую логику из предыдущих проектов.
Отображение данных о погоде (температура, влажность, скорость ветра и т. д.) – писала сама.
Обновление картинки в зависимости от погоды – тоже мой код.
Дата – нашла на MDN, адаптировала под свой проект.
Асинхронный код – взяла из видео, разобралась, внесла изменения и спросила у ChatGPT, как улучшить. Он предложил использовать try/catch – это современный подход, о котором я узнала на курсе по JS.

А что было сложно?
Ошибки. Много ошибок. 🤯
То API не работает, то код выдает неожиданные результаты. Приходилось читать документацию, статьи, гуглить, смотреть видео и спрашивать у ИИ.

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


Сейчас, наверное, самый сложный период за все время обучения. Я заметила, что стала забывать некоторые темы по JavaScript. Открыла задачи, которые решала месяц назад — и сейчас могу справиться в лучшем случае с 1-2 из 10.

Возможно, это из-за переизбытка информации, а возможно, потому что у меня не было выходных почти четыре месяца. В любом случае мотивация просела сильно.

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


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

Зеленый текст — это мои пояснения к коду. Оставляю их на случай, если в будущем буду делать что-то похожее. Так быстрее вспомню логику, а не разбираться с нуля.

Хорошая привычка, которая экономит время!


Что умеет мое приложение с прогнозом погоды?

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

Интерактивный поиск
— У приложения есть окно поиска, которое автоматически скрывается после выполнения запроса.
— Его можно снова открыть, нажав на плюс в правом верхнем углу. Если пользователь нажимает вне поля поиска, оно также скрывается.

Запрос данных по API
— Пользователь вводит название города, и приложение отправляет запрос к OpenWeatherAPI.
— Данные о погоде загружаются и отображаются в верхней части интерфейса.
— Запрос можно выполнить как кнопкой, так и клавишей Enter.

Динамическое отображение погоды
— Полученные данные вставляются в контент с помощью асинхронной функции.
— Если что-то пошло не так (например, город не найден), срабатывает обработка ошибок через try/catch.
— В зависимости от полученной информации меняется иллюстрация погоды.

Автоматическое обновление даты
— Дата обновляется в реальном времени с помощью встроенного объекта Date().

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


Video is unavailable for watching
Show in Telegram
Ура! 🎉 Я сделала приложение с прогнозом погоды! Все работает!

Когда у меня будет что-то не получаться, я буду возвращаться к этому посту и вспоминать, что еще 2 месяца назад не могла написать ни строчки кода на JavaScript.

В следующих постах подробно расскажу, как все устроено и какие сложности пришлось преодолеть.


Адаптивная верстка и мой первый бургер-меню 🍔

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

Сам сайт довольно простой, но в мобильной версии добавила бургер-меню — правда реализовать его сложнее, чем кажется. Использовала вот этот туториал.

Здесь же впервые попробовала работу с DOM. Добавила Java Script код, который открывает меню при нажатии на иконку бургера (гордо показываю этот код на скриншоте).

Полностью код можно посмотреть здесь. 🚀

20 last posts shown.

29

subscribers
Channel statistics