Разработка веб-приложений
Сайт рассказывает. Приложение считает, хранит и меняет состояние. Разница в этом, а не в количестве страниц.
Чем приложение отличается от сайта
Граница проходит по слову «состояние». На сайте состояние одно для всех: страница выглядит одинаково для любого посетителя. В приложении у каждого пользователя своё — его данные, его права, его история действий.
Из этого следует всё, что делает приложение дороже: авторизация, база данных, права доступа, обработка ошибок, миграции при изменении структуры данных.
| Сайт | Веб-приложение | |
|---|---|---|
| Что видит пользователь | Одно и то же | Своё |
| База данных | Часто не нужна | Обязательна |
| Вход в систему | Нет | Есть |
| Что тестируется | Вёрстка и формы | Сценарии, права, граничные случаи |
| Что происходит после запуска | Правки контента | Развитие и поддержка |
Что мы обычно строим
Не абстрактные «любые приложения», а типы задач, которые действительно повторяются.
- Расчётные сервисы: калькуляторы стоимости со сложной логикой, конфигураторы, подбор по параметрам
- Внутренние системы: учёт заявок, планирование, распределение задач между исполнителями
- Панели управления: то, что показывает руководителю одну цифру, ради которой всё считается
- Клиентские порталы и кабинеты
- Сервисы с приёмом оплаты и подписками
- Интерфейсы поверх чужого API: когда данные есть, но с ними невозможно работать
Как режем объём
Главный риск в разработке приложения — не техника, а объём. Проект, который делают «сразу целиком», обычно не доживает до запуска: деньги кончаются раньше, чем появляется то, чем можно пользоваться.
Поэтому работа устроена так: сначала один сценарий целиком, до конца, в продакшене. Потом следующий. Каждый этап заканчивается тем, что можно открыть и включить в работу.
Технологии
«Свой код» — это конкретный набор инструментов, а не позиция. Вот он.
- Язык
- TypeScript на клиенте и на сервере — одна кодовая база
- Сервер
- Node.js, серверный рендеринг, свои API-маршруты
- База
- PostgreSQL, миграции, ежедневные резервные копии
- Интерфейс
- Astro, современный CSS, работает с телефона
- Эксплуатация
- Ваш VPS или облако, HTTPS, логи и мониторинг ошибок
Частые вопросы
Почему не мобильное приложение
Потому что для большинства бизнес-задач оно дороже без выигрыша: два магазина, два процесса релиза, две сборки. Веб-приложение открывается по ссылке, обновляется мгновенно и на телефоне работает так же. Отдельное мобильное имеет смысл, когда нужны камера, офлайн или пуши как основной сценарий.
Сколько стоит
Считается по объёму: смета из этапов, ставка 1 500 ₽/час, итог фиксируется в договоре до старта. До разбора задачи любая цифра будет выдуманной, поэтому мы её не называем.
Что с поддержкой после запуска
Почасово и по мере необходимости — обязательной абонплаты нет. Если вам удобнее фиксированный месячный объём часов, это тоже можно, но мы это не навязываем.
Рядом
Софт под конкретный процесс делают тогда, когда готовый не описывает то, как вы работаете. Ниже — как понять, ваш ли это случай, и во что обходится ошибка.
Читать →УслугаРазработка SaaS-платформыSaaS отличается от обычного приложения тремя вещами: у него много арендаторов, у него подписка и у него нельзя выключить прошлую версию. Всё дорогое живёт здесь.
Читать →УслугаРазработка MVPMVP — это не «дешёвая версия». Это самый короткий путь к ответу на вопрос, будут ли за это платить.
Читать →УслугаРазработка личного кабинетаКабинет окупается не удобством, а снятой нагрузкой: клиент перестаёт спрашивать «где мой заказ» и «пришлите счёт ещё раз».
Читать →СтатьяКак запустить MVP и не потратить год впустуюMVP — это не дешёвая версия продукта. Это самый короткий эксперимент, который отвечает на вопрос, будут ли за это платить.
Читать →СтатьяКак составить ТЗ на разработку сайта, если вы не технический специалистХорошее ТЗ отвечает не на вопрос «как сделать», а на вопрос «что считать сделанным». Всё остальное — работа подрядчика.
Читать →Разберём задачу и предложим первый этап
Опишите, что должно происходить внутри системы. В ответ — схема, границы первой версии и оценка по этапам.
Получить оценку проекта