// (function () { var el = document.querySelector('[data-loader]'); if (!el) return; if (!window.gsap) { el.style.display = 'none'; return; } document.body.classList.add('ud-loading'); if (window.DrawSVGPlugin) gsap.registerPlugin(window.DrawSVGPlugin); var mark = el.querySelector('.udl-mark'), txt = el.querySelector('.udl-title'); var fills = el.querySelectorAll('[data-fill-d],[data-fill-u]'); var lines = el.querySelectorAll('[data-line-d],[data-line-u]'); var hasDraw = !!window.DrawSVGPlugin && lines.length > 0; var done = function () { document.body.classList.remove('ud-loading'); el.style.display = 'none'; }; var tl = gsap.timeline({ defaults: { ease: 'power2.out' } }); if (mark) { if (mark) gsap.set(mark, { opacity: 1, scale: 0.9, transformOrigin: '50% 50%' }); var chars = []; if (txt) { // split the title into per-letter spans so it can reveal letter-by-letter var raw = txt.textContent; txt.textContent = ''; for (var ci = 0; ci < raw.length; ci++) { var cspan = document.createElement('span'); cspan.className = 'udl-ch'; cspan.style.display = 'inline-block'; cspan.style.whiteSpace = 'pre'; cspan.textContent = raw[ci]; txt.appendChild(cspan); chars.push(cspan); } gsap.set(txt, { opacity: 1, letterSpacing: '0.5em' }); gsap.set(chars, { yPercent: 120, opacity: 0 }); } gsap.set('.udl-glow', { opacity: 0.12 }); // mark breathes in tl.to(mark, { scale: 1, duration: 1.0, ease: 'power3.out' }, 0); // glow swells behind it tl.to('.udl-glow', { opacity: 0.6, duration: 0.9, ease: 'sine.out' }, 0); if (hasDraw) { gsap.set(lines, { drawSVG: '0%' }); gsap.set(fills, { opacity: 0 }); // outline draws itself — the two halves trace in sequence tl.fromTo('[data-line-d]', { drawSVG: '0%' }, { drawSVG: '100%', duration: 0.7, ease: 'power1.inOut' }, 0.05) .fromTo('[data-line-u]', { drawSVG: '0%' }, { drawSVG: '100%', duration: 0.7, ease: 'power1.inOut' }, 0.25); // colour floods in, outline fades away tl.to(fills, { opacity: 1, duration: 0.5, stagger: 0.1, ease: 'power2.out' }, '-=0.3') .to(lines, { opacity: 0, duration: 0.5, ease: 'power1.out' }, '<'); } else { // no DrawSVG → just a clean fade-up of the colour fills gsap.set(fills, { opacity: 0, y: 10 }); tl.to(fills, { opacity: 1, y: 0, duration: 0.9, stagger: 0.12, ease: 'power3.out' }, 0.2); } if (chars.length) { // letters rise + fade in left-to-right, while the tracking settles tl.to(chars, { yPercent: 0, opacity: 1, duration: 0.45, ease: 'power3.out', stagger: 0.028 }, '-=0.45') .to(txt, { letterSpacing: '0.32em', duration: 0.6, ease: 'power3.out' }, '<'); } tl.to('[data-loader] .udl-inner', { opacity: 0, y: -16, duration: 0.45, ease: 'power2.inOut' }, '+=0.15') .to('[data-loader]', { yPercent: -100, duration: 0.8, ease: 'power4.inOut', onComplete: done }, '-=0.2'); } else { tl.to('[data-loader]', { yPercent: -100, duration: 0.6, ease: 'power4.inOut', onComplete: done }); } // safety: never trap the page setTimeout(done, 6000); // })();

Сайты и сервисы, которые работают на результат

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

0+ проектов сдано
0+ лет на рынке
0/7 поддержка
БронированиеОплата Payme / ClickЛичные кабинетыДашбордыИнтеграцииМультиязычностьSEOПоддержка
01 Избранные проекты

Проекты, которые работают на бизнес клиентов.

All projects
TEMPLATE · TEMPLATE · TEMPLATE · TEMPLATE ·
LOGIC · LOGIC · LOGIC · LOGIC ·
02 Почему United Developers

Tilda and WordPress cope — while the tasks are simple.

When you need payments, booking, accounts and integrations, templates hit their ceiling. This is where we step in.

03 Что вы получаете

Не сайт-визитка, а рабочий инструмент бизнеса.

Бронирование и онлайн-запись
01 —

Бронирование и онлайн-запись

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

Приём оплат: Payme и Click
02 —

Приём оплат: Payme и Click

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

Личные кабинеты и дашборды
03 —

Личные кабинеты и дашборды

Кабинеты для клиентов и сотрудников, аналитика и разграничение прав доступа. Управляйте бизнесом из одной панели.

Мультиязычность и интеграции
04 —

Мультиязычность и интеграции

Полноценная поддержка нескольких языков и связь с Telegram, 1С, складом и кассой. Сайт работает в единой системе с вашим бизнесом.

04 Как мы работаем

Системный процесс, а не разовая работа.

01
Step 01

Бриф

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

Step 02

Прототип и смета

За несколько дней готовим структуру, прототип и фиксированную смету. Вы понимаете объём и стоимость ещё до старта.

Step 03

Разработка

Собираем проект из проверенных модулей нашей платформы — предсказуемо по срокам, бюджету и качеству.

Step 04

Запуск и поддержка

Публикуем, настраиваем хостинг, аналитику и SEO, дальше сопровождаем и развиваем проект.

05 Тарифы

Тарифы, которые растут вместе с задачей.

От простого сайта до системы под нагрузкой. Каждый следующий тариф включает всё из предыдущего — так видно, что вы получаете, поднимаясь на уровень выше.

06 Свяжитесь с нами

Расскажите о вашей задаче.

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