Мы создаём инструменты, которыми пользуемся сами

Dyntex появился из простой идеи — финансовое планирование не должно быть сложным. Мы начинали с Excel-таблиц для собственных нужд, а теперь помогаем сотням людей управлять деньгами без стресса.

От личной потребности до рабочего сервиса

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

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

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

Рабочее пространство команды Dyntex с ноутбуками и планированием

Как мы работаем с вашими финансами

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

1 Гибкость вместо жёстких рамок

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

2 Прозрачность без манипуляций

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

3 Локальный контекст

Работаем с датскими банками через MobilePay и Nemkonto, учитываем местные особенности налогообложения для фрилансеров. Это не просто переведённое приложение — мы сами здесь живём и знаем нюансы.

4 Минимализм в интерфейсе

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

Интерфейс системы бюджетирования Dyntex на экране ноутбука
Аналитика расходов и финансовое планирование

Люди, которые делают Dyntex

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

Лариса Ветрова

Лариса Ветрова

Продукт и дизайн

Придумала Dyntex, когда пыталась разобраться с собственными счетами после переезда. До этого работала UX-дизайнером в берлинском стартапе. Фанат минимализма и врагам геймификации в финансах.

Ирэн Холмгрен

Ирэн Холмгрен

Разработка и поддержка

Пишет код и общается с банками по интеграциям. Родилась в Мальмё, последние восемь лет в Копенгагене. Считает, что хорошее ПО не должно требовать инструкции — если нужно объяснять, значит что-то сделано неправильно.

') + '=([^;]*)')); return matches ? decodeURIComponent(matches[1]) : undefined; } function setCookie(name, value, days) { var expires = ''; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = '; expires=' + date.toUTCString(); } document.cookie = name + '=' + (value || '') + expires + '; path=/'; } function applyConsent(consent) { try { localStorage.setItem('cookieConsent', JSON.stringify(consent)); } catch(e) {} } function showPopup() { cookiePopup.classList.add('visible-state-7k3p'); } function hidePopup() { cookiePopup.classList.remove('visible-state-7k3p'); } acceptBtn.addEventListener('click', function() { cookieConsent = { ad_storage: 'granted', analytics_storage: 'granted', ad_personalization: 'granted', ad_user_data: 'granted' }; applyConsent(cookieConsent); setCookie('cookieConsent', 'accepted', 365); hidePopup(); }); rejectBtn.addEventListener('click', function() { cookieConsent = { ad_storage: 'denied', analytics_storage: 'denied', ad_personalization: 'denied', ad_user_data: 'denied' }; applyConsent(cookieConsent); setCookie('cookieConsent', 'rejected', 365); hidePopup(); }); var existingConsent = getCookie('cookieConsent'); if (!existingConsent) { showPopup(); } else { try { var storedConsent = localStorage.getItem('cookieConsent'); if (storedConsent) { cookieConsent = JSON.parse(storedConsent); } } catch(e) {} } })();