offplan .online
Launch Plan · Appendices B–E

offplan.online — Plan Appendices

Research artefacts: вопросы (Appendix B и C), заметки (D), полная карта открытых вопросов (E). Связанный документ: главный план.

Производный документ · v4.1
Appendix B

20 новых вопросов

Дополняют 44 вопроса из launch-plan-v2 (Appendix C). Акцент на security, rate limiting, reliability.

Security (7)

#ВопросОтветственный
N1Как устроена tenant isolation — database-level (per-tenant schemas) или application-level (WHERE tenant_id = ?)? Какой уровень защищённости?Tech team
N2Есть ли автоматические регрессионные тесты изоляции в CI?Tech team
N3Аудит auth flow: session fixation, CSRF, timing attacks, token leaks в URL?Tech team + внешний security аудитор
N4Как хранятся пароли (bcrypt / argon2 / scrypt)? Соль + стоимость?Tech team
N5Есть ли шифрование медиа на storage? Access control на S3/bucket?Tech team
N6Политика rotation ключей и токенов (API keys, JWT signing, Stripe, OAuth)?Tech team
N7Как детектим + отвечаем на suspicious activity?Tech team + Ops

Rate Limiting / DoS (3)

#ВопросОтветственный
N8Какие rate limits есть сейчас (per IP / user / tenant / endpoint)? Где хардкоджены?Tech team
N9Upload rate limits: файл/минута, MB/час, concurrent uploads?Tech team
N10Есть ли WAF или CDN-based DDoS protection?Ops

Reliability / Backup (3)

#ВопросОтветственный
N11RTO (Recovery Time Objective) и RPO (Recovery Point Objective) — формальные цели?Ops + Product
N12Когда последний раз делали restore drill?Ops
N13Backup retention: как долго, где, в одном регионе или off-site?Ops

Scaling / Performance (2)

#ВопросОтветственный
N14Capacity model: до какой нагрузки архитектура держит?Tech team
N15Unit economics: стоимость инфраструктуры per studio?Finance + Ops

Monitoring / SLO (2)

#ВопросОтветственный
N16Какие SLI/SLO определены? Alert правила?Ops
N17Runbooks для топ-5 инцидентов?Ops

Auth / SSO (2)

#ВопросОтветственный
N18Auth providers на старте (email/password / Google / Microsoft / Magic Link / SAML)?Product team + Tech team
N19MFA: обязательный / опциональный / role-based? TOTP / SMS / WebAuthn?Tech team

Compliance (1)

#ВопросОтветственный
N20Roadmap compliance (SOC2, ISO27001, UAE DPR, GDPR audit) — когда критично для enterprise-deals?Sales + Legal
Appendix C

44 существующих вопроса (из launch-plan-v2)

См. полный список в plans/launch-plan-v2.md (Блок 1, секции 1.1 и 1.2). Все остаются актуальными. Ключевые, требующие обновления ответов:

Appendix D

17 заметок из тестирования (Project Lead, 2026-04-24)

#ОписаниеСтатусГде в плане
1Buildings отображает только 10 зданий (11-е не видно)❌ Не воспроизвелось на проде 2026-04-30
2Levels: ограничения по размерам файлов — где и какие?Audit нуженФаза 1.4.4
3Формат файлов не указан на upload поляхПодтвержденоФаза 1.4.4
4Enable/disable зданий, этажей, юнитовFeature requestФаза 2.5.2
5Клик для preview фото в админкеFeature requestФаза 1.4.6
6PDF support + AI для конвертации floor plansFeature requestФаза 4.5.3
8Tower 1 пропадает из dropdown (refresh спасает)❌ Не воспроизвелось на проде 2026-04-30
9Compass выключен — видно 2 башни, включён — все🔬 ПродФаза 1.4.1
10Sorting по колонкам (номер, дата обновления)Feature requestФаза 2.5.2
11После create building → photo → переход на другое здание🔬 ПродФаза 1.4.3
12File conversion на upload (jpeg/png → webp drag-and-drop)Feature requestФаза 3.1.4
13Локализация — первый EN, потом?ПланируетсяФаза 4.4.4
14Form validation сбрасывает прогресс ввода юнита (дублирующее название)✅ Подтверждено 2026-04-30Фаза 1.5.1
15Unit создан но не виден в меню❌ Не воспроизвелось на проде 2026-04-30
16Hotspots на здании — полупрозрачные + hover status✅ Tech teamФаза 4.5.5
17Hotspots: расстановка мышкой вместо значений✅ Подтверждено 2026-04-30Фаза 1.5.5

Итого: 6 заметок 🔬 требуют проверки на продакшене прежде чем быть включёнными в sprint.

Appendix E

Открытые вопросы (сквозная таблица)

Вопросы, требующие решения прежде чем соответствующие задачи могут пойти в работу. Каждый помечен: чей ход + что нужно для закрытия.

#ТемаЧто нужноКтоФаза
Q1 ✅Stripe vs PaddleЧастично решено (CONV-13): Stage 1 = Stripe (primary), Stage 2 = +Paddle (EU B2C MoR), Stage 3 = +Checkout.com (UAE AED). Provider abstraction layer в 1.6.3.1.6.3
Q2 ✅EU Rep vs EU-юрлицоРешено (CONV-13): Cyprus entity (EU member) — EU Representative не нужен. Юрист задействован 2026-04-30.1.6.5
Q3Внешний security audit vs внутреннийБюджет + объективностьTech team + Product team1.7.1
Q4DDoS protection: Cloudflare планНагрузочный профиль + стоимостьOps + Tech team1.7.5
Q5Secrets managerVault self-hosted vs managedTech team3.5.4
Q6 ✅SSO провайдеры на стартеРешено (CONV-14): Google only на старте. Microsoft/Azure AD добавить в Stage 2 по запросу студий. ADR 0005.1.2.1
Q7MFA обязателен или опционаленSecurity postureTech team1.2.1
Q8Email providerSendGrid / Postmark / ResendMarketing + Tech team1.7.6
Q9Demo-проект vs empty-state tutorialProduct decisionProduct team1.2.5
Q10Финальные тарифы (цены и лимиты)Pricing researchProduct team + Finance1.6.2
Q11 ✅Trial без карты vs с картойРешено (CONV-14): Без карты — шире воронка. ADR 0001.1.6.5
Q12 ✅Block vs read-only при истечении trialРешено (CONV-14): Кастомная модель — admin полностью заблокирован; публичная страница проекта показывает только главную страницу здания, остальные секции заблокированы. ADR 0001.1.6.5
Q13Chat platformCrisp / Intercom / Tawk.toProduct team + Ops2.3.1
Q14Heatmap: Hotjar vs MS ClarityБюджет + privacyProduct team + Legal2.4.1
Q15Product analyticsPostHog vs MixpanelProduct team + Tech team2.4.2
Q16Web analyticsGA4 vs privacy alternativesMarketing2.4.3
Q17Feedback aggregation toolTypeform / Notion / AirtableProduct team2.4.4
Q18 🔧Dashboard toolMetabase / Grafana / NotionTech-decision (tech team)2.4.5
Q19Канал для пилотаSlack / WhatsApp / TelegramProduct team + Ops2.1.3
Q20Pilot case studies compensationCash / credits / ничегоMarketing3.2.4
Q21Приоритет CRM integrationsHubSpot / Salesforce / Pipedrive — по фидбекуProduct team + Tech team4.1.4
Q22 🔧MCP scopeRead-only vs read+writeTech-decision (tech team + security)1.4.3
Q23Annual discount %Pricing psychologyProduct team4.2.3
Q24Dunning policy после 8 днейDowngrade / block / удалениеProduct team + Legal4.2.4
Q25Второй язык после ENGeography priorityProduct team + Marketing4.4.4
Q26 🔧Grid library для Power EditorFree vs paidTech-decision (tech team)4.3.2
Q27Visual Editor scopeКакие поля editableProduct team4.3.3
Q28 ✅Retention: активный / 90d / 12moРешено (CONV-14): Audit log — 12 месяцев активно, затем архив (cold storage). ADR 0004.1.6.2
Q29DPA modelSelf-serve click vs signedLegal1.6.3
Q30Status pageГотовое vs customOps3.5.3
Q31 ⚡Data export + Right to erasure (GDPR Art. 20 + 17)Частично решено (CONV-14): Right to erasure = hard-delete request flow (manual Iteration 1, self-serve Iteration 2). ADR 0003. Data export scope + форматы — ещё открыто.Product team + Legal + Tech team1.6 + новая
Q32Migration существующих VV-клиентовMandatory / optional / no migrationProduct team + Legalstrategic
Q33Content moderation + DMCADMCA agent + moderation approachLegal + Product team1.6 + новая
Q34Geographic data sovereigntyDefault-region + multi-region roadmapTech team + Product team + Legal1.1 + арх.
Q35Channel strategy: direct / partners / marketplaceChannel mix + partner structureProduct team + Marketing + Sales3.2
Q36Accessibility (WCAG) complianceУровень + timing + auditDesign + Tech team + Legal3.1
Q37Incident communication + SLA creditsСтруктура credits + policyLegal + Ops + Finance3.5
Q38White label depthPolicy per tarifProduct team + Marketing + Legal4.3.6

Итого: 38 вопросов — 6 решено ✅, 1 решено частично ⚡, 31 открыто. (Обновлено CONV-14, 2026-05-01)

Расширенные стратегические вопросы (Q31–Q38)

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

Q31Data export + Right to erasure (GDPR Art. 20 + 17)
Product team + Legal + Tech teamФаза 1.6 + новая

В чём суть: Две парные GDPR-обязанности — Art. 20 (Data Portability: выгрузить все данные в машиночитаемом формате) + Art. 17 (Right to Erasure / «Right to be Forgotten»: полное удаление данных). Без обоих — нарушение GDPR + отсутствие business trust.

Почему важно: GDPR штрафы до 4% annual revenue. Плюс #1 sales objection в B2B SaaS: «что если я уйду — смогу забрать данные и закрыть аккаунт?»

Что входит в export (Art. 20) (6)
  • Структура проектов (JSON) — buildings, levels, units, floor plans
  • Медиа (ZIP с оригиналами)
  • Users / permissions
  • Лиды (CSV)
  • Билинг-история + invoices (PDF)
  • Audit log
Что входит в erasure (Art. 17) (4)
  • Удаление всех personal data
  • Retention log самого факта удаления (для audit, anonymous)
  • Каскадное удаление в backups
  • Exclusion: legal hold data (налоговые инвойсы — 7 лет независимо)
Варианты реализации (3)
  • Basic (до пилота): кнопка «Export» + «Delete account» → async + email confirm (~1-2 недели)
  • Full (до public launch): все данные, multiple formats, API endpoint, scheduled exports (~2-3 недели)
  • Real-time (enterprise): webhook-driven sync в S3-бакет клиента
Что решить (6)
  • Scope: project-level / tenant-level / всё
  • Форматы export: наш JSON + стандартные (glTF / CSV / PDF)
  • Когда: до пилота (GDPR с первого дня) или до публичного launch?
  • Erasure — self-serve (кнопка) или только manual request (ticket)?
  • Retention после erasure — какие данные остаются (legal hold)?
  • Freemium — basic для всех / advanced для enterprise?
Q32Migration существующих VV-клиентов
Product team + LegalСтратегический

В чём суть: У VV есть текущая клиентская база — они на bespoke-контрактах (не self-serve SaaS). Как эти клиенты взаимодействуют с новой SaaS-платформой?

4 варианта (4)
  • Mandatory migration — все мигрируют, bespoke контракты прекращаются. Чистый, болезненный
  • Optional migration — клиент сам решает. Duality (обе модели параллельно)
  • No migration — SaaS только для новых, существующие остаются. Нет потрясений, но бренд разделяется
  • Hybrid — SaaS для новых, существующие мигрируют только если захотят (с compensation)
Что решить (5)
  • Какой из 4 вариантов?
  • Compensation для мигрирующих (скидка / credits / grandfathered price)?
  • Timeline миграции (6 мес / 12 мес / indefinite)?
  • Отдельные SLA / feature-set для legacy vs SaaS?
  • Кто ведёт процесс (отдельный CS-менеджер)?
Риски если не решить (3)
  • Существующие клиенты узнают о SaaS случайно → недовольство
  • Dual-model создаёт комплексность для tech team (две кодовые базы)
  • Возможно legal-обязательства перед существующими клиентами (notice period, price lock)
Q33Content moderation + DMCA
Legal + Product teamФаза 1.6 + новая

В чём суть: Защита от трёх рисков — copyright infringement (студия загружает чужие рендеры), AUP violations (неуместный / фейковый / malware контент), geographic restrictions (KSA требует content filtering).

DMCA specific (4)
  • DMCA Designated Agent — регистрация в US Copyright Office ($6 fee) обязательна для Safe Harbor
  • Takedown process — dmca@offplan.online + шаблон notice, 24-48h SLA
  • Counter-notice — студия может оспорить (10-14 days safe harbor period)
  • Repeat infringer policy — 3 обоснованных жалобы = terminate
AUP specific (4)
  • Чёткий AUP в ToS (Фаза 1.6.1)
  • Report button на публичных страницах
  • Manual review queue для reports
  • Suspension flow (temporary / permanent)
Что решить (4)
  • DMCA agent регистрируем до пилота (safe) или до public launch (cheap)?
  • Moderation: manual review (дешёво, медленно) или automated scanning (дорого, быстро)?
  • NSFW / content filtering обязателен в Стадии 1 или откладываем?
  • Content hash scanning (PhotoDNA) — overkill для нас или enterprise feature?
Q34Geographic data sovereignty
Tech team + Product team + LegalФаза 1.1 + арх.

В чём суть: Некоторые юрисдикции требуют физическое хранение данных локально. НЕ путать с GDPR (который разрешает export данных с SCCs).

Кто требует (4)
  • EU GDPR — не требует «данные в EU», но strict control на transfer в third countries (UAE)
  • UAE DPR — отдельные сектора требуют local storage (real estate пока нет)
  • KSA PDPL — с 2024 требует local hosting для sensitive data
  • China / Russia — не наши рынки, но примеры жёсткой localization
Архитектурные варианты (4)
  • Single region — дёшево, одна default (EU-West). Отказываемся от клиентов с local-требованиями
  • Multi-region read replicas — source of truth EU, replicas в UAE для latency
  • Per-tenant region — дорого, сложно. Tenant выбирает регион при signup
  • Per-tenant instance — очень дорого, enterprise-only
Что решить (4)
  • Default region на старте (EU-West / US / UAE)?
  • Multi-region roadmap — когда (6 мес / 12 мес / никогда)?
  • Какие enterprise-требования мы готовы принимать (если да — на каком ценовом уровне)?
  • Data residency как feature в контрактах — только enterprise или всем?
Q35Channel strategy: direct / partners / marketplace
Product team + Marketing + SalesФаза 3.2

В чём суть: Как продаём продукт — определяет go-to-market и влияет на структуру маркетинг-команды, pricing, tooling.

Возможные channels (5)
  • Direct through landing — студия находит нас через Google Ads / SEO / PR → signup. Стандарт B2B SaaS.
  • Partner program — рендер-студии приводят других за commission. Multiplicative effect.
  • Marketplace listings — AppSumo / G2 / Capterra / PropTech маркетплейсы. Traffic + reviews.
  • Direct sales (enterprise) — outreach к крупным агентствам, custom contracts. Высокий CAC, высокий ACV.
  • Industry conferences — PropTech / real estate events. Expensive, network-heavy industry.
Типичный sequence B2B SaaS (5)
  • 1. Direct landing + SEO/content (от запуска)
  • 2. Referral program (после первых 50 customers)
  • 3. Marketplace listing G2/Capterra (6 месяцев после launch)
  • 4. Affiliate program (9-12 мес после launch)
  • 5. Channel partners / reseller (after proof of product + $100k+ MRR)
Что решить (4)
  • Channel mix (какие priority, какие можно отложить)
  • Partner program structure (affiliate / referral / integration partner)
  • Какие marketplaces priority (AppSumo = deal-hunters, G2 = enterprise research, Capterra = SMB)
  • Budget allocation между каналами
Q36Accessibility (WCAG) compliance
Design + Tech team + LegalФаза 3.1

В чём суть: WCAG — стандарты доступности для людей с ограниченными возможностями. EU EAA обязателен с 2025-06-28 для B2C веб-сервисов. Публичные страницы проектов = B2C → попадают. Fines до €1M. ADA в США — основание для lawsuits.

Что больно в нашем продукте (5)
  • 360° panorama — screen reader не может «прочитать» walkthrough. Нужны alt-описания
  • Hotspots — mouse clicks OK, keyboard navigation?
  • Floor plans — визуальный контент, нужны accessible descriptions
  • Цвета статусов (sand/gold) — contrast ratio проверить
  • Forms — signup, onboarding — labels, error messages для screen reader
Что решить (5)
  • Target уровень: AA (стандарт) или AAA (premium)?
  • Timing: до пилота / до public / отложено?
  • Audit: внутренний или внешний ($5-15k)?
  • Automated testing в CI (axe, pa11y) — да / нет?
  • Scope: публичные страницы / admin / оба?
Q37Incident communication + SLA credits
Legal + Ops + FinanceФаза 3.5

В чём суть: Мы обещаем 99.5% uptime в ToS. Что происходит если не выполняем? Incident communication частично в плане (status page 3.5.3), но SLA credits — стандарт B2B SaaS, отсутствует.

Типичная структура SLA credits (4)
  • 99.5%+ uptime → 0 credit
  • 99.0-99.5% → 10% скидка на следующий месяц
  • 95.0-99.0% → 25% скидка
  • <95.0% → 50% скидка
Что решить (6)
  • Заводим ли SLA credits вообще? (Некоторые SaaS дают «best effort guarantee»)
  • Структура (tiered vs flat)?
  • Applied автоматом или только по запросу клиента?
  • Cap (max 100% или меньше)?
  • Включено в Starter / Studio / Agency или только Enterprise?
  • Communication policy — automated status page + manual email?
Q38White label depth
Product team + Marketing + LegalФаза 4.3.6

В чём суть: Сколько VV-бренда видит конечный покупатель квартиры на странице студии? От heavy branded («Powered by VV» в header) до полной invisibility.

3 уровня white-label (3)
  • Heavy branded — Header с VV logo + «Powered by VV». Мы = маркетинг, студия = дистрибьютор. Бесплатный traffic
  • Light branded — Мелкий «Powered by VV» в футере. Balance: студия premium, мы получаем mention
  • Invisible — Никакого VV. Студия максимально premium, мы теряем visibility
Где ещё может всплывать brand (5)
  • 360° walkthrough UI — кнопки / controls с нашим стилем?
  • Email-уведомления покупателю — от студии или от @volumevision?
  • Domain (studio.com vs studio.offplan.online)
  • Meta tags / Open Graph (при share в WhatsApp/LinkedIn)
  • Hard-coded footer copy?
Typical B2B SaaS pattern (4)
  • Starter — «Powered by» обязательно (как Notion free)
  • Studio — убирается
  • Agency — убирается + кастомизация meta tags
  • Enterprise — полная invisibility + custom domain + custom emails
Что решить (4)
  • Policy per tarif — на каком tier'е убираем VV-брендинг?
  • Scope — где видно брендинг (walkthrough / emails / meta / footer)?
  • Mandatory vs removable — на базовом plan нельзя убрать или можно за доплату?
  • Privacy policy линк — ведёт к студии или к VV?