CEO Decision Log

CEO Decision Log (D9-D14)

CEO Decision Log (D9-D14)

Context: Major architectural and strategic decisions made during Drop Srbija v2 rebuild.

All decisions D1-D8 documented in existing docs/05-decision-log.md. This chapter covers v2-specific decisions D9-D14.


Date: 2026-04-16
Decision ID: D9
Status: Active (Incorporation Pending)

Context:

Early Drop Srbija documentation referenced "Drop Srbija d.o.o." as the intended legal entity for Serbian operations. This implied separate incorporation per product line (Drop, Bilko, Tok).

Decision:

Drop Srbija operates as a product line under ALAI Tech d.o.o. (single Serbian subsidiary of ALAI Holding AS). No separate "Drop Srbija d.o.o." will be incorporated.

Rationale:

  1. Corporate simplicity: One entity for all ALAI Serbian operations
  2. Cost efficiency: One incorporation, one tax filing, one audit (vs 3x overhead)
  3. Capital pooling: EUR 125,000 NBS PI license capital serves all products
  4. Regulatory efficiency: Single NBS/Poverenik/APML relationship
  5. Brand architecture: Legal entity = ALAI Tech, product brands = Drop/Bilko/Tok

Consequences:


D10: Backend — Kotlin/Ktor (ALAI Standard)

Date: 2026-04-17
Decision ID: D10
Status: Active

Context:

Drop Srbija v1 prototype used Hono (TypeScript) backend. ALAI standard mandates Kotlin/Ktor for all products (CEO decision 2026-02-25).

Decision:

Drop Srbija v2 backend uses Kotlin 2.1.0 + Ktor 3.1.2, replacing Hono/TypeScript.

Rationale:

  1. ALAI standard: All products must use Kotlin/Ktor (consistency, shared knowledge)
  2. Type safety: Kotlin compiler catches errors at compile-time (vs runtime in TypeScript)
  3. Performance: Ktor netty transport faster than Node.js event loop
  4. Ecosystem: Better PostgreSQL support (Exposed ORM vs Prisma/Drizzle)
  5. Team expertise: Petter Graff (CodeCraft lead) Kotlin expert

Alternatives Rejected:

Consequences:

Evidence:


D11: Frontend — Drop Norway 1:1 Copy

Date: 2026-04-17
Decision ID: D11
Status: Active

Context:

Two frontend strategies considered:

  1. Redesign from scratch (new UX, new components)
  2. 1:1 copy from Drop Norway (proven UX, localize for Serbia)

Decision:

Drop Srbija v2 frontend is a 1:1 copy of Drop Norway with minimal changes (NOK→RSD, BankID→OTP, Vipps→NBS IPS, nb-NO→sr-RS).

Rationale:

  1. Proven UX: Drop Norway tested with real users (positive feedback)
  2. Faster time-to-market: No need to reinvent UI patterns
  3. Focus on localization: Effort on Serbian language/culture, not design
  4. Lower risk: Known UX, fewer unknowns

Changes:

Consequences:

Evidence:


D12: JaCoCo Gate — 52% Unit-Only (Temporary)

Date: 2026-04-17
Decision ID: D12
Status: Active (Pending docker-java Fix)

Context:

ALAI standard: 60% test coverage gate. Drop Srbija v2 backend achieves 60% with unit + integration tests (Testcontainers). However, docker-java issue on M-series Macs causes Testcontainers to hang in CI (GitHub Actions).

Decision:

Temporarily lower coverage gate to 52% unit-only until docker-java issue fixed. Integration tests run locally but disabled in CI.

Rationale:

  1. Unblock CI: Cannot merge PRs if coverage gate fails due to infra issue
  2. Realistic gate: 52% unit coverage still enforces quality (better than 0%)
  3. Pending fix: docker-java PR expected Q3 2026
  4. Future restoration: Will restore 60% gate (unit + integration) once fixed

Target Timeline:

Consequences:

Evidence:


D13: Script — Latin MVP, Cyrillic Phase 2

Date: 2026-04-17
Decision ID: D13
Status: Active

Context:

Serbian language uses two scripts:

  1. Latin (latinica): Standard in tech, banking, official documents
  2. Cyrillic (ćirilica): Traditional, used in media, education

Decision:

Drop Srbija MVP uses Latin script only. Cyrillic support added in Phase 2 (post-MVP).

Rationale:

  1. Banking standard: All Serbian banks use Latin for digital interfaces
  2. NBS IPS: NBS IPS API uses Latin (IBAN, PIB, names)
  3. Tech ecosystem: Serbian tech products default to Latin (Viber, TikTok, Instagram)
  4. Faster MVP: No need for script toggle, translation duplication
  5. User preference: Research shows 80%+ young Serbians prefer Latin for digital

Phase 2 Plan:

Consequences:

Evidence:


D14: Mobile Target — Samsung Galaxy A54 (Not iPhone)

Date: 2026-04-17
Decision ID: D14
Status: Active

Context:

Drop Srbija is mobile-first (phone-based auth, QR payments). Primary test device must represent majority of Serbian users.

Decision:

Primary mobile test device: Samsung Galaxy A54 (Android), not iPhone.

Rationale:

  1. Market share: Android 78% in Serbia (Samsung dominant brand)
  2. Price point: Galaxy A54 (RSD 40,000 / ~$370) matches middle-class budget
  3. Screen size: 6.4" (Serbian users prefer larger screens)
  4. Banking apps: All Serbian banks optimize for Samsung (not iPhone)
  5. NFC support: Galaxy A54 has NFC (needed for future card payments)

iPhone Support:

Consequences:

Evidence:


Summary Table

Decision Date Status Impact
D9: ALAI Tech d.o.o. 2026-04-16 Active Legal entity consolidation
D10: Kotlin/Ktor 2026-04-17 Active Backend tech stack
D11: Drop Norway 1:1 2026-04-17 Active Frontend strategy
D12: 52% Coverage Gate 2026-04-17 Temporary CI unblocking
D13: Latin Script MVP 2026-04-17 Active Localization scope
D14: Samsung Galaxy A54 2026-04-17 Active Mobile test target

Full Decision Log: docs/05-decision-log.md (D1-D14)
Next Review: After Phase 5 (NBS IPS integration) or major architectural change