Перейти до змісту

ShipCore — Концепція

Phase 3 final narrative. Manifesto-варіація конкретно для ShipCore — продуктової лінії, яка формалізує wedge з docs/manifesto.md § 5 у конкретний open-source стек для UA+EU транспортної логістики.


1. Чому ShipCore — а не «горизонтальний український ERP»

Маніфест ESWF/DOP пояснює, чому Україна після 1С не дістане альтернативи через «ще один Odoo». Цей документ конкретизує першу вертикаль, яку ми будуємо за тією логікою.

Поточна траєкторія DOP — horizontal-фокус (Essentials, Accounting, CRM, HRM, Production, Client Portal). Це обліковий шар, на якому стоятимуть специфічні галузеві модулі. Декларація проєкту проста: горизонтальна частина «достатньо хороша» — додавання ще однієї стандартної фічі дає diminishing returns. Натомість одна specific-вертикаль, де generic-продукти не покривають домен, відкриває окрему ринкову позицію.

Транспортна логістика виявилась wedge не випадково:

  • 3 з 3 існуючих вертикалей DOP — transport (Fleet, Logistic, ContainerHub). Це accumulated domain знання команди, не випадковий вибір.
  • Маніфест уже зазначив Multimodal Freight Forwarding як wedge (§ 5). ShipCore = формалізація цієї тези у продуктову лінію.
  • Post-1С vакуум саме у UA логістиці. ZAMMLER, Лідер-Логістик, GVS, Заведенка, Fest Logistics та інші мід-маркет форвардери/перевізники на BAS+Excel+Wialon активно шукають заміну (phase1-ua-customers.md). Згадки конкретних компаній — public-domain market research, не підтверджені pilot-кандидати.
  • EU-перспектива реалістична. Awery (UA-team, aviation niche → global) як референс success case: UA-команда може робити global SaaS у логістиці. Forto (DE) робить це з венчурними грошима — ми робимо open-source без їхнього бюджету, але з тим самим domain.
  • EU + UA + mid-market + road-dominant + customs-heavy — жоден з 7 топ-конкурентів не покриває одночасно (phase1-competitors.md). Wedge підтверджений independent research.

2. Двома реченнями

ShipCore — open-source SaaS для multimodal transport logistics, побудована як umbrella-вертикаль над thin shared core з 7 sub-модулями (auto / forwarder / sea / rail / terminal / avia / pricing). Wedge — UA mid-market форвардер і carrier у post-1С реальності з паралельною EU-готовністю через compliance-by-design.


3. Domain: на чому ми стаємо first-class

Generic ERP (Odoo, SAP, NetSuite) бачить логістичну операцію як Sale Order → Delivery → Invoice. Це працює для роздрібної мережі або виробника. Для multimodal форвардера потрібні інші first-class об'єкти:

Generic ERP термін ShipCore first-class термін Що це насправді
Sale Order Booking Замовлення на перевезення з 3-10 status events, multi-leg execution, demurrage timers
Product Container / Wagon / Vessel / Aircraft Транспортна одиниця як master data з ISO 6346 / RIV / IMO / IATA tail
Partner Shipper / Consignee / Notify Party / Carrier 3 ролі на одному коносаменті + 5-та роль (форвардер як NVOCC)
Pricelist rules Tariff (FCL/LCL + BAF/CAF/THC/DOC + accessorials + corridor-specific) Не one-dimensional rate, а multi-tier formula
Delivery Note CMR / B/L / AWB / СМГС / eCMR Юридично-значимі transport documents з cryptographic signatures
Stock Picking GateTransaction + WeighingTicket Фізичне переміщення вантажу через контрольовану точку
Pricelist effective date MarketCorridor (Чорноморський / Дунайський / EU Land / Asia Rail) Тарифи різні за коридорами через regulatory + risk + insurance specifics
— (нема) Demurrage timer / Detention timer Часові вікна між фізичними подіями, після яких автонарахування пені
— (нема) UNECE event codes Стандартизована типологія transport status (CFD / CGI / CLO / VDP / CDS / POD)

Коли форвардер відкриває generic ERP, він бачить узагальнену модель, яку треба перекладати у свою голову щодня. Когнітивне навантаження від generic-підходу перекладається з виробника ПЗ на користувача — щодня, кожною операцією, кожним новим співробітником.

ShipCore прибирає цей шар трансляції.


4. ICP — кому ми це продаємо

Phase 1 research дав 5 типів цільового клієнта. Pilot wave order підтверджений у decisions-2026-05-12 § C8:

Wave 1 — UA mid-market road carrier (архетип, конкретний клієнт TBD)

  • 50-500 співробітників, 30-200 транспортних одиниць
  • Поточний стек: 1С/BAS + Excel + Wialon
  • Post-1С міграція — головний trigger
  • Pain: дорога інтеграція з BAS, відсутність driver mobile app з offline-sync, ручна tariff калькуляція без CPM
  • ShipCore value prop: shipcore_auto open-source + shipcore_pricing як платний upgrade + driver app з offline WatermelonDB sync

Wave 2 — UA mid-market multimodal forwarder (ZAMMLER tier)

  • 200-1000 співробітників, 3PL з road + warehousing + customs + sea
  • Поточний стек: hybrid (BAS + internal WMS + Excel + ad-hoc integrations)
  • Trigger: BAS не покриває multimodal forwarding domain
  • Pain: HBL/MBL ведуться у Excel, ручна demurrage tracking, відсутність carrier API connectivity
  • ShipCore value prop: повний shipcore_forwarder + Maersk Spot integration + LaneRateHistory + multi-leg Booking + CargoWise migration playbook

Wave 3 — Дунайський контейнерний термінал (Ізмаїл / Рені / Усть-Дунайськ tier)

  • Менші терміналі, 5K-50K TEU/рік
  • Поточний стек: Excel або застарілий TOS (legacy COSMOS, in-house)
  • Trigger: зростання traffic post-2022, Octopi Romania expansion загрожує (SLS Bucharest 2024)
  • Pain: відсутність cloud TOS, ручний gate workflow, manual demurrage
  • ShipCore value prop: shipcore_terminal Дунайська адаптація (Phase 5.5) — simpler TOS preset, DCSA VGM REST, river port specifics

Wave 4 — UA приватний оператор УЗ-вагонів

  • 50-500 вагонів власних або operating lease
  • Поточний стек: Excel + cargo.uz B2B-кабінет
  • Trigger: УЗ Cargo direct API виявлено доступним через ГІОЦ (АС Клієнт УЗ + е.Портал)
  • Pain: ручна tariff калькуляція, wagon availability через дзвінки, відсутність train manifest digital workflow
  • ShipCore value prop: shipcore_rail з УЗ Cargo direct integration — first SaaS у цьому ринку

Wave 5 — EU mid-market forwarder з UA-маршрутами (Rohlig SUUS, ID Logistics PL tier)

  • Phase 7-8 expansion target, не v1
  • Поточний стек: CargoWise / Riege Scope (CargoWise Value Packs disruption — opening 2026-2027)
  • Trigger: post-1С UA-leg routes потребують local-aware tools
  • Pain: CargoWise per-transaction billing (+$5K/міс), generic UA-leg handling, відсутність eTTN bridge
  • ShipCore value prop: ShipCore як «UA-adapter layer над їхнім CargoWise», не replacement

5. Чим ShipCore не є

Чесна декларація меж — щоб не змагатися у грі, у яку ми за означенням не виграємо:

  • Не «український CargoWise». Global enterprise з 2000+ співробітників, agent community lock-in, $50K-200K implementation cost — це не наша гра. ShipCore — SaaS subscription, тиждень onboarding, UA/EU domain з коробки.
  • Не «український McLeod». US trucking culture (53-foot trailer, ELD mandates, DOT compliance, $0.80/mile driver pay) — окрема юрисдикція. ShipCore — EU/UA з тахографом, eTTN, eCMR, TIR Carnet.
  • Не «український Odoo з логістикою». Generic, де Booking = Sale Order + custom-поля. Це когнітивне навантаження, яке generic-підхід перекладає на користувача. ShipCore — specific домен first-class.
  • Не visibility aggregator (project44, FourKites territory). Tracking inline у Booking flow — гібрид direct Maersk + Vizion fallback, без агрегатор-only SaaS.
  • Не avia engine у v1. Awery (UA team, IATA ONE Record lead, 5× hackathon winner) — partnership target, не conkurrent. У Phase 9+ — Awery OSS PHP ONE Record server як foundation для shipcore_avia adapter.
  • Не global у v1. Wedge UA + EU паралельно (UA-execution у v1, EU expansion у v1.5 — Phase 8). Global pretentions = v2-v3, після першого pilot.

6. Open-core стратегія

shipcore_auto — open-source (Apache-2.0 чи MIT, decision у Phase 4). Це маніфестна теза «запрошення BAS-розробників» матеріалізована: вони отримують безкоштовний автопарк-модуль, дзвонять production з BAS-стеком, потім підписуються на vertical плагіни.

shipcore_forwarder / _terminal / _sea / _rail / _avia / _pricing — paid (flat per company subscription). Mid/Pro tiers, конкретні pricing fences через config — без per-seat / per-shipment marketing. Це проста модель, яку клієнт легко передбачає; вона не штрафує за зростання обсягів.

Чому open-core працює тут (а не «безкоштовно все»): - Маніфест-теза «запрошення інтеграторів» потребує безкоштовного entry-point - Vertical-модулі (forwarder, sea, rail, terminal) — це high-value спеціалізація з real-world support cost (carrier APIs, regulatory compliance, eFTI/eCMR/eBL platform fees) - Економіка subscription повинна покрити маржу для cross-border tracking aggregators (Vizion ~$4-5/container), EU eCMR platform license (TransFollow tier), і compliance certifications (UA QTSP, EU AEO)


7. Why now — три тригерні вікна

ShipCore не міг би стартувати раніше і не може чекати довше. Три independent тригерні вікна сходяться у 2026-2027:

Тригер 1 — Post-1С (2022+)

1С пішов з UA-ринку. BAS лишився на тій самій платформі. Поточна логістична індустрія — переважно BAS + Excel + Wialon — активно шукає заміну. Це cohort з ~3000 mid-market UA-форвардерів і carriers (estimate з phase1-ua-customers.md), які матимуть migration window 2026-2028.

Тригер 2 — CargoWise Value Packs disruption (December 2025)

WiseTech перейшов на per-transaction billing для CargoWise One — додає $5K+/місяць для mid-size форвардера. Це створює EU cohort незадоволених клієнтів, які шукають альтернативу — особливо ті, чий core flow проходить UA-маршрутами (DE/PL/RO forwarders post-2022 grain corridor reroute). ShipCore Phase 5 включає explicit CargoWise migration playbook як deliverable.

Тригер 3 — EU regulatory tsunami (2026-2027)

Декілька mandatory deadlines зливаються: - 2027-01-01 — eTTN UA mandatory (Vchasno / M.E.Doc / EDI NETWORK акредитовані) - 2026-06-01 — ICS2 R3 для PL/RO/SK/HR/LV (pre-arrival declarations) - 2027-07-09 — eFTI mandatory для public authorities (EU Reg 2020/1056) - 2026-12-30 — EUDR mandatory (timber/soy/coffee/cocoa/palm/cattle traceability) - 2030 — DCSA eBL 100% adoption (9 carriers commit)

Generic ERP (Odoo, BAS) не покриває ці compliance vectors native. Specific-вертикаль з compliance-by-design (backend/shipcore/compliance/ cross-cutting sub-package у Phase 4) — єдиний шлях бути ready без 2-3 років переробок.


8. Архітектурні засади

Thin shared core + 7 vertical apps

Поточна Phase 0 + Phase 1 + Phase 2 архітектура зафіксована у decisions-2026-05-12. Headline:

backend/shipcore/                ← thin shared core (ЗАВЖДИ встановлений)
├── transport_unit / wagon / container / vessel / aircraft
├── route / location_point / port / station / airport
├── carrier / market_corridor / shipment_event
└── compliance/                  ← cross-cutting sub-package (НЕ окремий app)
    ├── exporters/ (efti / ecmr / ettn / emswe)
    ├── signing/ (KEP Дія + XAdES + sign-twice)
    ├── integrations/ (ICS2 ITSP / NCTS broker / customs UA / eBL hubs / УЗ Cargo)
    ├── mapping/ (canonical waybill → 3 projections)
    └── sanctions/ (free EU XML → Sanctions.io → ComplyAdvantage)

backend/shipcore_auto/           ← з fleet (open-source)
backend/shipcore_terminal/       ← з containerhub
backend/shipcore_forwarder/      ← з logistic (значне розширення)
backend/shipcore_sea/            ← NEW
backend/shipcore_rail/           ← NEW
backend/shipcore_avia/           ← stub (Phase 9+ Awery partnership)
backend/shipcore_pricing/        ← NEW (CPM / LaneRateHistory / FSC)

3 principle decisions

1. Carrier як окрема модель + Shipper/Consignee/NotifyParty як ролі. Carrier має SCAC, MC/DOT, FMC OTI Bond, AsMAP/IRU IDs, equipment list, performance scorecard — занадто специфічно для generic Client. Shipper/Consignee/NotifyParty — це ролі на конкретному Booking з FK на Client, не окремі сутності.

2. Compliance-by-design з Phase 4. Не «EU-як-afterthought у Phase 8». Кожна модель з документом (Waybill, Booking, BillOfLading, RailwayWaybill, AWB) має canonical structure + 3 projections (eTTN / eCMR / eFTI). Phase 4 effort +30% (5 weeks замість 4), Phase 8 effort економиться на тижні refactor.

3. Sea — окремо від eFTI (EMSWe Reg 2019/1239), не частина eFTI umbrella. eFTI покриває road / rail / IWT / air. Sea має власну regulatory framework (EMSWe + DCSA eBL). Це часта помилка, яку Phase 1 research звернув.

Hybrid integration strategy

Layer Approach
Sea carriers Direct Maersk Spot (Phase 5) + Hapag/CMA/MSC у Phase 8 + Vizion fallback для решти
Road carriers Wialon production (вже є) + Geotab/Samsara у Phase 8 EU
Rail УЗ Cargo direct через ГІОЦ (АС Клієнт УЗ + е.Портал, B2B-договір)
eCMR OLF self-host (Apache-2.0) + TransFollow connector для cross-border
eBL CargoX + WaveBL primary у Phase 8; Enigio/IQAX deferred до Phase 9+
ICS2 R3 Через ITSP partnership (Descartes/AEB), не direct connect
NCTS-P5 Через AEB EU broker bridge, не direct
eTTN Vchasno + M.E.Doc primary backends
Tracking Maersk/Hapag direct + Vizion-passthrough для решти
Customs UA Через офіційно відкритий API Держмитслужби
BAF Sync Per-instance integration (не universal API), two-layer (HTTP + Vchasno EDI bridge)
Sanctions Progressive: free EU XML (v1.5) → Sanctions.io ($50-150/міс v2) → ComplyAdvantage enterprise

9. v1 vs v1.5 — чесна позиція

v1 execution = UA-only. UA-внутрішнє + UA→Constanța Black Sea коридор. Phase 4-7 (~15 weeks).

Чому: ICS2 R3 mandatory deadline 2026-06-01 для PL/RO/SK/HR/LV не встигаємо (Phase 8 EU compliance = revised до ~16 weeks per phase2-summary § 2). Замість шахрайства з частковою EU-готовністю — чесна декларація що v1 = UA market focus.

v1.5 = EU expansion (Phase 8, ~Q4 2026 - Q1 2027). eFTI 4 connectors + ICS2 ITSP + EMSWe + eCMR hybrid + eBL 2 hubs + NCTS broker + sanctions Sanctions.io upgrade + Hapag/CMA carriers.

Архітектура EU-ready з Phase 4 (shipcore.compliance/ foundation). Phase 8 додає connectors, не схему даних — це робить v1.5 feasible.

v2-v3 = post-pilot expansion. Global pretentions, advanced analytics (CPM benchmarking cross-tenant), Client Portal B2B для shippers, mobile dispatcher app.


10. Хто будує і навіщо

ShipCore — це open-source стек на ESWF/DOP foundation. Власник-розробник + AI-assistant з 1-2 sessions/тиждень baseline. Pilot client — власна або пов'язана логістична компанія для Phase 4-5 validation.

Очікувана траєкторія: 1. 2026-Q3: Phase 3 final concept commit (цей документ) 2. 2026-Q4 - 2027-Q1: Phase 4-7 UA-focused implementation (~15 weeks) 3. 2027-Q2 - Q3: Phase 8 EU expansion (~16 weeks) 4. 2027-Q4: v1.5 launch + перший зовнішній pilot (post Wave 1 UA road carrier) 5. 2028+: Phase 9+ Awery partnership, advanced analytics, community ecosystem

Це амбіційно, ймовірно частково провалиться у timing — але напрямок правильний, і кожен закритий phase зменшує risk наступного.


11. Запрошення

Якщо ви форвардер: є продукт у роботі, де HBL/MBL/Booking/Demurrage — first-class, не кастом-поля. v1 — UA-фокусний, v1.5 — UA+EU paralleled через compliance-by-design.

Якщо ви carrier: автопарк-модуль (shipcore_auto) безкоштовний, open-source. Pricing engine (CPM + LaneRateHistory + FSC) — платний upgrade. Driver mobile app з offline-sync — у пакеті.

Якщо ви термінал-оператор: Дунайські + сухі порти — primary wedge у Phase 5.5 (1-2 weeks adaptation). Big terminals (Гданськ, Constanța, Одеса) — bridge через partner TOS API, не власна реалізація.

Якщо ви railway operator (приватний УЗ-вагони): єдина SaaS-розробка для вашого ринку у роботі. УЗ Cargo direct integration через ГІОЦ — Phase 6.

Якщо ви avia broker / cargo airline: Awery partnership conversation у Phase 4-5 calendar window. ShipCore-Avia стане Awery API connector, не competitor.

Якщо ви BAS-розробник: shipcore_auto open-source як entry-point. Доменний мозок (як працює галузева кастомізація) переноситься; стек (Django + React) — повертаний за тиждень.

Якщо ви розробник продукту: ShipCore — це конкретна вертикальна гілка ESWF/DOP filo. Maнifesto-теза («хто зробить першу вертикаль, у якій ніхто не хоче мапити контейнер на Product») — отримала конкретну відповідь.


12. Linkbacks

Foundation

  • manifesto.md — філософська основа vertical-фокусу
  • README.md — програмний overview
  • decisions-2026-05-12.md — 25 архітектурних/бізнес-рішень (Phase 0 D1-D12 + Phase 1 C1-C8+C-eFTI-byDesign + Phase 2 16 corrections)

Research deliverables

Implementation specs

DOP context


Phase 3 final narrative — 2026-05-12. ShipCore concept locked. Implementation Phase 4 awaits user trigger.