// app.jsx — Лендинг технического специалиста GetCourse const { useState, useMemo } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "theme": "dark", "accent": "#ff5b2e", "hero": "split", "density": "regular" } /*EDITMODE-END*/; // ─── tiny inline icons ───────────────────────────────────────────────────── const Ic = { arrow: (p) => , tg: (p) => , max: (p) => , check: (p) => , plus: (p) => , minus: (p) => }; // ─── NAV ──────────────────────────────────────────────────────────────────── function Nav() { return (
); } // ─── HERO ─────────────────────────────────────────────────────────────────── function Hero({ variant }) { const eyebrow =
Технический специалист GetCourse
; const headline =

Настраиваю
платформу{" "} так,
чтобы она работала — без вашего участия.

; const sub =

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

; const ctas =
Напиши в Telegram Напиши в MAX Что я делаю
; const meta =
Свободна для проектов Ответ в течение часа
; const photo =
Нина Горбачева {/* edge blends with page bg */}
Нина
; if (variant === "center") { return (
{eyebrow}

Настраиваю GetCourse так, чтобы платформа
работала на ваш продукт.

{sub}
{ctas} {meta}
); } if (variant === "split") { return (
{eyebrow} {headline} {sub} {ctas} {meta}
{photo}
); } // asymmetric (default) return (
{eyebrow} {headline}
{sub}
{ctas} {meta}
{photo}
); } // ─── MARQUEE STRIP (instead of generic stats) ────────────────────────────── function Marquee() { const items = [ "Автоворонки", "Цепочки писем", "Платёжные интеграции", "CRM", "Телефония", "Геймификация", "Настройка вебинаров", "Модерация", "Email-рассылки", "Базовая настройка", "Аудит платформы", "Тренинги"]; return (
{[...items, ...items, ...items].map((t, i) => {t} )}
); } // ─── ABOUT ────────────────────────────────────────────────────────────────── function About() { return (
01 — Обо мне

Свежий взгляд
+ аккуратные руки

Я — Нина Горбачева, технический специалист GetCourse. Прошла длинный 4,5-месячный курс в школе GetHelpers  и параллельно учусь внедрять ИИ-агентов в обучающие проекты.

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

{[ ["Реагирую в течение часа", "в рабочее время"], ["Документирую все настройки", "видео + текст"], ["Современные подходы", "ИИ-инструменты в работе"], ["Прозрачные сроки", "фиксируем до старта"]]. map(([a, b], i) =>
{a}
{b}
)}
); } // ─── SERVICES ─────────────────────────────────────────────────────────────── function Services() { const items = [ { n: "01", t: "Базовая настройка GetCourse", d: "Запуск с нуля: домен, страницы, тренинги, права доступа, формы, чат-боты, корзина.", tags: ["Под ключ", "2–7 дней"] }, { n: "02", t: "Автоворонки и цепочки писем", d: "Логика процессов, сегментация, триггеры, A/B-варианты, отчёты по доходимости и доходу.", tags: ["Email + SMS", "Любая сложность"] }, { n: "03", t: "Интеграции", d: "Платёжные системы, CRM, телефония, мессенджеры, аналитика.", tags: ["ЮKassa, ЮMoney", "amoCRM, Bitrix24"] }, { n: "04", t: "Геймификация", d: "Баллы, уровни, рейтинги учеников — настройка под механику курса и удержание.", tags: ["Под механику", "С тестированием"] }, { n: "05", t: "Настройка и модерация вебинаров", d: "GetCourse-вебинар, автовебинар, модерация, опросы, дожимы.", tags: ["Live-смены", "До 5 000 участников"] }, { n: "06", t: "Email-рассылки и сегменты", d: "Шаблоны, верстка, тэги, динамические поля, прогрев базы, защита от спама.", tags: ["Шаблоны GC", "Прогрев домена"] }]; return (
02 — Услуги

Шесть вещей,
которые делаю хорошо

Можно взять отдельную задачу — или собрать комплекс. Сначала созваниваемся, фиксируем объём и сроки, потом работаем.

{items.map((it, i) =>
{it.n}

{it.t}

{it.d}

{it.tags.map((x, k) => {x})}
)}
); } // ─── CASES ────────────────────────────────────────────────────────────────── function Cases() { const cases = [ { tag: "Воронка", title: "Довебинарная воронка для запуска курса", role: "Ассистент технического специалиста", what: "Собрала цепочку из 5 писем, серию напоминаний и регистрационную форму. Подготовила сегменты, проверила корректность UTM-разметки и доходимость на вебинар.", result: [ ["5 писем", "цепочка прогрева"], ["3 напоминания", "до и в день вебинара"], ["0 сбоев", "на день старта"]] }, { tag: "Лендинги", title: "Доработка двух посадочных страниц", role: "Самостоятельная задача", what: "Привела две страницы к единому виду на мобильных, переработала формы, заменила сломанные ссылки на чат-бота и проверила связки с воронкой.", result: [ ["2 лендинга", "приведены к виду"], ["100%", "форм ведут в воронку"], ["Mobile-first", "обе страницы"]] }, { tag: "Поддержка", title: "Техподдержка проекта на стороне коллеги", role: "Помощник senior-специалиста", what: "Подхватывала рутину в проекте: настройка тренингов, права доступа, отладка интеграций и проверка автоматических процессов. Освоила работу в большой настроенной экосистеме.", result: [ ["12+ задач", "разного характера"], ["Без правок", "от наставника"], ["Готова масштабировать", "формат на свои проекты"]] }]; return (
03 — Кейсы

Не громко — но
по делу

Пока работала в команде наставника. Здесь — реальные задачи, к которым прикладывала руки. Без приукрашиваний.

{cases.map((c, i) =>
0{i + 1}
{c.tag}

{c.title}

{c.role}
{c.what}
{c.result.map(([n, t], k) =>
{n} {t}
)}
)}
); } // ─── CERTIFICATES ─────────────────────────────────────────────────────────── function Certs() { const certs = [ { name: "GetHelpers — курс «Технический специалист»", date: "2025 · 4,5 месяца", status: "Выпускница", t: "Длинная программа с домашними заданиями и наставником. Реальные проекты в портфолио." }, { name: "GetCourse — обучение по платформе", date: "2026", status: "Пройдено", t: "Официальные обучающие материалы по основным разделам GetCourse." }, { name: "ИИ-агенты в обучающих продуктах", date: "2026— в процессе", status: "Учусь сейчас", t: "Внедрение ИИ-ассистентов в воронки, поддержку и проверку заданий." }]; return (
04 — Обучение

Где училась
и продолжаю

Учусь у тех, кто работает с GetCourse каждый день. Подходы — актуальные, а не «как было пять лет назад».

{certs.map((c, i) =>
0{i + 1}
{c.name}
{c.date}
{c.t}
{c.status === "Учусь сейчас" && } {c.status}
)}
); } // ─── PRICING ──────────────────────────────────────────────────────────────── function Pricing() { const tiers = [ { name: "Точечная задача", price: "от 2 000", sub: "за задачу", ideal: "Когда что-то сломалось или нужно настроить одну вещь.", features: [ "Настройка одной формы / страницы / интеграции", "Правки в существующих процессах", "Видео-передача по итогу", "Срок: 1–2 дня"] }, { name: "Базовая настройка", price: "от 15 000", sub: "за пакет", ideal: "Подойдёт, если запускаете курс или мини-продукт.", features: [ "Тренинг + продающая страница + форма", "Корзина и платёжные интеграции", "Базовая воронка из 3 писем", "Срок: 5–7 дней", "Документация по проекту"], featured: true }, { name: "Под ключ", price: "от 35 000", sub: "за проект", ideal: "Большой запуск или перенос. Беру после созвона и оценки.", features: [ "Полная упаковка платформы", "Воронка + рассылки + сегменты", "Все необходимые интеграции", "Геймификация (при необходимости)", "Сопровождение 14 дней после сдачи"] }]; return (
05 — Тарифы

Прозрачно,
без сюрпризов в счёте

Стоимость зависит от объёма. Цены ниже — стартовые ориентиры, точную смету собираем после короткого созвона.

{tiers.map((t, i) =>
{t.featured && Часто выбирают }
0{i + 1}

{t.name}

{t.ideal}

{t.price} ₽ {t.sub}
    {t.features.map((f, k) =>
  • {f}
  • )}
Обсудить задачу
)}
); } // ─── TESTIMONIALS ─────────────────────────────────────────────────────────── function Reviews() { const items = [ { q: "Нина забрала у меня кусок рутины — настройку тренингов и проверку прав. Сделала аккуратно, переспросила всё, что было непонятно. Беру в команду на постоянной основе.", who: "Анна Н.", role: "технический специалист GetCourse, наставник" }, { q: "Перед запуском надо было быстро привести два лендинга к нормальному виду. Нина подключилась в тот же день, к утру всё работало. Чисто и без переделок.", who: "Кирилл М.", role: "продюсер онлайн-школы" }, { q: "Понравилось, что после каждой задачи присылает короткое видео — что и где сделано. Не нужно держать в голове настройки, всё задокументировано.", who: "Ольга В.", role: "автор курса по психологии" }]; return (
06 — Отзывы

Что говорят
те, с кем работаю

* Имена сокращены. Полные отзывы и контакты — по запросу в Telegram.
{items.map((r, i) =>
{r.q}
{r.who}
{r.role}
)}
); } // ─── FAQ ──────────────────────────────────────────────────────────────────── function FAQItem({ q, a, open, onClick }) { return (

{a}

); } function FAQ() { const qs = [ { q: "Какие задачи вы берёте, а какие — нет?", a: "Беру: базовую настройку, воронки, рассылки, интеграции, геймификацию, поддержку вебинаров и работу с лендингами в редакторе GetCourse. Не беру: разработку с нуля сложных кастомных скриптов и масштабные миграции между платформами — для такого порекомендую более опытного коллегу." }, { q: "Сколько времени занимает работа?", a: "Точечная задача — 1–2 дня, базовая настройка — 5–7 дней, проект под ключ — 2–4 недели в зависимости от объёма. Точные сроки фиксируем после короткого созвона и оценки." }, { q: "Как мы будем общаться?", a: "Основной канал — Telegram. Для созвонов — Zoom или Telegram. Все настройки документирую: высылаю короткие видео и текстовое резюме после каждой задачи, чтобы вы могли вернуться к ним позже." }, { q: "Какие гарантии?", a: "Все настройки тестирую сама перед сдачей. В течение 14 дней после завершения проекта правлю баги и неточности бесплатно. На отдельные задачи действуют предоплата 50% и пост-оплата 50% после сдачи." }, { q: "Работаете с большими школами?", a: "Беру задачи в команде с другими специалистами или как помощник в большой инфраструктуре. Самостоятельно крупный проект пока не веду — честно об этом скажу на созвоне." }, { q: "Что нужно, чтобы стартовать?", a: "Доступ к аккаунту GetCourse в роли «администратор», короткое описание задачи и желаемых сроков. После созвона согласовываем смету, фиксируем объём и начинаем." }]; const [open, setOpen] = useState(0); return (
07 — FAQ

Частые
вопросы

Если не нашли своего вопроса — напишите в Telegram, отвечаю в течение часа.

{qs.map((q, i) => setOpen(open === i ? -1 : i)} /> )}
); } // ─── CONTACT ──────────────────────────────────────────────────────────────── function Contact() { return (
{/* decorative */}
08 — Контакт

Расскажите
о задаче.
Отвечу в течение часа.

Telegram — быстрее всего. Если удобнее почта или голосом, тоже можно: напишите в чат, договоримся.

); } // ─── FOOTER ───────────────────────────────────────────────────────────────── function Footer() { return ( ); } // ─── TWEAKS PANEL ─────────────────────────────────────────────────────────── function TweaksUI({ t, setTweak }) { return ( setTweak("theme", v)} /> setTweak("accent", v)} /> ); } // ─── APP ──────────────────────────────────────────────────────────────────── function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); // apply tweaks to root React.useEffect(() => { document.documentElement.setAttribute("data-theme", t.theme); document.documentElement.style.setProperty("--accent", t.accent); }, [t.theme, t.accent]); return (