Внутренний инструмент · iOS и macOS · SwiftUI + Supabase

Pixelmar
CRM

Индивидуальная внутренняя CRM для digital-агентства Pixelmar — от web-лида и структурированного первичного разговора до готового к отправке предложения, всё в одном нативном приложении.

Тип
Внутренняя B2B-CRM
Платформа
iOS + macOS (нативно)
Backend
Supabase (Auth + CRUD)
Распространение
MDM — без App Store
01 — Исходная ситуация

Проблема

Данные лидов из контактной формы сайта, заметки из первичных разговоров, предложения в разных файлах — sales pipeline Pixelmar был распределён между несколькими инструментами. Не было единого потока данных, общей картины и понятного статуса по каждому лиду.

Нужна была не универсальная SaaS-система, а индивидуальный инструмент, который точно отражает workflow Pixelmar: от входящей заявки с web-формы через структурированный первичный разговор до готового, отформатированного предложения — и при этом нативно работает на Apple-устройствах.

Решение: SwiftUI-приложение с Supabase-backend, распространяемое через MDM на все внутренние Apple-устройства — без App Store, без лишнего overhead, полностью адаптированное под агентский workflow.

Пользователи Внутренняя команда агентства
Дистрибуция MDM (без App Store)
Framework SwiftUI
Backend Supabase
Auth Supabase Auth
PDF-вывод Собственный PDF-движок
02 — Основной workflow

От лида до предложения

Шаг 01

Web-форма

Клиент заполняет контактную форму на pixelmar.de — лид автоматически попадает в базу данных и сразу появляется в приложении.

Шаг 02

Управление лидами

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

Шаг 03

Первичный разговор

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

Шаг 04

Предложение и PDF

Предложение создаётся прямо в приложении: позиции, условия и суммы задаются внутри app, затем формируется брендированный PDF для отправки.

03 — Функциональность

Что умеет приложение

🏢

Клиенты и лиды

Создание компаний, установка статуса: лид, активный клиент, сопровождение; ведение контактов и активностей по каждой компании.

💬

Структурированный первичный разговор

5-этапный опросник с функцией черновика — содержание разговора больше не теряется.

📋

Создание предложений

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

📄

PDF-движок

A4-PDF с брендированным макетом Pixelmar, блоками отправителя и получателя, таблицей позиций и итоговыми суммами.

📊

Dashboard и KPI

Обзор в реальном времени: открытые предложения, активные проекты, milestones и последние активности.

🔔

Push-инфраструктура

Обработка APNs-токенов с сохранением в Supabase — push-уведомления уже подготовлены.

04 — Техническая реализация

Как это было построено

01

SwiftUI с сервисной архитектурой

@StateObject-based services для каждой доменной области: CompanyService, OfferService, DashboardService, OfferPDFService. Session-based routing в PixelmarCRMApp.swift: Loading → Splash → MainTabView при входе или Login без авторизации. Cross-platform: TabView на iOS, NavigationSplitView на macOS.

SwiftUI @StateObject Services iOS + macOS
02

Supabase как backend

Supabase отвечает за Auth, CRUD-операции и API-запросы. Доменная модель в Models.swift включает: Company, Contact, Questionnaire, Offer, Project, Milestone, MaintenanceContract и Activity. Dashboard-запросы выполняются параллельно для быстрой загрузки.

Supabase Auth Параллельные API-запросы
03

Собственный PDF-движок

OfferPDFService создаёт A4-PDF с контролируемым брендированным макетом: логотип Pixelmar, фирменный акцентный цвет, блоки отправителя и получателя, таблица позиций, расчёт итогов, footer с контактными данными. Немецкий формат валюты и даты. Платформоспецифическая механика preview и share для iOS и macOS.

PDFKit Брендированный макет iOS + macOS Share
04

Business-логика и status-workflows

Генерация номеров предложений в формате ANG-YYYY-NNN, status-workflows для лидов и предложений, агрегация KPI в dashboard. Web-лиды из контактной формы pixelmar.de автоматически попадают в Supabase как новые записи и сразу появляются в приложении.

Логика номеров предложений Status-workflows Web-интеграция

„End-to-End agency workflow в одном приложении: от первого контакта на сайте до готового к отправке предложения — операционно применимо, не просто demo."

05 — Результат

Что получилось

1
Единый workflow вместо разрозненных инструментов
4
Ключевые модули: лиды, разговор, предложение, dashboard
2
Платформы: iOS и macOS нативно
Web-лиды автоматически попадают из формы pixelmar.de в приложение
Структурированный 5-этапный опросник для первичного разговора с функцией черновика
Создание предложений прямо в приложении с автоматической нумерацией
Брендированный PDF-вывод с контролируемым макетом для iOS и macOS
Dashboard с real-time KPI, открытыми предложениями и активностями
Распространение через MDM — без App Store, полный контроль
Push-инфраструктура подготовлена, проекты и сопровождение как следующий этап развития
🔒
Распространение
Внутренне через MDM — недоступно в App Store
06 — Технологии

Использованный стек

SwiftUI
Supabase
Supabase Auth
PDFKit
CloudKit (Push)
APNs
iOS + macOS
MDM Deployment
Xcode

Планируете похожий проект?

Расскажите нам о своей идее. Первая консультация бесплатна и ни к чему не обязывает.

Запросить первую консультацию → ← Назад ко всем проектам